13#include <daw/daw_utility.h>
98 namespace json_details {
99 template<JsonNullable nullable>
101 std::bool_constant<nullable != JsonNullable::MustExist>;
103 template<JsonNullable nullable>
108 inline namespace details {
109 template<JsonParseTypes ParseType, JsonNullable Nullable>
118 template<JsonParseTypes v>
constexpr JsonParseTypes get_parse_type_v
Definition: daw_json_enums.h:110
std::bool_constant< nullable !=JsonNullable::MustExist > is_nullable_json_value
Definition: daw_json_enums.h:101
constexpr bool is_nullable_json_value_v
Definition: daw_json_enums.h:104
JsonParseTypes
The tags used by the parser to determine what parser to call.
Definition: daw_json_enums.h:22
@ KeyValueArray
Class - Member names form the string key into a key/value,map, or dictionary like type.
@ Array
A class type with named members.
@ Date
String - Fully processed string.
@ Variant
Can be a literal, string, or either and allows for some customized parsing.
@ VariantIntrusive
A variant with up to N types and a Switcher callable that takes uses another member to determine what...
@ SizedArray
An array type with homogenous members.
@ Signed
Number - Floating Point.
@ Unknown
Array - An array type where each element is mapped to the member of a C++ class.
@ Custom
Array - Each element has a key and a value submember.
@ Class
ISO 8601 Timestamp.
@ Unsigned
Number - Signed Integer.
@ Tuple
A variant type where the Switcher is based on a submember of the class being parsed.
@ Null
An array with a fixed size. This allows for size_t/ptr like combinations.
@ StringEscaped
String - A raw string as is. Escapes are left in.
@ Bool
Number - Unsigned Integer.
@ VariantTagged
Any one of the basic json types class/array/boolean/number/string.
constexpr std::string_view to_string(JsonBaseParseTypes pt)
Definition: daw_json_enums.h:63
daw::constant< v > ParseTag
Definition: daw_json_enums.h:119
JsonNullable
Definition: daw_json_enums.h:90
JsonBaseParseTypes
The fundamental JSON types.
Definition: daw_json_enums.h:53
constexpr JsonNullable JsonNullDefault
Definition: daw_json_enums.h:96
Definition: daw_from_json.h:22
#define DAW_JSON_VER
The version string used in namespace definitions. Must be a valid namespace name.
Definition: version.h:16