| 1234567891011121314151617181920212223242526272829 |
- #pragma once
- #include <tuple>
- #include <utility>
- #include "string_utils/cast.h"
- #include "string_utils/tokenizer.h"
- namespace string_utils {
- template <typename... Ts>
- auto to_tuple(std::string const &input, char const f = ',') {
- std::tuple<Ts...> rval;
- auto result = tokenizer({f}, {'"', ""})(input);
- return std::make_pair(rval, cast(result, rval));
- }
- template <typename K, typename V = std::string>
- auto to_keyval(std::string const &input, char const f = '=') {
- std::pair<K, V> 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<std::string, std::string>(input, f);
- }
- }
|