simdjson  3.1.6
Ridiculously Fast JSON
jsonparser.h
1 // TODO Remove this -- deprecated API and files
2 
3 #ifndef SIMDJSON_DOM_JSONPARSER_H
4 #define SIMDJSON_DOM_JSONPARSER_H
5 
6 #include "simdjson/dom/document.h"
7 #include "simdjson/dom/parsedjson.h"
8 #include "simdjson/jsonioutil.h"
9 
10 namespace simdjson {
11 
12 //
13 // C API (json_parse and build_parsed_json) declarations
14 //
15 
16 #ifndef SIMDJSON_DISABLE_DEPRECATED_API
17 [[deprecated("Use parser.parse() instead")]]
18 inline int json_parse(const uint8_t *buf, size_t len, dom::parser &parser, bool realloc_if_needed = true) noexcept {
19  error_code code = parser.parse(buf, len, realloc_if_needed).error();
20  // The deprecated json_parse API is a signal that the user plans to *use* the error code / valid
21  // bits in the parser instead of heeding the result code. The normal parser unsets those in
22  // anticipation of making the error code ephemeral.
23  // Here we put the code back into the parser, until we've removed this method.
24  parser.valid = code == SUCCESS;
25  parser.error = code;
26  return code;
27 }
28 [[deprecated("Use parser.parse() instead")]]
29 inline int json_parse(const char *buf, size_t len, dom::parser &parser, bool realloc_if_needed = true) noexcept {
30  error_code code = parser.parse(buf, len, realloc_if_needed).error();
31  // The deprecated json_parse API is a signal that the user plans to *use* the error code / valid
32  // bits in the parser instead of heeding the result code. The normal parser unsets those in
33  // anticipation of making the error code ephemeral.
34  // Here we put the code back into the parser, until we've removed this method.
35  parser.valid = code == SUCCESS;
36  parser.error = code;
37  return code;
38 }
39 [[deprecated("Use parser.parse() instead")]]
40 inline int json_parse(const std::string &s, dom::parser &parser, bool realloc_if_needed = true) noexcept {
41  error_code code = parser.parse(s.data(), s.length(), realloc_if_needed).error();
42  // The deprecated json_parse API is a signal that the user plans to *use* the error code / valid
43  // bits in the parser instead of heeding the result code. The normal parser unsets those in
44  // anticipation of making the error code ephemeral.
45  // Here we put the code back into the parser, until we've removed this method.
46  parser.valid = code == SUCCESS;
47  parser.error = code;
48  return code;
49 }
50 [[deprecated("Use parser.parse() instead")]]
51 inline int json_parse(const padded_string &s, dom::parser &parser) noexcept {
52  error_code code = parser.parse(s).error();
53  // The deprecated json_parse API is a signal that the user plans to *use* the error code / valid
54  // bits in the parser instead of heeding the result code. The normal parser unsets those in
55  // anticipation of making the error code ephemeral.
56  // Here we put the code back into the parser, until we've removed this method.
57  parser.valid = code == SUCCESS;
58  parser.error = code;
59  return code;
60 }
61 
62 [[deprecated("Use parser.parse() instead")]]
63 simdjson_warn_unused inline dom::parser build_parsed_json(const uint8_t *buf, size_t len, bool realloc_if_needed = true) noexcept {
64  dom::parser parser;
65  error_code code = parser.parse(buf, len, realloc_if_needed).error();
66  // The deprecated json_parse API is a signal that the user plans to *use* the error code / valid
67  // bits in the parser instead of heeding the result code. The normal parser unsets those in
68  // anticipation of making the error code ephemeral.
69  // Here we put the code back into the parser, until we've removed this method.
70  parser.valid = code == SUCCESS;
71  parser.error = code;
72  return parser;
73 }
74 [[deprecated("Use parser.parse() instead")]]
75 simdjson_warn_unused inline dom::parser build_parsed_json(const char *buf, size_t len, bool realloc_if_needed = true) noexcept {
76  dom::parser parser;
77  error_code code = parser.parse(buf, len, realloc_if_needed).error();
78  // The deprecated json_parse API is a signal that the user plans to *use* the error code / valid
79  // bits in the parser instead of heeding the result code. The normal parser unsets those in
80  // anticipation of making the error code ephemeral.
81  // Here we put the code back into the parser, until we've removed this method.
82  parser.valid = code == SUCCESS;
83  parser.error = code;
84  return parser;
85 }
86 [[deprecated("Use parser.parse() instead")]]
87 simdjson_warn_unused inline dom::parser build_parsed_json(const std::string &s, bool realloc_if_needed = true) noexcept {
88  dom::parser parser;
89  error_code code = parser.parse(s.data(), s.length(), realloc_if_needed).error();
90  // The deprecated json_parse API is a signal that the user plans to *use* the error code / valid
91  // bits in the parser instead of heeding the result code. The normal parser unsets those in
92  // anticipation of making the error code ephemeral.
93  // Here we put the code back into the parser, until we've removed this method.
94  parser.valid = code == SUCCESS;
95  parser.error = code;
96  return parser;
97 }
98 [[deprecated("Use parser.parse() instead")]]
99 simdjson_warn_unused inline dom::parser build_parsed_json(const padded_string &s) noexcept {
100  dom::parser parser;
101  error_code code = parser.parse(s).error();
102  // The deprecated json_parse API is a signal that the user plans to *use* the error code / valid
103  // bits in the parser instead of heeding the result code. The normal parser unsets those in
104  // anticipation of making the error code ephemeral.
105  // Here we put the code back into the parser, until we've removed this method.
106  parser.valid = code == SUCCESS;
107  parser.error = code;
108  return parser;
109 }
110 #endif // SIMDJSON_DISABLE_DEPRECATED_API
111 
113 int json_parse(const char *buf, dom::parser &parser) noexcept = delete;
115 dom::parser build_parsed_json(const char *buf) noexcept = delete;
116 
117 } // namespace simdjson
118 
119 #endif // SIMDJSON_DOM_JSONPARSER_H
We want to support argument-dependent lookup (ADL).
error_code
All possible errors returned by simdjson.
Definition: error.h:17
@ SUCCESS
No error.
Definition: error.h:18