#include "Handler.hpp" std::vector Handler::tokenizeArguments(const std::string &arguments, const std::string &delimiter) { std::vector tokens{}; auto start = 0U; auto end = arguments.find(delimiter); while (end != std::string::npos) { tokens.emplace_back(arguments.substr(start, end - start)); start = end + delimiter.length(); end = arguments.find(delimiter, start); } // only add if there is anything to add if (!arguments.substr(start, end).empty()) tokens.emplace_back(arguments.substr(start, end)); return tokens; } Handler::json Handler::CommandHandler::exec(const std::string &arguments, const std::string &session) const { return func(arguments, session, payload); } #pragma clang diagnostic push #pragma ide diagnostic ignored "modernize-pass-by-value" #pragma ide diagnostic ignored "performance-unnecessary-value-param" Handler::CommandHandler::CommandHandler(std::string command, Handler::handler_function func, description_function desc, void *payload) : command{std::move(command)}, func{func}, get_description{desc}, payload{payload} {} #pragma clang diagnostic pop Handler::CommandHandler::CommandHandler(Handler::CommandHandler &&o) noexcept { command = o.command; func = o.func; get_description = o.get_description; payload = o.payload; }