20 namespace json_details {
22 template<
typename T, std::
size_t Capacity>
24 static constexpr std::size_t
capacity = Capacity;
27 std::size_t position{ };
33 constexpr T
const *
data( )
const {
41 constexpr std::size_t
size( )
const {
57 constexpr T
const *
data( )
const {
65 constexpr std::size_t
size( )
const {
83 template<
typename... JsonMembers,
typename OutputIterator,
84 std::size_t... Is,
typename Tuple,
typename Value>
85 [[nodiscard]]
inline constexpr OutputIterator
87 Value
const &value, std::index_sequence<Is...> ) {
91 using visit_size = std::integral_constant<
93 (
sizeof...( JsonMembers ) +
94 (
static_cast<std::size_t
>( has_dependent_member_v<JsonMembers> ) +
96 auto visited_members =
103 bool is_first =
true;
106 (void)visited_members;
109 using Names = fwd_pack<JsonMembers...>;
110 daw::Empty
const expander[]{
112 Is, traits::nth_element<Is, JsonMembers...>, Names>(
113 is_first,
it, args, value, visited_members ),
121 daw::Empty
const expander[]{
122 (
to_json_str<Is, traits::nth_element<Is, JsonMembers...>>(
123 is_first,
it, args, value, visited_members ),
132 template<
typename... JsonMembers,
typename OutputIterator,
typename Tuple,
133 typename Value, std::size_t... Is>
134 [[nodiscard]]
inline constexpr OutputIterator
137 std::index_sequence<Is...> ) {
140 size_t array_idx = 0;
144 daw::Empty
const expander[]{
146 array_idx,
it, args ),
Iterator & it
Definition: daw_json_traits.h:231
constexpr OutputIterator serialize_ordered_json_class(OutputIterator it, Tuple const &args, Value const &value, std::index_sequence< Is... >)
Definition: daw_json_serialize_impl.h:135
constexpr void to_json_ordered_str(std::size_t &array_idx, OutputIterator &it, Tuple< Args... > const &tp)
Definition: to_daw_json_string.h:1377
constexpr void dependent_member_to_json_str(bool &, OutputIterator const &, TpArgs const &, Value const &, VisitedMembers const &)
Definition: to_daw_json_string.h:1271
constexpr OutputIterator serialize_json_class(OutputIterator it, Tuple const &args, Value const &value, std::index_sequence< Is... >)
Definition: daw_json_serialize_impl.h:86
constexpr void to_json_str(bool &is_first, OutputIterator &it, Tuple const &tp, Value const &, Visited &visited_members)
Definition: to_daw_json_string.h:1342
Definition: daw_from_json.h:22
constexpr std::size_t size() const
Definition: daw_json_serialize_impl.h:65
constexpr basic_array_t()=default
constexpr T const * data() const
Definition: daw_json_serialize_impl.h:57
constexpr T * data()
Definition: daw_json_serialize_impl.h:61
Definition: daw_json_serialize_impl.h:23
constexpr T * data()
Definition: daw_json_serialize_impl.h:37
constexpr void push_back(T const &v)
Definition: daw_json_serialize_impl.h:45
static constexpr std::size_t capacity
Definition: daw_json_serialize_impl.h:24
constexpr T const * data() const
Definition: daw_json_serialize_impl.h:33
constexpr basic_array_t()=default
constexpr std::size_t size() const
Definition: daw_json_serialize_impl.h:41
#define DAW_JSON_VER
Definition: version.h:11