24#include <fmt/ranges.h>
49 Json::CharReaderBuilder
builder;
50 builder[
"collectComments"] =
false;
56 Json::StreamWriterBuilder
builder;
57 builder[
"commentStyle"] =
"None";
80 throw std::runtime_error(
"Unable to convert string to wstring");
84 throw std::runtime_error(
"Unable to convert string to wstring");
95 throw std::runtime_error(
"Unable to convert wstring to string");
100 throw std::runtime_error(
"Unable to convert wstring to string");
112 throw std::invalid_argument {
"Unable to parse double"};
119 return fmt::format(
"{:016x}",
id);
126 if (
auto [p,
ec] = std::from_chars(
str.data(),
str.data()+
str.size(),
id, 16);
ec != std::errc()) {
127 throw std::invalid_argument(
"Unable to parse id: " +
str);
135 auto wsfront = std::find_if_not(s.cbegin(), s.cend(), [](
int c) { return std::isspace(c); });
136 return std::string_view(&*
wsfront, std::find_if_not(s.rbegin(),
137 std::string_view::const_reverse_iterator(
wsfront),
138 [](
int c) { return std::isspace(c); })
145 std::vector<unsigned>
output;
151 if (
ec == std::errc())
152 output.emplace_back(result);
172 if (
it != std::string_view::npos)
180 return fmt::format(
"{}", fmt::join(set,
separator));
186 std::set<std::string>
output;
202 return (c >=
'0' && c <=
'9')
203 || (c >=
'A' && c <=
'Z')
204 || (c >=
'a' && c <=
'z');
209 encoded << std::uppercase << std::hex;
211 for (
unsigned char c : input) {
213 if (
isAsciiAlnum(c) || c ==
'-' || c ==
'_' || c ==
'.' || c ==
'~') {
Json::StreamWriterBuilder getJsonWriterBuilder()
const Json::StreamWriterBuilder wbuilder
const Json::CharReaderBuilder rbuilder
Json::CharReaderBuilder getJsonReaderBuilder()
constexpr std::string_view platform()
void emitSignal(Args... args)
std::string string_join(const std::set< std::string > &set, std::string_view separator)
std::string to_hex_string(uint64_t id)
std::string to_string(double value)
const std::string & userAgent()
std::vector< unsigned > split_string_to_unsigned(std::string_view str, char delim)
uint64_t from_hex_string(const std::string &str)
std::string_view string_remove_suffix(std::string_view str, char separator)
std::string_view trim(std::string_view s)
std::string urlEncode(std::string_view input)
Percent-encode a string according to RFC 3986 unreserved characters.
std::set< std::string > string_split_set(std::string &str, std::string_view separator)
void string_replace(std::string &str, const std::string &from, const std::string &to)
constexpr std::string_view arch()