13 #include <daw/daw_attributes.h>
17 namespace parse_policy_details {
18 template<
char... keys>
19 [[nodiscard]] DAW_ATTRIB_FLATINLINE
inline constexpr
bool in(
char c ) {
20 auto const eq = [c](
char k ) {
return c == k; };
21 return ( eq( keys ) | ... );
24 [[nodiscard]] DAW_ATTRIB_FLATINLINE
inline constexpr
bool
26 return static_cast<bool>(
static_cast<unsigned>( c ==
',' ) |
27 static_cast<unsigned>( c ==
'}' ) |
28 static_cast<unsigned>( c ==
']' ) |
29 static_cast<unsigned>( c ==
':' ) |
30 static_cast<unsigned>( c <= 0x20 ) );
33 [[nodiscard]] DAW_ATTRIB_FLATINLINE
inline constexpr
bool
35 return static_cast<unsigned>(
static_cast<unsigned char>( c ) -
36 static_cast<unsigned char>(
'0' ) ) < 10U;
39 template<
typename ParseState>
40 DAW_ATTRIB_FLATINLINE
inline constexpr
void
42 if constexpr( not ParseState::is_unchecked_input ) {
71 template<
typename ParseState>
72 [[nodiscard]] DAW_ATTRIB_FLATINLINE
inline constexpr
int
82 auto const dig =
static_cast<unsigned>(
83 static_cast<unsigned char>( *(
parse_state.first + 1 ) ) );
105 [[nodiscard]] DAW_ATTRIB_FLATINLINE
inline constexpr
bool
#define daw_json_assert(Bool,...)
Definition: daw_json_assert.h:178
ParseState & parse_state
Definition: daw_json_parse_class.h:201
constexpr DAW_ATTRIB_FLATINLINE int validate_signed_first(ParseState &parse_state)
Definition: daw_json_parse_policy_policy_details.h:73
constexpr DAW_ATTRIB_FLATINLINE bool is_number(char c)
Definition: daw_json_parse_policy_policy_details.h:34
constexpr DAW_ATTRIB_FLATINLINE void validate_unsigned_first(ParseState const &parse_state)
Definition: daw_json_parse_policy_policy_details.h:41
constexpr DAW_ATTRIB_FLATINLINE bool at_end_of_item(char c)
Definition: daw_json_parse_policy_policy_details.h:25
constexpr DAW_ATTRIB_FLATINLINE bool is_number_start(char c)
Definition: daw_json_parse_policy_policy_details.h:106
constexpr DAW_ATTRIB_FLATINLINE bool in(char c)
Definition: daw_json_parse_policy_policy_details.h:19
DAW_ATTRIB_NOINLINE void daw_json_error(ErrorReason reason)
Definition: daw_json_assert.h:39
Definition: daw_from_json.h:22
#define DAW_JSON_VER
Definition: version.h:11