17 #include <string_view>
34 template<
typename JsonMember,
bool KnownBounds =
false,
typename String,
36 [[nodiscard]] constexpr
auto
37 from_json( String &&json_data, options::parse_flags_t<PolicyFlags...> );
47 template<
typename JsonMember,
bool KnownBounds = false,
typename String>
48 [[nodiscard]] constexpr
auto from_json( String &&json_data );
58 template<
typename JsonMember,
bool KnownBounds =
false,
typename String,
59 typename Allocator,
auto... PolicyFlags>
60 [[nodiscard]] constexpr
auto
62 options::parse_flags_t<PolicyFlags...> );
72 template<
typename JsonMember,
bool KnownBounds =
false,
typename String,
75 Allocator
const &alloc );
87 template<
typename JsonMember,
bool KnownBounds =
false,
typename String,
89 [[nodiscard]] constexpr
auto
90 from_json( String &&json_data, std::string_view member_path,
91 options::parse_flags_t<PolicyFlags...> );
103 template<
typename JsonMember,
bool KnownBounds = false,
typename String>
104 [[nodiscard]] constexpr
auto from_json( String &&json_data,
105 std::string_view member_path );
117 template<
typename JsonMember,
bool KnownBounds =
false,
typename String,
118 typename Allocator,
auto... PolicyFlags>
119 [[nodiscard]] constexpr
auto
121 Allocator
const &alloc,
122 options::parse_flags_t<PolicyFlags...> );
134 template<
typename JsonMember,
bool KnownBounds =
false,
typename String,
137 std::string_view member_path,
138 Allocator
const &alloc );
147 template<
typename JsonMember,
bool KnownBounds =
false,
json_options_t P,
148 typename A,
auto... PolicyFlags>
149 [[nodiscard]]
inline constexpr
auto
151 options::parse_flags_t<PolicyFlags...> );
160 template<
typename JsonMember,
bool KnownBounds =
false,
json_options_t P,
162 [[nodiscard]]
inline constexpr
auto
175 template<
typename JsonMember,
bool KnownBounds =
false,
json_options_t P,
176 typename A,
auto... PolicyFlags>
177 [[nodiscard]] constexpr
auto
179 options::parse_flags_t<PolicyFlags...> );
194 std::string_view member_path );
209 template<
typename JsonElement,
211 std::vector<json_details::from_json_result_t<JsonElement>>,
212 typename Constructor = use_default,
bool KnownBounds =
false,
213 typename String,
auto... PolicyFlags>
214 [[nodiscard]] constexpr Container
216 options::parse_flags_t<PolicyFlags...> );
231 template<
typename JsonElement,
233 std::vector<json_details::from_json_result_t<JsonElement>>,
234 typename Constructor = use_default,
bool KnownBounds =
false,
236 [[nodiscard]] constexpr Container
249 template<
typename JsonElement,
251 std::vector<json_details::from_json_result_t<JsonElement>>,
252 typename Constructor = use_default,
bool KnownBounds =
false,
253 typename String,
auto... PolicyFlags>
254 [[nodiscard]] constexpr Container
256 options::parse_flags_t<PolicyFlags...> );
268 template<
typename JsonElement,
270 std::vector<json_details::from_json_result_t<JsonElement>>,
271 typename Constructor = use_default,
bool KnownBounds =
false,
constexpr Container from_json_array(String &&json_data, options::parse_flags_t< PolicyFlags... >)
Parse JSON data where the root item is an array.
constexpr auto from_json(String &&json_data, options::parse_flags_t< PolicyFlags... >)
Construct the JSONMember from the JSON document argument.
constexpr auto from_json_alloc(String &&json_data, Allocator const &alloc, options::parse_flags_t< PolicyFlags... >)
Construct the JSONMember from the JSON document argument.
std::uint32_t json_options_t
Customization point traits.
A non-owning container for arbitrary JSON values that allows movement/iteration through.
#define DAW_JSON_VER
The version string used in namespace definitions. Must be a valid namespace name.