#pragma once #include #include #include #include "crow.h" namespace Handler { typedef crow::json::wvalue json; typedef std::function handler_function; struct CommandHandler { ~CommandHandler() { delete description; } [[nodiscard]] json exec(std::string const &arguments, std::string const &session) const { return func(arguments, session, payload); } handler_function func{nullptr}; // handler takes ownership of the description, using it after passing is unsafe std::queue *description{nullptr}; void *payload{nullptr}; }; std::vector tokenizeArguments(std::string const &arguments, std::string const &delimiter = " "); }