24 using Null = std::monostate;
28 using Object = std::unique_ptr<JsonObject>;
29 using Array = std::vector<Json>;
37 static bool ReadString(std::string_view& input,
auto& val,
const BufferInfo& info);
38 static bool ReadNumber(std::string_view& input,
auto& val);
39 static bool ReadObject(std::string_view& input,
auto& val,
const BufferInfo& info);
40 static bool ReadBool (std::string_view& input,
auto& val);
41 static bool ReadNull (std::string_view& input,
auto& val);
42 static bool ReadArray (std::string_view& input,
auto& val,
const BufferInfo& info);
46#pragma region Wappers for std::optional and std::expected
71 using Key = std::variant<int, JsonObjKey>;
72 using Keys = std::span<const Key>;
76 requires ((std::unsigned_integral<T> || std::convertible_to<T, std::string_view>) &&...)
77 auto MakeKeys(
const T&... keys) {
return std::array<
Key,
sizeof...(T)>{ (keys, ...) }; }
Definition Definitions.hpp:19
std::optional< CValWrapper > OptCValWrapper
Definition Definitions.hpp:60
std::vector< Json > Array
Definition Definitions.hpp:29
std::expected< CRefValWrapper, Http::RequestError > ExpCRefValWrapper
Definition Definitions.hpp:54
std::unique_ptr< JsonObject > Object
Definition Definitions.hpp:28
std::expected< ValWrapper, Http::RequestError > ExpValWrapper
Definition Definitions.hpp:62
std::string_view JsonObjKeyRef
Definition Definitions.hpp:69
std::optional< CRefValWrapper > OptCRefValWrapper
Definition Definitions.hpp:51
auto MakeKeys(const T &... keys)
Definition Definitions.hpp:77
std::variant< int, JsonObjKey > Key
Definition Definitions.hpp:71
long double Number
Definition Definitions.hpp:26
std::monostate Null
Definition Definitions.hpp:24
std::span< const Key > Keys
Definition Definitions.hpp:72
std::optional< RefValWrapper > OptRefValWrapper
Definition Definitions.hpp:50
std::string JsonObjKey
Definition Definitions.hpp:68
bool Bool
Definition Definitions.hpp:27
std::expected< CValWrapper, Http::RequestError > ExpCValWrapper
Definition Definitions.hpp:63
std::optional< ValWrapper > OptValWrapper
Definition Definitions.hpp:59
std::expected< RefValWrapper, Http::RequestError > ExpRefValWrapper
Definition Definitions.hpp:53
Like Rust's cow (copy on write).
Definition Cow.hpp:15
Definition Definitions.hpp:32
std::string_view bufferView
Definition Definitions.hpp:33
std::shared_ptr< std::string > buffer
Definition Definitions.hpp:34
Definition JsonObject.hpp:14