DAW JSON Link
Loading...
Searching...
No Matches
include
daw
json
impl
daw_json_enums.h
Go to the documentation of this file.
1
// Copyright (c) Darrell Wright
2
//
3
// Distributed under the Boost Software License, Version 1.0. (See accompanying
4
// file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)
5
//
6
// Official repository: https://github.com/beached/daw_json_link
7
//
8
9
#pragma once
10
11
#include "
version.h
"
12
13
#include <daw/daw_constant.h>
14
15
#include <cstdint>
16
#include <string_view>
17
18
namespace
daw::json
{
19
inline
namespace
DAW_JSON_VER
{
21
enum class
JsonParseTypes
: std::uint_fast8_t {
22
Real,
23
Signed,
24
Unsigned,
25
Bool,
26
StringRaw,
27
StringEscaped,
28
Date,
29
Class,
30
Array,
31
SizedArray,
33
Null,
34
KeyValue,
36
KeyValueArray,
37
Custom,
39
Variant,
41
VariantTagged,
44
VariantIntrusive,
46
Tuple,
48
Unknown,
49
#if defined( DAW_JSON_HAS_REFLECTION )
50
ReflectedClass,
52
#endif
53
};
54
56
enum class
JsonBaseParseTypes
: std::uint_fast8_t {
57
Number,
58
Bool,
59
String,
60
Class,
61
Array,
62
Null,
63
None
64
};
65
66
constexpr
std::string_view
to_string
(
JsonBaseParseTypes
pt ) {
67
switch
( pt ) {
68
case
JsonBaseParseTypes::Number:
69
return
"Number"
;
70
case
JsonBaseParseTypes::Bool:
71
return
"Bool"
;
72
case
JsonBaseParseTypes::String:
73
return
"String"
;
74
case
JsonBaseParseTypes::Class:
75
return
"Class"
;
76
case
JsonBaseParseTypes::Array:
77
return
"Array"
;
78
case
JsonBaseParseTypes::Null:
79
return
"Null"
;
80
case
JsonBaseParseTypes::None:
81
default
:
82
return
"None"
;
83
}
84
}
85
88
enum class
JsonNullable
:
unsigned
{
91
Nullable,
94
NullVisible
95
};
96
100
template
<JsonParseTypes v>
101
using
ParseTag
= daw::constant<v>;
102
103
}
// namespace DAW_JSON_VER
104
}
// namespace daw::json
daw::json::anonymous_namespace{daw_json_enums.h}::to_string
constexpr std::string_view to_string(JsonBaseParseTypes pt)
Definition
daw_json_enums.h:66
daw::json::anonymous_namespace{daw_json_enums.h}::JsonParseTypes
JsonParseTypes
The tags used by the parser to determine what parser to call.
Definition
daw_json_enums.h:21
daw::json::anonymous_namespace{daw_json_enums.h}::JsonNullable
JsonNullable
Control how json_nullable members are serialized.
Definition
daw_json_enums.h:88
daw::json::anonymous_namespace{daw_json_enums.h}::ParseTag
daw::constant< v > ParseTag
Definition
daw_json_enums.h:101
daw::json::anonymous_namespace{daw_json_enums.h}::JsonBaseParseTypes
JsonBaseParseTypes
The fundamental JSON types.
Definition
daw_json_enums.h:56
daw::json
Customization point traits.
Definition
daw_container_traits.h:24
version.h
DAW_JSON_VER
#define DAW_JSON_VER
The version string used in namespace definitions. Must be a valid namespace name.
Definition
version.h:20
Generated by
1.9.8