DAW JSON Link
Loading...
Searching...
No Matches
daw_from_json_fwd.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 "impl/version.h"
12
16
17#include <string_view>
18
19namespace daw::json {
20 inline namespace DAW_JSON_VER {
21
34 template<typename JsonMember, bool KnownBounds = false, typename String,
35 auto... PolicyFlags>
36 [[nodiscard]] constexpr auto
37 from_json( String &&json_data, options::parse_flags_t<PolicyFlags...> );
38
47 template<typename JsonMember, bool KnownBounds = false, typename String>
48 [[nodiscard]] constexpr auto from_json( String &&json_data );
49
53 template<typename JsonMember, bool KnownBounds = false, typename String,
54 auto... PolicyFlags>
55 [[nodiscard]] constexpr auto
56 from_json_insitu( String &&json_data,
57 options::parse_flags_t<PolicyFlags...> );
58
59 template<typename JsonMember, bool KnownBounds = false, typename String>
60 [[nodiscard]] constexpr auto from_json_insitu( String &&json_data );
61
70 template<typename JsonMember, bool KnownBounds = false, typename String,
71 typename Allocator, auto... PolicyFlags>
72 [[nodiscard]] constexpr auto
73 from_json_alloc( String &&json_data, Allocator const &alloc,
74 options::parse_flags_t<PolicyFlags...> );
75
84 template<typename JsonMember, bool KnownBounds = false, typename String,
85 typename Allocator>
86 [[nodiscard]] constexpr auto from_json_alloc( String &&json_data,
87 Allocator const &alloc );
88
99 template<typename JsonMember, bool KnownBounds = false, typename String,
100 auto... PolicyFlags>
101 [[nodiscard]] constexpr auto
102 from_json( String &&json_data, std::string_view member_path,
103 options::parse_flags_t<PolicyFlags...> );
104
115 template<typename JsonMember, bool KnownBounds = false, typename String>
116 [[nodiscard]] constexpr auto from_json( String &&json_data,
117 std::string_view member_path );
118
129 template<typename JsonMember, bool KnownBounds = false, typename String,
130 typename Allocator, auto... PolicyFlags>
131 [[nodiscard]] constexpr auto
132 from_json_alloc( String &&json_data, std::string_view member_path,
133 Allocator const &alloc,
134 options::parse_flags_t<PolicyFlags...> );
135
146 template<typename JsonMember, bool KnownBounds = false, typename String,
147 typename Allocator>
148 [[nodiscard]] constexpr auto from_json_alloc( String &&json_data,
149 std::string_view member_path,
150 Allocator const &alloc );
151
159 template<typename JsonMember, bool KnownBounds = false, json_options_t P,
160 typename A, auto... PolicyFlags>
161 [[nodiscard]] constexpr auto
163 options::parse_flags_t<PolicyFlags...> );
164
172 template<typename JsonMember, bool KnownBounds = false, json_options_t P,
173 typename A>
174 [[nodiscard]] constexpr auto from_json( basic_json_value<P, A> value );
175
186 template<typename JsonMember, bool KnownBounds = false, json_options_t P,
187 typename A, auto... PolicyFlags>
188 [[nodiscard]] constexpr auto
189 from_json( basic_json_value<P, A> value, std::string_view member_path,
190 options::parse_flags_t<PolicyFlags...> );
191
202 template<typename JsonMember, bool KnownBounds, json_options_t P,
203 typename A>
204 [[nodiscard]] constexpr auto from_json( basic_json_value<P, A> value,
205 std::string_view member_path );
206
220 template<typename JsonElement,
221 typename Container =
222 std::vector<json_details::from_json_result_t<JsonElement>>,
223 typename Constructor = use_default, bool KnownBounds = false,
224 typename String, auto... PolicyFlags>
225 [[nodiscard]] constexpr Container
226 from_json_array( String &&json_data, std::string_view member_path,
227 options::parse_flags_t<PolicyFlags...> );
228
242 template<typename JsonElement,
243 typename Container =
244 std::vector<json_details::from_json_result_t<JsonElement>>,
245 typename Constructor = use_default, bool KnownBounds = false,
246 typename String>
247 [[nodiscard]] constexpr Container
248 from_json_array( String &&json_data, std::string_view member_path );
249
260 template<typename JsonElement,
261 typename Container =
262 std::vector<json_details::from_json_result_t<JsonElement>>,
263 typename Constructor = use_default, bool KnownBounds = false,
264 typename String, auto... PolicyFlags>
265 [[nodiscard]] constexpr Container
266 from_json_array( String &&json_data,
267 options::parse_flags_t<PolicyFlags...> );
268
280 template<typename JsonElement,
281 typename Container =
282 std::vector<json_details::from_json_result_t<JsonElement>>,
283 typename Constructor = use_default, bool KnownBounds = false,
284 typename String>
285 [[nodiscard]] constexpr Container from_json_array( String &&json_data );
286 } // namespace DAW_JSON_VER
287} // namespace daw::json
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.
constexpr auto from_json_insitu(String &&json_data, options::parse_flags_t< PolicyFlags... >)
Parse a writable JSON buffer with string mutation enabled. The buffer must remain alive and at a stab...
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.
Definition version.h:20