16 #include <daw/daw_move.h>
24 namespace json_details {
25 template<
typename ParseState,
bool>
32 template<
typename ParseState>
48 template<
typename JsonMember,
typename ParseState,
bool IsKnown>
55 using element_t =
typename JsonMember::json_element_t;
57 using value_type =
typename member_container_type::value_type;
63 using key_t =
typename JsonMember::json_key_t;
64 using value_t =
typename JsonMember::json_element_t;
98 ErrorReason::AttemptToAccessPastEndOfValue,
102 ErrorReason::UnexpectedEndOfData,
106 if constexpr( IsKnown ) {
109 ErrorReason::AttemptToAccessPastEndOfValue,
115 if constexpr( not IsKnown ) {
124 if constexpr( IsKnown ) {
127 ErrorReason::AttemptToAccessPastEndOfValue,
136 friend inline constexpr
bool
143 friend inline constexpr
bool
146 return not( lhs == rhs );
#define daw_json_assert_weak(Bool,...)
Definition: daw_json_assert.h:189
#define daw_json_assert(Bool,...)
Definition: daw_json_assert.h:178
static constexpr void trim_end_of_name(ParseState &parse_state)
Definition: daw_json_parse_name.h:29
constexpr auto json_class_constructor
Definition: daw_json_parse_common.h:57
std::integral_constant< JsonParseTypes, v > ParseTag
Definition: daw_json_enums.h:106
Definition: daw_from_json.h:22
Definition: daw_json_traits.h:190
Definition: daw_json_arrow_proxy.h:16
constexpr difference_type operator-(json_parse_kv_class_iterator_base const &rhs) const
Definition: daw_json_parse_kv_class_iterator.h:40
std::random_access_iterator_tag iterator_category
Definition: daw_json_parse_kv_class_iterator.h:35
std::ptrdiff_t difference_type
Definition: daw_json_parse_kv_class_iterator.h:36
Definition: daw_json_parse_kv_class_iterator.h:26
std::ptrdiff_t difference_type
Definition: daw_json_parse_kv_class_iterator.h:28
ParseState * parse_state
Definition: daw_json_parse_kv_class_iterator.h:29
std::input_iterator_tag iterator_category
Definition: daw_json_parse_kv_class_iterator.h:27
Definition: daw_json_parse_kv_class_iterator.h:50
typename JsonMember::json_element_t value_t
Definition: daw_json_parse_kv_class_iterator.h:64
typename JsonMember::json_key_t key_t
Definition: daw_json_parse_kv_class_iterator.h:63
constexpr friend bool operator==(json_parse_kv_class_iterator const &lhs, json_parse_kv_class_iterator const &rhs)
Definition: daw_json_parse_kv_class_iterator.h:137
constexpr friend bool operator!=(json_parse_kv_class_iterator const &lhs, json_parse_kv_class_iterator const &rhs)
Definition: daw_json_parse_kv_class_iterator.h:144
typename JsonMember::json_element_t element_t
Definition: daw_json_parse_kv_class_iterator.h:55
ParseState iterator_range_t
Definition: daw_json_parse_kv_class_iterator.h:60
typename base::difference_type difference_type
Definition: daw_json_parse_kv_class_iterator.h:61
typename JsonMember::base_type member_container_type
Definition: daw_json_parse_kv_class_iterator.h:56
constexpr value_type operator*()
Definition: daw_json_parse_kv_class_iterator.h:82
value_type reference
Definition: daw_json_parse_kv_class_iterator.h:58
constexpr json_parse_kv_class_iterator & operator++()
Definition: daw_json_parse_kv_class_iterator.h:96
constexpr json_parse_kv_class_iterator()=default
constexpr json_parse_kv_class_iterator(iterator_range_t &r)
Definition: daw_json_parse_kv_class_iterator.h:68
typename base::iterator_category iterator_category
Definition: daw_json_parse_kv_class_iterator.h:54
typename member_container_type::value_type value_type
Definition: daw_json_parse_kv_class_iterator.h:57
#define DAW_JSON_VER
Definition: version.h:11