comparison dep/json/json_fwd.hpp @ 175:9b10175be389

dep/json: update to v3.11.3 anime/db: save anime list to database, very much untested and likely won't work as intended
author Paper <mrpapersonic@gmail.com>
date Thu, 30 Nov 2023 13:52:26 -0500
parents
children
comparison
equal deleted inserted replaced
174:f88eda79c60a 175:9b10175be389
1 // __ _____ _____ _____
2 // __| | __| | | | JSON for Modern C++
3 // | | |__ | | | | | | version 3.11.3
4 // |_____|_____|_____|_|___| https://github.com/nlohmann/json
5 //
6 // SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
7 // SPDX-License-Identifier: MIT
8
9 #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_
10 #define INCLUDE_NLOHMANN_JSON_FWD_HPP_
11
12 #include <cstdint> // int64_t, uint64_t
13 #include <map> // map
14 #include <memory> // allocator
15 #include <string> // string
16 #include <vector> // vector
17
18 // #include <nlohmann/detail/abi_macros.hpp>
19 // __ _____ _____ _____
20 // __| | __| | | | JSON for Modern C++
21 // | | |__ | | | | | | version 3.11.3
22 // |_____|_____|_____|_|___| https://github.com/nlohmann/json
23 //
24 // SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
25 // SPDX-License-Identifier: MIT
26
27
28
29 // This file contains all macro definitions affecting or depending on the ABI
30
31 #ifndef JSON_SKIP_LIBRARY_VERSION_CHECK
32 #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH)
33 #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3
34 #warning "Already included a different version of the library!"
35 #endif
36 #endif
37 #endif
38
39 #define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum)
40 #define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum)
41 #define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum)
42
43 #ifndef JSON_DIAGNOSTICS
44 #define JSON_DIAGNOSTICS 0
45 #endif
46
47 #ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
48 #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0
49 #endif
50
51 #if JSON_DIAGNOSTICS
52 #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag
53 #else
54 #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
55 #endif
56
57 #if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
58 #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp
59 #else
60 #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
61 #endif
62
63 #ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION
64 #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0
65 #endif
66
67 // Construct the namespace ABI tags component
68 #define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b
69 #define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \
70 NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
71
72 #define NLOHMANN_JSON_ABI_TAGS \
73 NLOHMANN_JSON_ABI_TAGS_CONCAT( \
74 NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \
75 NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)
76
77 // Construct the namespace version component
78 #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \
79 _v ## major ## _ ## minor ## _ ## patch
80 #define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \
81 NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
82
83 #if NLOHMANN_JSON_NAMESPACE_NO_VERSION
84 #define NLOHMANN_JSON_NAMESPACE_VERSION
85 #else
86 #define NLOHMANN_JSON_NAMESPACE_VERSION \
87 NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \
88 NLOHMANN_JSON_VERSION_MINOR, \
89 NLOHMANN_JSON_VERSION_PATCH)
90 #endif
91
92 // Combine namespace components
93 #define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b
94 #define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \
95 NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
96
97 #ifndef NLOHMANN_JSON_NAMESPACE
98 #define NLOHMANN_JSON_NAMESPACE \
99 nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \
100 NLOHMANN_JSON_ABI_TAGS, \
101 NLOHMANN_JSON_NAMESPACE_VERSION)
102 #endif
103
104 #ifndef NLOHMANN_JSON_NAMESPACE_BEGIN
105 #define NLOHMANN_JSON_NAMESPACE_BEGIN \
106 namespace nlohmann \
107 { \
108 inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \
109 NLOHMANN_JSON_ABI_TAGS, \
110 NLOHMANN_JSON_NAMESPACE_VERSION) \
111 {
112 #endif
113
114 #ifndef NLOHMANN_JSON_NAMESPACE_END
115 #define NLOHMANN_JSON_NAMESPACE_END \
116 } /* namespace (inline namespace) NOLINT(readability/namespace) */ \
117 } // namespace nlohmann
118 #endif
119
120
121 /*!
122 @brief namespace for Niels Lohmann
123 @see https://github.com/nlohmann
124 @since version 1.0.0
125 */
126 NLOHMANN_JSON_NAMESPACE_BEGIN
127
128 /*!
129 @brief default JSONSerializer template argument
130
131 This serializer ignores the template arguments and uses ADL
132 ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl))
133 for serialization.
134 */
135 template<typename T = void, typename SFINAE = void>
136 struct adl_serializer;
137
138 /// a class to store JSON values
139 /// @sa https://json.nlohmann.me/api/basic_json/
140 template<template<typename U, typename V, typename... Args> class ObjectType =
141 std::map,
142 template<typename U, typename... Args> class ArrayType = std::vector,
143 class StringType = std::string, class BooleanType = bool,
144 class NumberIntegerType = std::int64_t,
145 class NumberUnsignedType = std::uint64_t,
146 class NumberFloatType = double,
147 template<typename U> class AllocatorType = std::allocator,
148 template<typename T, typename SFINAE = void> class JSONSerializer =
149 adl_serializer,
150 class BinaryType = std::vector<std::uint8_t>, // cppcheck-suppress syntaxError
151 class CustomBaseClass = void>
152 class basic_json;
153
154 /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document
155 /// @sa https://json.nlohmann.me/api/json_pointer/
156 template<typename RefStringType>
157 class json_pointer;
158
159 /*!
160 @brief default specialization
161 @sa https://json.nlohmann.me/api/json/
162 */
163 using json = basic_json<>;
164
165 /// @brief a minimal map-like container that preserves insertion order
166 /// @sa https://json.nlohmann.me/api/ordered_map/
167 template<class Key, class T, class IgnoredLess, class Allocator>
168 struct ordered_map;
169
170 /// @brief specialization that maintains the insertion order of object keys
171 /// @sa https://json.nlohmann.me/api/ordered_json/
172 using ordered_json = basic_json<nlohmann::ordered_map>;
173
174 NLOHMANN_JSON_NAMESPACE_END
175
176 #endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_