24#include <fmt/ranges.h>
25#include <fmt/compile.h>
46static Json::CharReaderBuilder
49 Json::CharReaderBuilder
builder;
50 builder[
"collectComments"] =
false;
54static Json::StreamWriterBuilder
57 Json::StreamWriterBuilder
builder;
58 builder[
"commentStyle"] =
"None";
81 throw std::runtime_error(
"Unable to convert string to wstring");
85 throw std::runtime_error(
"Unable to convert string to wstring");
96 throw std::runtime_error(
"Unable to convert wstring to string");
100 throw std::runtime_error(
"Unable to convert wstring to string");
122 if (
auto [p,
ec] = std::from_chars(
str.data(),
str.data() +
str.size(),
id, 16);
ec != std::errc()) {
123 throw std::invalid_argument(
"Unable to parse id: " +
str);
132 auto wsfront = std::find_if_not(s.cbegin(), s.cend(), [](
int c) { return std::isspace(c); });
134 return std::string_view {};
135 return std::string_view(&*
wsfront,
136 std::find_if_not(s.rbegin(),
137 std::string_view::const_reverse_iterator(
wsfront),
138 [](
int c) { return std::isspace(c); })
146 std::vector<unsigned>
output;
153 if (
ec == std::errc())
154 output.emplace_back(result);
174 if (
it != std::string_view::npos)
182 return fmt::format(
"{}", fmt::join(set,
separator));
188 std::set<std::string>
output;
206 return (c >=
'0' && c <=
'9') || (c >=
'A' && c <=
'Z') || (c >=
'a' && c <=
'z');
211 encoded << std::uppercase << std::hex;
213 for (
unsigned char c : input) {
215 if (
isAsciiAlnum(c) || c ==
'-' || c ==
'_' || c ==
'.' || c ==
'~') {
static Json::CharReaderBuilder getJsonReaderBuilder()
static Json::StreamWriterBuilder getJsonWriterBuilder()
const Json::StreamWriterBuilder wbuilder
const Json::CharReaderBuilder rbuilder
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()