#pragma once #include #include #include "string_utils/cast.h" #include "string_utils/tokenizer.h" namespace string_utils { template auto to_tuple(std::string const &input, char const f = ',') { std::tuple rval; auto result = tokenizer({f}, {'"', ""})(input); return std::make_pair(rval, cast(result, rval)); } template auto to_keyval(std::string const &input, char const f = '=') { std::pair rval; auto result = tokenizer({f}).max_outputs(2)(input); return std::make_pair(rval, cast(result, rval)); } inline auto to_keyval(std::string const &input, char const f = '=') { return to_keyval(input, f); } }