diff --git a/amalgamated_8h_source.html b/amalgamated_8h_source.html index e4feb319a..b534764a7 100644 --- a/amalgamated_8h_source.html +++ b/amalgamated_8h_source.html @@ -29,7 +29,7 @@
















































Start iterating an on-demand JSON document.
ondemand::parser parser; document doc = parser.iterate(json);
It is expected that the content is a valid UTF-8 file, containing a valid JSON document. Otherwise the iterate method may return an error. In particular, the whole input should be valid: we do not attempt to tolerate incorrect content either before or after a JSON document. If there is a UTF-8 BOM, the parser skips it.
-Calling iterate on an invalid JSON document may not immediately trigger an error. The call to iterate does not parse and validate the whole document.
-Because parsing is done while you iterate, you must keep the JSON buffer around at least as long as the document iteration.
-Only one iteration at a time can happen per parser, and the parser must be kept alive during iteration to ensure intermediate buffers can be accessed. Any document must be destroyed before you call parse() again or destroy the parser.
-The buffer must have at least SIMDJSON_PADDING extra allocated bytes. It does not matter what those bytes are initialized to, as long as they are allocated. These bytes will be read: if you using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the SIMDJSON_PADDING bytes to avoid runtime warnings.
-If you pass a mutable std::string reference (std::string&), the parser will seek to extend its capacity to SIMDJSON_PADDING bytes beyond the end of the string.
Whenever you pass an std::string reference, the parser will access the bytes beyond the end of the string but before the end of the allocated memory (std::string::capacity()). If you are using a sanitizer that checks for reading uninitialized bytes or std::string's container-overflow checks, you may encounter sanitizer warnings. You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view which can be be passed to the parser's iterate function:
@@ -842,22 +842,22 @@ std::string referencesNo copy of the input buffer is made.
The function is lazy: it may be that no more than one JSON document at a time is parsed.
The caller is responsabile to ensure that the input string data remains unchanged and is not deleted during the loop.
-The buffer must contain a series of one or more JSON documents, concatenated into a single buffer, separated by ASCII whitespace. It effectively parses until it has a fully valid document, then starts parsing the next document at that point. (It does this with more parallelism and lookahead than you might think, though.)
documents that consist of an object or array may omit the whitespace between them, concatenating with no separator. Documents that consist of a single primitive (i.e. documents that are not arrays or objects) MUST be separated with ASCII whitespace.
The characters inside a JSON document, and between JSON documents, must be valid Unicode (UTF-8). If there is a UTF-8 BOM, the parser skips it.
The documents must not exceed batch_size bytes (by default 1MB) or they will fail to parse. Setting batch_size to excessively large or excessively small values may impact negatively the performance.
-When compiled with SIMDJSON_THREADS_ENABLED, this method will use a single thread under the hood to do some lookahead.
-The buffer must have at least SIMDJSON_PADDING extra allocated bytes. It does not matter what those bytes are initialized to, as long as they are allocated. These bytes will be read: if you using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the SIMDJSON_PADDING bytes to avoid runtime warnings.
This is checked automatically with all iterate_many function calls, except for the two that take pointers (const char* or const uint8_t*).
-If the parser's current capacity is less than batch_size, it will allocate enough capacity to handle it (up to max_capacity).
to a user-provided buffer. The result must be valid UTF-8. The provided pointer is advanced to the end of the string by reference, and a string_view instance is returned. You can ensure that your buffer is large enough by allocating a block of memory at least as large as the input JSON plus SIMDJSON_PADDING and then unescape all strings to this one buffer.
This unescape function is a low-level function. If you want a more user-friendly approach, you should avoid raw_json_string instances (e.g., by calling unescaped_key() instead of key() or get_string() instead of get_raw_json_string()).
-The string_view is only valid as long as the bytes in dst.
to a user-provided buffer. The result may not be valid UTF-8. See https://simonsapin.github.io/wtf-8/ The provided pointer is advanced to the end of the string by reference, and a string_view instance is returned. You can ensure that your buffer is large enough by allocating a block of memory at least as large as the input JSON plus SIMDJSON_PADDING and then unescape all strings to this one buffer.
This unescape function is a low-level function. If you want a more user-friendly approach, you should avoid raw_json_string instances (e.g., by calling unescaped_key() instead of key() or get_string() instead of get_raw_json_string()).
-The string_view is only valid as long as the bytes in dst.
























Load a JSON document from a file and return a reference to it.
dom::parser parser; const element doc = parser.load("jsonexamples/twitter.json");
The function is eager: the file's content is loaded in memory inside the parser instance and immediately parsed. The file can be deleted after the parser.load call.
The JSON document still lives in the parser: this is the most efficient way to parse JSON documents because it reuses the same buffers, but you must use the document before you destroy the parser or call parse() again.
Moving the parser instance is safe, but it invalidates the element instances. You may store the parser instance without moving it by wrapping it inside an unique_ptr instance like so: std::unique_ptr<dom::parser> parser(new dom::parser{});.
If the parser's current capacity is less than the file length, it will allocate enough capacity to handle it (up to max_capacity).
-Windows users who need to read files with non-ANSI characters in the name should set their code page to UTF-8 (65001) before calling this function. This should be the default with Windows 11 and better. Further, they may use the AreFileApisANSI function to determine whether the filename is interpreted using the ANSI or the system default OEM codepage, and they may call SetFileApisToOEM accordingly.
It is similar to the function load except that instead of parsing into the internal document instance associated with the parser, it allows the user to provide a document instance.
dom::parser parser; dom::document doc; element doc_root = parser.load_into_document(doc, "jsonexamples/twitter.json");
The function is eager: the file's content is loaded in memory inside the parser instance and immediately parsed. The file can be deleted after the parser.load_into_document call.
After the call to load_into_document, the parser is no longer needed.
The JSON document lives in the document instance: you must keep the document instance alive while you navigate through it (i.e., used the returned value from load_into_document). You are encourage to reuse the document instance many times with new data to avoid reallocations:
@@ -539,20 +539,20 @@ IMPORTANT: Document LifetimeThe file is loaded in memory and can be safely deleted after the parser.load_many(path) function has returned. The memory is held by the parser instance.
The function is lazy: it may be that no more than one JSON document at a time is parsed. And, possibly, no document many have been parsed when the parser.load_many(path) function returned.
If there is a UTF-8 BOM, the parser skips it.
-The file must contain a series of one or more JSON documents, concatenated into a single buffer, separated by whitespace. It effectively parses until it has a fully valid document, then starts parsing the next document at that point. (It does this with more parallelism and lookahead than you might think, though.)
Documents that consist of an object or array may omit the whitespace between them, concatenating with no separator. documents that consist of a single primitive (i.e. documents that are not arrays or objects) MUST be separated with whitespace.
The documents must not exceed batch_size bytes (by default 1MB) or they will fail to parse. Setting batch_size to excessively large or excessively small values may impact negatively the performance.
-All errors are returned during iteration: if there is a global error such as memory allocation, it will be yielded as the first result. Iteration always stops after the first error.
As with all other simdjson methods, non-exception error handling is readily available through the same interface, requiring you to check the error before using the document:
dom::parser parser; dom::document_stream docs; auto error = parser.load_many(path).get(docs); if (error) { cerr << error << endl; exit(1); } for (auto doc : docs) { std::string_view title; if ((error = doc["title"].get(title)) { cerr << error << endl; exit(1); } cout << title << endl; }
-When compiled with SIMDJSON_THREADS_ENABLED, this method will use a single thread under the hood to do some lookahead.
-If the parser's current capacity is less than batch_size, it will allocate enough capacity to handle it (up to max_capacity).
Parse a JSON document and return a temporary reference to it.
dom::parser parser; element doc_root = parser.parse(buf, len);
The function eagerly parses the input: the input can be modified and discarded after the parser.parse(buf, len) call has completed.
The JSON document still lives in the parser: this is the most efficient way to parse JSON documents because it reuses the same buffers, but you must use the document before you destroy the parser or call parse() again.
Moving the parser instance is safe, but it invalidates the element instances. You may store the parser instance without moving it by wrapping it inside an unique_ptr instance like so: std::unique_ptr<dom::parser> parser(new dom::parser{});.
The buffer must have at least SIMDJSON_PADDING extra allocated bytes. It does not matter what those bytes are initialized to, as long as they are allocated. These bytes will be read: if you using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the SIMDJSON_PADDING bytes to avoid runtime warnings.
If realloc_if_needed is true (the default), it is assumed that the buffer does not have enough padding, and it is copied into an enlarged temporary buffer before parsing. Thus the following is safe:
@@ -852,12 +852,12 @@ REQUIRED: Buffer PaddingIf you set realloc_if_needed to false (e.g., parser.parse(json, json_len, false)), you must provide a buffer with at least SIMDJSON_PADDING extra bytes at the end. The benefit of setting realloc_if_needed to false is that you avoid a temporary memory allocation and a copy.
The padded bytes may be read. It is not important how you initialize these bytes though we recommend a sensible default like null character values or spaces. For example, the following low-level code is safe:
const char *json = R"({"key":"value"})"; const size_t json_len = std::strlen(json); std::unique_ptr<char[]> padded_json_copy{new char[json_len + SIMDJSON_PADDING]}; std::memcpy(padded_json_copy.get(), json, json_len); std::memset(padded_json_copy.get() + json_len, '\0', SIMDJSON_PADDING); simdjson::dom::parser parser; simdjson::dom::element element = parser.parse(padded_json_copy.get(), json_len, false);
-If you pass a mutable std::string reference (std::string&), the parser will seek to extend its capacity to SIMDJSON_PADDING bytes beyond the end of the string.
Whenever you pass an std::string reference, the parser will access the bytes beyond the end of the string but before the end of the allocated memory (std::string::capacity()). If you are using a sanitizer that checks for reading uninitialized bytes or std::string's container-overflow checks, you may encounter sanitizer warnings. You can safely ignore these warnings. Or you can call simdjson::pad(std::string&) to pad the string with SIMDJSON_PADDING spaces: this function returns a simdjson::padding_string_view which can be be passed to the parser's parse function:
std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; element doc = parser.parse(simdjson::pad(json));
-If the parser's current capacity is less than len, it will allocate enough capacity to handle it (up to max_capacity).
It is similar to the function parse except that instead of parsing into the internal document instance associated with the parser, it allows the user to provide a document instance.
dom::parser parser; dom::document doc; element doc_root = parser.parse_into_document(doc, buf, len);
The function eagerly parses the input: the input can be modified and discarded after the parser.parse(buf, len) call has completed.
After the call to parse_into_document, the parser is no longer needed.
The JSON document lives in the document instance: you must keep the document instance alive while you navigate through it (i.e., used the returned value from parse_into_document). You are encourage to reuse the document instance many times with new data to avoid reallocations:
@@ -1250,23 +1250,23 @@ IMPORTANT: Document LifetimeThe following is safe:
auto json = "[\"temporary data\"]"_padded; auto docs = parser.parse_many(json); for (element doc : docs) { cout << std::string(doc["title"]) << endl; }
If there is a UTF-8 BOM, the parser skips it.
-The buffer must contain a series of one or more JSON documents, concatenated into a single buffer, separated by whitespace. It effectively parses until it has a fully valid document, then starts parsing the next document at that point. (It does this with more parallelism and lookahead than you might think, though.)
documents that consist of an object or array may omit the whitespace between them, concatenating with no separator. documents that consist of a single primitive (i.e. documents that are not arrays or objects) MUST be separated with whitespace.
The documents must not exceed batch_size bytes (by default 1MB) or they will fail to parse. Setting batch_size to excessively large or excessively small values may impact negatively the performance.
-All errors are returned during iteration: if there is a global error such as memory allocation, it will be yielded as the first result. Iteration always stops after the first error.
As with all other simdjson methods, non-exception error handling is readily available through the same interface, requiring you to check the error before using the document:
dom::parser parser; dom::document_stream docs; auto error = parser.load_many(path).get(docs); if (error) { cerr << error << endl; exit(1); } for (auto doc : docs) { std::string_view title; if ((error = doc["title"].get(title)) { cerr << error << endl; exit(1); } cout << title << endl; }
-The buffer must have at least SIMDJSON_PADDING extra allocated bytes. It does not matter what those bytes are initialized to, as long as they are allocated. These bytes will be read: if you using a sanitizer that verifies that no uninitialized byte is read, then you should initialize the SIMDJSON_PADDING bytes to avoid runtime warnings.
-When compiled with SIMDJSON_THREADS_ENABLED, this method will use a single thread under the hood to do some lookahead.
-If the parser's current capacity is less than batch_size, it will allocate enough capacity to handle it (up to max_capacity).







































































































































































































If you prefer not to create your own ondemand::parser instance, you can access a thread-local version by calling ondemand::parser.get_parser().
(Windows users compiling with C++17 or better may use wchar_t strings to support non-ASCII filenames: padded_string::load(L"twitter.json").)
If you prefer not to create your own ondemand::parser instance, you can access a thread-local version by calling ondemand::parser.get_parser().
However, you should be careful because a parser instance can only be used for one document at a time, thus it is only applicable when you are only parsing one document per thread at any one time.
You can also create a padded string—and call iterate():
When you are iterating through an object, you are advancing through its keys and values. You should not also access the object or other objects. E.g. within a loop over myobject, you should not be accessing myobject. The following is an anti-pattern: for(auto value: myobject) {myobject["mykey"]}.
You should never reset an object as you are iterating through it. The following is an anti-pattern: for(auto value: myobject) {myobject.reset()}.
array[1]). You should never reset an array as you are iterating through it. The following is an anti-pattern: for(auto value: myarray) {myarray.reset()}.array[1]). You should never reset an array as you are iterating through it. The following is an anti-pattern: for(auto value: myarray) {myarray.reset()}.object["foo"]. This will scan through the object looking for the field with the matching string, doing a character-by-character comparison. It may generate the error simdjson::NO_SUCH_FIELD if there is no such key in the object, it may throw an exception (see Error handling). For efficiency reason, you should avoid looking up the same field repeatedly: e.g., do not do object["foo"] followed by object["foo"] with the same object instance. Generally, you should not mix and match iterating through an object (for(auto field : object) {...}) and key accesses (object["foo"]): if you need to iterate through an object after a key access, you need to call reset() on the object. Whenever you call reset(), you need to keep in mind that though you can iterate over the array repeatedly, values should be consumedonly once (e.g., repeatedly calling unescaped_key() on the same key is forbidden). Keep in mind that On-Demand does not buffer or save the result of the parsing: if you repeatedly access object["foo"], then it must repeatedly seek the key and parse the content. The library does not provide a distinct function to check if a key is present, instead we recommend you attempt to access the key: e.g., by doing ondemand::value val{}; if (!object["foo"].get(val)) {...}, you have that val contains the requested value inside the if clause. It is your responsibility as a user to temporarily keep a reference to the value (auto v = object["foo"]), or to consume the content and store it in your own data structures. If you consume an object twice: std::string_view(object["foo"] followed by std::string_view(object["foo"] then your code is in error. Furthermore, you can only consume one field at a time, on the same object. The value instance you get from content["bids"] becomes invalid when you call content["asks"]. If you have retrieved content["bids"].get_array() and you later call content["asks"].get_array(), then the first array should no longer be accessed: it would be unsafe to do so. You can detect such mistakes by first compiling and running the code with development checks: an OUT_OF_ORDER_ITERATION error is generated.@@ -349,11 +350,13 @@ Using the parsed JSONdouble x = doc["x"]; // Success: [] loops back around to find "x"
* Output to strings: Given a document, a value, an array or an object in a JSON document, you can output a JSON string version suitable to be parsed again as JSON content: simdjson::to_json_string(element). A call to to_json_string consumes fully the element: if you apply it on a document, the internal pointer is advanced to the end of the document. The simdjson::to_json_string does not allocate memory. The to_json_string function should not be confused with retrieving the value of a string instance which are escaped and represented using a lightweight std::string_view instance pointing at an internal string buffer inside the parser instance. To illustrate, the first of the following two code segments will print the unescaped string "test" complete with the quote whereas the second one will print the escaped content of the string (without the quotes).
-+
+cpp // serialize a JSON to an escaped std::string instance so that it can be parsed again as JSON auto silly_json = R"( { "test": "result" } )"_padded; ondemand::document doc = parser.iterate(silly_json); std::cout << simdjson::to_json_string(doc["test"]) << std::endl; // Requires simdjson 1.0 or better >@icode{cpp} // retrieves an unescaped string value as a string_view instance auto silly_json = R"( { "test": "result" } )"_padded; ondemand::document doc = parser.iterate(silly_json); std::cout << std::string_view(doc["test"]) << std::endl; >You can use `to_json_string` to efficiently extract components of a JSON document to reconstruct a new JSON document, as in the following example: @endicode cpp auto cars_json = R"( [ +
+] )"_padded; std::vector<std::string_view> arrays; // We are going to collect string_view instances which point inside the `cars_json` string // and are therefore valid as long as `cars_json` remains in scope. { ondemand::parser parser; for (ondemand::object car : parser.iterate(cars_json)) { if (uint64_t(car["year"]) > 2000) { arrays.push_back(simdjson::to_json_string(car["tire_pressure"])); } } } // We can now convert to a JSON string: std::ostringstream oss; oss << "["; for(size_t i = 0; i < arrays.size(); i++) { if (i>0) { oss << ","; } oss << arrays[i]; } oss << "]"; auto json_string = oss.str(); // json_string == "[[ 40.1, 39.9, 37.7, 40.4 ],[ 30.1, 31.0, 28.6, 28.7 ]]"cpp // serialize a JSON to an escaped std::string instance so that it can be parsed again as JSON auto silly_json = R"( { "test": "result" } )"_padded; ondemand::document doc = parser.iterate(silly_json); std::cout << simdjson::to_json_string(doc["test"]) << std::endl; // Requires simdjson 1.0 or better @icode @endicode cpp // retrieves an unescaped string value as a string_view instance auto silly_json = R"( { "test": "result" } )"_padded; ondemand::document doc = parser.iterate(silly_json); std::cout << std::string_view(doc["test"]) << std::endl; @icode You can use `to_json_string` to efficiently extract components of a JSON document to reconstruct a new JSON document, as in the following example: @endicode cpp auto cars_json = R"( [ { "make": "Toyota", "model": "Camry", "year": 2018, "tire_pressure": [ 40.1, 39.9, 37.7, 40.4 ] }, { "make": "Kia", "model": "Soul", "year": 2012, "tire_pressure": [ 30.1, 31.0, 28.6, 28.7 ] }, { "make": "Toyota", "model": "Tercel", "year": 1999, "tire_pressure": [ 29.8, 30.0, 30.2, 30.5 ] } -] )"_padded; std::vector<std::string_view> arrays; // We are going to collect string_view instances which point inside the `cars_json` string // and are therefore valid as long as `cars_json` remains in scope. { ondemand::parser parser; for (ondemand::object car : parser.iterate(cars_json)) { if (uint64_t(car["year"]) > 2000) { arrays.push_back(simdjson::to_json_string(car["tire_pressure"])); } } } // We can now convert to a JSON string: std::ostringstream oss; oss << "["; for(size_t i = 0; i < arrays.size(); i++) { if (i>0) { oss << ","; } oss << arrays[i]; } oss << "]"; auto json_string = oss.str(); // json_string == "[[ 40.1, 39.9, 37.7, 40.4 ],[ 30.1, 31.0, 28.6, 28.7 ]]" ></blockquote>* **Extracting Values (without exceptions):** You can use a variant usage ofget()with error codes to avoid exceptions. You first declare the variable of the appropriate type (double,uint64_t,int64_t,bool,ondemand::objectandondemand::array) and pass it by reference toget()` which gives you back an error code: e.g.,
* Extracting Values (without exceptions): You can use a variant usage of get() with error codes to avoid exceptions. You first declare the variable of the appropriate type (double, uint64_t, int64_t, bool, ondemand::object and ondemand::array) and pass it by reference to get() which gives you back an error code: e.g.,
Let us review these concepts with some additional examples. For simplicity, we omit the include clauses (#include "simdjson.h") as well as namespace-using clauses (using namespace simdjson;).
We may then provide support for our Car struct:


Given that the parsed data is made of structures that depend on the JSON input, you might want to check that it conforms to your expectation. You can do so with concepts.
+Let us consider this example:
+You might want to ensure that the result is an array of persons. You can define your expection with concepts like so:
+And then a simple static assert with decltype is sufficient to check that the expectation is met:
In practice, you may have a JSON file, say json_data that you want to parse at compile time. You may do so as follows.
We have a few limitations which trigger compile-time errors if violated.

Note: This feature requires C++26 Static Reflection support (P2996) and is currently only available with experimental compilers. You must enable it with -DSIMDJSON_STATIC_REFLECTION=ON when building.
Note: This feature requires C++26 Static Reflection support (P2996) and is currently only available with experimental compilers. You must enable it with -DSIMDJSON_STATIC_REFLECTION=ON when building.
simdjson provides compile-time JSONPath and JSON Pointer accessors that validate paths against struct definitions at compile time and generate optimized accessor code with zero runtime overhead. This combines the safety of compile-time type checking with the performance of pre-parsed, pre-validated access paths.
--DSIMDJSON_STATIC_REFLECTION=ONCompile Time:
When you provide a struct type, the compiler validates the entire path at compile time:
When you omit the struct type, the path is parsed at compile time but not validated:
JSONPath uses dot notation and bracket notation for field access:
-$ prefix | Optional root indicator | $.name, $["name"] |
JSON Pointer (RFC 6901) uses slash-separated paths:
-~1 | Escaped / | /field~1name → field/name |
Extract values directly into variables with compile-time type checking:
The compiler verifies that the target variable type matches the field type at the path.
-Compile-time errors occur when:
static_assert failureCompile-time accessors provide:
Use compile-time accessors when:

The simdjson library offers two distinct approaches on how to access a JSON document. We support a conventional Document-Object-Model (DOM) front-end. In such a scenario, the JSON document is entirely parsed, validated and materialized in memory as the first step. The programmer may then access the parsed data using this in-memory model.
On-Demand is a different model where you parse just what you need, directly into your own data structure. The On-Demand approach, when well tuned, can provide superior performance. We refer you to the On-Demand documentation for further details.
-The simdjson library offers a simple DOM tree API, which you can access by creating a dom::parser and calling the load() method:
Or by creating a padded string (for efficiency reasons, simdjson requires a string with SIMDJSON_PADDING bytes at the end) and calling parse():
You can copy your data directly on a simdjson::padded_string as follows:
You can also load a padded_string from a file.
(Windows users compiling with C++17 or better may use wchar_t strings to support non-ASCII filenames: padded_string::load(L"twitter.json").)
(Windows users compiling with C++17 or better may use wchar_t strings to support non-ASCII filenames: padded_string::load(L"twitter.json").)
You can copy your data directly on a simdjson::padded_string as follows:
For best performance, a parser instance should be reused over several files: otherwise you will needlessly reallocate memory, an expensive process. It is also possible to avoid entirely memory allocations during parsing when using simdjson. See our performance notes for details.
If you need a lower-level interface, you may call the function parser.parse(const char * p, size_t l) on a pointer p while specifying the length of your input l in bytes.
Windows-specific: Windows users who need to read files with non-ANSI characters in the name should set their code page to UTF-8 (65001). This should be the default with Windows 11 and better. Further, they may use the AreFileApisANSI function to determine whether the filename is interpreted using the ANSI or the system default OEM codepage, and they may call SetFileApisToOEM accordingly.
-Once you have an element, you can navigate it with idiomatic C++ iterators, operators and casts.
-0 is parsed as the integer 0 as in Python or C++. If you set the macro SIMDJSON_MINUS_ZERO_AS_FLOAT to 1 when building simdjson, you can get that -0 is mapped to -0.0 as in JavaScript. You can get the desired effect by building simdjson with cmake setting the SIMDJSON_MINUS_ZERO_AS_FLOAT to on: cmake -B build -D SIMDJSON_MINUS_ZERO_AS_FLOAT=ON.
object["foo"].for (auto value : array) { ... }. If you know the type of the value, you can cast it right there, too! for (double value : array) { ... }element.type(). It returns an element_type with values such as simdjson::dom::element_type::ARRAY, simdjson::dom::element_type::OBJECT, simdjson::dom::element_type::INT64, simdjson::dom::element_type::UINT64,simdjson::dom::element_type::DOUBLE, simdjson::dom::element_type::STRING, simdjson::dom::element_type::BOOL or, simdjson::dom::element_type::NULL_VALUE.out << element). You can also request the construction of a minified string version (simdjson::minify(element)) or a prettified string version (simdjson::prettify(element)). Numbers are serialized as 64-bit floating-point numbers (double).The following code illustrates all of the above:
While the simdjson library can be used in any project using C++ 11 and above, field iteration has special support C++ 17's destructuring syntax. For example:
simdjson library also supports some C++20 feature including std::ranges:
The simdjson library also supports JSON pointer through the at_pointer() method, letting you reach further down into the document in a single call:
The simdjson library supports a subset of JSONPath (RFC 9535) through the at_path() method, allowing you to reach further into the document in a single call. The subset of JSONPath that is implemented is the subset that is trivially convertible into the JSON Pointer format, using . to access a field and [] to access a specific index.
Consider the following example:
@@ -329,11 +334,11 @@ JSONPathThe at_path_with_wildcard function in simdjson extends the JSONPath querying capabilities by supporting wildcard expressions (*) in JSON paths. This allows users to retrieve multiple elements from a JSON document in a single query. For example, you can use $.address.* to fetch all fields within the address object or $.phoneNumbers[*].numbers[*] to retrieve all phone numbers across multiple objects in an array.
The * wildcard matches all elements at a specific level. For instance, $.address.* retrieves all key-value pairs in the address object, while $.*.streetAddress fetches all streetAddress fields across objects at the root level. You can combine wildcards with array indexing. For example, $.phoneNumbers[*].numbers[1] retrieves the second number from each numbers array in the phoneNumbers array. If no elements match the wildcard query, the function returns an empty result. For instance, querying $.empty_object.* or $.empty_array.* will yield an empty set.
Here is an example demonstrating the use of at_path_with_wildcard:
This function is particularly useful for extracting data from complex JSON structures with nested arrays and objects. By leveraging wildcards, you can simplify your queries and reduce the need for multiple iterations.
-All simdjson APIs that can fail return simdjson_result<T>, which is a <value, error_code> pair. You can retrieve the value with .get(), like so:
The at() method has linear-time complexity: it should not be used to iterate over the content of an array.
This is how the example in "Using the Parsed JSON" could be written using only error code checking:
To ensure you don't write any code that uses exceptions, compile with SIMDJSON_EXCEPTIONS=OFF. For example, if including the project via cmake:
Users more comfortable with an exception flow may choose to directly cast the simdjson_result<T> to the desired type:
Sometimes you don't necessarily have a document with a known type, and are trying to generically inspect or walk over JSON elements. To do that, you can use iterators and the type() method. For example, here's a quick and dirty recursive function that verbosely prints the JSON document as JSON (* ignoring nuances like trailing commas and escaping strings, for brevity's sake):
If you're using simdjson to parse multiple documents, or in a loop, you should make a parser once and reuse it. The simdjson library will allocate and retain internal buffers between parses, keeping buffers hot in cache and keeping memory allocation and initialization to a minimum. In this manner, you can parse terabytes of JSON data without doing any new allocation.
You are only borrowing the document from the simdjson parser. Don't keep it long term!
This is key: don't keep the document&, dom::element, dom::array, dom::object or string_view objects you get back from the API. Convert them to C++ native values, structs and arrays that you own.
The simdjson library automatically expands its memory capacity when larger documents are parsed, so that you don't unexpectedly fail. In a short process that reads a bunch of files and then exits, this works pretty flawlessly.
Server loops, though, are long-running processes that will keep the parser around forever. This means that if you encounter a really, really large document, simdjson will not resize back down. The simdjson library lets you adjust your allocation strategy to prevent your server from growing without bound:
@@ -673,16 +678,22 @@ Server Loops: Long-Running Processes and Memory CapacityThe simdjson API provides access to the JSON DOM (document-object-model) content as a tree of dom::element instances, each representing an object, an array or an atomic type (null, true, false, number). These dom::element instances are lightweight objects (e.g., spanning 16 bytes) and it might be advantageous to pass them by value, as opposed to passing them by reference or by pointer.
The simdjson function parser.parse reads data from a padded buffer, containing SIMDJSON_PADDING extra bytes added at the end. If you are passing a padded_string to parser.parse or loading the JSON directly from disk (parser.load), padding is automatically handled. When calling parser.parse on a pointer (e.g., parser.parse(my_char_pointer, my_length_in_bytes)) a temporary copy is made by default with adequate padding and you, again, do not need to be concerned with padding.
Some users may not be able use our padded_string class or to load the data directly from disk (parser.load). They may need to pass data pointers to the library. If these users wish to avoid temporary copies and corresponding temporary memory allocations, they may want to call parser.parse with the realloc_if_needed parameter set to false (e.g., parser.parse(my_char_pointer, my_length_in_bytes, false)). In such cases, they need to ensure that there are at least SIMDJSON_PADDING extra bytes at the end that can be safely accessed and read. They do not need to initialize the padded bytes to any value in particular. The following example is safe:
cpp const char *json = R"({"key":"value"})"; const size_t json_len = std::strlen(json); std::unique_ptr<char[]> padded_json_copy{new char[json_len + SIMDJSON_PADDING]}; memcpy(padded_json_copy.get(), json, json_len); memset(padded_json_copy.get() + json_len, 0, SIMDJSON_PADDING); simdjson::dom::parser parser; simdjson::dom::element element = parser.parse(padded_json_copy.get(), json_len, false); `
Setting the realloc_if_needed parameter false in this manner may lead to better performance since copies are avoided, but it requires that the user takes more responsibilities: the simdjson library cannot verify that the input buffer was padded with SIMDJSON_PADDING extra bytes.
Setting the realloc_if_needed parameter false in this manner may lead to better performance since copies are avoided, but it requires that the user takes more responsibilities: the simdjson library cannot verify that the input buffer was padded with SIMDJSON_PADDING extra bytes.
NDEBUG pre-processor directive when compiling the simdjson library. Importantly, using the optimization flags -O2 or -O3 under GCC and LLVM clang does not set the NDEBUG directive, you must set it manually (e.g., -DNDEBUG).
The simdjson library takes advantage of SIMD instruction sets such as NEON, SSE and AVX to achieve much of its speed. Because these instruction sets work differently, simdjson has to compile a different version of the JSON parser for different CPU architectures, often with different algorithms to take better advantage of a given CPU!
The current implementations are:
In many cases, you don't know where your compiled binary is going to run, so simdjson automatically compiles all the implementations into the executable. On Intel, it will include 4 implementations (icelake, haswell, westmere and fallback), on 64-bit ARM it will include just one since running dispatching is unnecessary, and on PPC it will include 2 (ppc64 and fallback).
If you know more about where you're going to run and want to save the space, you can disable any of these implementations at compile time with -DSIMDJSON_IMPLEMENTATION_X=0 (where X is ICELAKE, HASWELL, WESTMERE, ARM64, PPC64, LSX, LASX and FALLBACK).
The simdjson library automatically sets header flags for each implementation as it compiles; there is no need to set architecture-specific flags yourself (e.g., -mavx2, /AVX2 or -march=haswell), and it may even break runtime dispatch and your binaries will fail to run on older processors. Note: for POWER9 processors make sure you compile it with -mcpu=power9 and -mtune=power9 to get maximum performance.
When you first use simdjson, it will detect the CPU you're running on, and swap over to the fastest implementation for it. This is a small, one-time cost and for many people will be paid the first time they call parse() or load().
You can check what implementation is running with active_implementation:
Implementation detection will happen in this case when you first call name().
You can list all available implementations, regardless of which one was selected:
When an implementation is not available, the bracket call simdjson::get_available_implementations()[name] will return the null pointer.
The available implementations have been compiled but may not necessarily be run safely on your system see Checking that an Implementation can Run on your System.
-If you're trying to do performance tests or see how different implementations of simdjson run, you can select the CPU architecture yourself:
You should call supported_by_runtime_system() to compare the processor's features with the need of the implementation.

When serializing large databases, it is often better to write out many independent JSON documents, instead of one large monolithic document containing many records. The simdjson library provides high-speed access to files or streams containing multiple small JSON documents separated by ASCII white-space characters. Given an input such as
... you want to read the entries (individual JSON documents) as quickly and as conveniently as possible. Importantly, the input might span several gigabytes, but you want to use a small (fixed) amount of memory. Ideally, you'd also like the parallelize the processing (using more than one core) to speed up the process.
-The main motivation for this piece of software is to achieve maximum speed and offer a better quality of life in parsing files containing multiple small JSON documents.
The JavaScript Object Notation (JSON) RFC7159 is a handy serialization format. However, when serializing a large sequence of values as an array, or a possibly indeterminate-length or never- ending sequence of values, JSON may be inconvenient.
Consider a sequence of one million values, each possibly one kilobyte when encoded – roughly one gigabyte. It is often desirable to process such a dataset incrementally without having to first read all of it before beginning to produce results.
-Before parsing anything, simdjson first preprocesses the JSON text by identifying all structural indexes (i.e. the starting position of any JSON value, as well as any important operators like ,, :, ] or }) and validating UTF8. This stage is referred to stage 1. However, during this process, simdjson has no knowledge of whether parsed a valid document, multiple documents, or even if the document is complete. Then, to iterate through the JSON text during parsing, we use what we call a JSON iterator that will navigate through the text using these structural indexes. This JSON iterator is not visible though, but it is the key component to make parsing work.
Prior to iterate_many, most people who had to parse a multiline JSON file would proceed by reading the file line by line, using a utility function like std::getline or equivalent, and would then use the parse on each of those lines. From a performance point of view, this process is highly inefficient, in that it requires a lot of unnecessary memory allocation and makes use of the getline function, which is fundamentally slow, slower than the act of parsing with simdjson (more on this here).
Unlike the popular parser RapidJson, our DOM does not require the buffer once the parsing job is completed, the DOM and the buffer are completely independent. The drawback of this architecture is that we need to allocate some additional memory to store our ParsedJson data, for every document inside a given file. Memory allocation can be slow and become a bottleneck, therefore, we want to minimize it as much as possible.
-To achieve a minimum amount of allocations, we opted for a design where we create only one parser object and therefore allocate its memory once, and then recycle it for every document in a given file. But, knowing that they often have largely varying size, we need to make sure that we allocate enough memory so that all the documents can fit. This value is what we call the batch size. As of right now, we need to manually specify a value for this batch size, it has to be at least as big as the biggest document in your file, but not too big so that it submerges the cached memory. The bigger the batch size, the fewer we need to make allocations. We found that 1MB is somewhat a sweet spot.
++ to read the next document, the JSON iterator moves to the start the next document.But how can we make use of threads if they are available? We found a pretty cool algorithm that allows us to quickly identify the position of the last JSON document in a given batch. Knowing exactly where the end of the last document in the batch is, we can safely parse through the last document without any worries that it might be incomplete. Therefore, we can run stage 1 on the next batch concurrently while parsing the documents in the current batch. Running stage 1 in a different thread can, in best cases, remove almost entirely its cost and replaces it by the overhead of a thread, which is orders of magnitude cheaper. Ain't that awesome!
Thread support is only active if thread supported is detected in which case the macro SIMDJSON_THREADS_ENABLED is set. You can also manually pass SIMDJSON_THREADS_ENABLED=1 flag to the library. Otherwise the library runs in single-thread mode.
You should be consistent. If you link against the simdjson library built for multithreading (i.e., with SIMDJSON_THREADS_ENABLED), then you should build your application with multithreading system (setting SIMDJSON_THREADS_ENABLED=1 and linking against a thread library).
A document_stream instance uses at most two threads: there is a main thread and a worker thread.
Since we want to offer flexibility and not restrict ourselves to a specific file format, we support any file that contains any amount of valid JSON document, separated by one or more character that is considered whitespace by the JSON spec. Anything that is not whitespace will be parsed as a JSON document and could lead to failure.
Whitespace Characters:
Example:
See basics.md for an overview of the API.
-From jsonlines.org:
Some users would like to know where the document they parsed is in the input array of bytes. It is possible to do so by accessing directly the iterator and calling its current_index() method which reports the location (in bytes) of the current document in the input stream. You may also call the source() method to get a std::string_view instance on the document and error() to check if there were any error.
Let us illustrate the idea with code:
@@ -223,7 +223,7 @@ Tracking your positionSome users may need to work with truncated streams. The simdjson may truncate documents at the very end of the stream that cannot possibly be valid JSON (e.g., they contain unclosed strings, unmatched brackets, unmatched braces). After iterating through the stream, you may query the truncated_bytes() method which tells you how many bytes were truncated. If the stream is made of full (whole) documents, then you should expect truncated_bytes() to return zero.
Consider the following example where a truncated document ({"key":"intentionally unclosed string</tt>) containing 39 bytes has been left within the stream. In such cases, the first two whole documents are parsed and returned, and the <tt>truncated_bytes()</tt> method returns 39.
@@ -236,7 +236,7 @@ Incomplete streams
Importantly, you should only call truncated_bytes() after iterating through all of the documents since the stream cannot tell whether there are truncated documents at the very end when it may not have accessed that part of the data yet.
We also support comma-separated documents, but with some performance limitations. The iterate_many function takes in an option to allow parsing of comma separated documents (which defaults on false). In this mode, the entire buffer is processed in one batch. Therefore, the total size of the document should not exceed the maximal capacity of the parser (4 GB). This mode also effectively disallow multithreading. It is therefore mostly suitable for not "very large" inputs. In this mode, the batch_size parameter is effectively ignored, as it is set to at least the document size.
In C++20, the standard introduced the notion of customization point. A customization point is a function or function object that can be customized for different types. It allows library authors to provide default behavior while giving users the ability to override this behavior for specific types.

To understand why On-Demand is different, it is helpful to review the major approaches to parsing and parser APIs in use today.
-Many of the most usable, popular JSON APIs (including simdjson) deserialize into a DOM: an intermediate tree of objects, arrays and values. In this model, we convert the input data all at once into a tree-like structure (the DOM). The DOM is then accessed by the programmer like any other in-memory data structure. The resulting API let you refer to each array or object separately, using familiar techniques like iteration (for (auto value : array)) or indexing (object["key"]). In some cases, the values are even deserialized directly into familiar C++ constructs like vectors and maps.
The DOM approach is conceptually simple and "programmer friendly". Using the DOM tree is often easy enough that many users process the DOM as-is instead of creating their own custom data structures.
@@ -180,7 +180,7 @@ DOM ParsersWhat the simdjson library demonstrates is that a DOM API may be quite fast indeed: we can parse files at speeds of several gigabytes per second. However, in some instances, it may be possible to achieve even higher speeds.
-The event-based model (originally from the "Streaming API for XML") uses streaming to eliminate the cost of parsing and storing the entire JSON. In the event-based model, a core JSON engine parses the JSON document piece by piece, but instead of stuffing values in a DOM tree, it passes each value to a callback function, letting the user decide for themselves how to handle it. In such a model, the programmer may need to provide functions for all possible events (a number, a string, a new object, a new array, the array ends, the object ends, and so on). This allows programmers to work with much larger files without running out of memory.
The drawback is complexity: event-based APIs generally have you define a single callback for each type (e.g. string_field(std::string_view key, std::string_view value)). Because of this, the programmer suffers from context blindness: when they find a string they have to check where it is before they know what to do with it. Is this string the text of the tweet, the screen name, or something else? Are we even in a tweet right now, or is this from some other place in the document entirely? Though an event-based approach may allow superior performance, it is demanding of the programmer who must efficiently keep track of its current state within the JSON input.
Though an event-based approach might have its niche uses, we believe that it is rarely ideally suited. We suspect that it is mostly used when performance and memory is a concern, and no other option (except DOM) is readily available.
-In a schema-based model, the programmer provides a description of a data structure, and the parser constructs the data structure in question during parsing. These parsers take a schema–a description of your JSON, with field names, types, everything–and generate classes/structs in your language of choice, as well as a parser to deserialize the JSON into those structs. Some such parsers let you define your own data structures (struct) and they let a preprocessor inspects it and generates a custom JSON parser for it. Though not all of these schema-based parser generators generate a parser or even optimize for streaming, but they are able to in principle. Unlike the DOM and the event-based models, a schema-based approach assumes that the structure of the document is known at compile-time.
Pros of the schema-based approach:
The DOM and event-based parsing model suffer from type blindness: even when the programmer knows exactly what fields and what types are in the JSON document, the parser does not. This means it has to look at each value blind with a big "switch" statement, asking "is this a number? A string? A boolean? An array? An object?"
In modern processors, this kind of switch statement can make your program run slower than it needs to because of the high cost of branch misprediction. Indeed, modern processor cores rely on speculative execution for speed. They "read ahead" in your program, predicting which instructions to run as soon as the data is available. A single-threaded program can execute 2, 3 or even more instructions per cycle–largely because of speculative execution.
Unfortunately, when the processor mispredicts the instructions, typically due to a mispredicted branch, all of the work done from the misprediction has be discarded and started anew. The processor may have been executing 3 or 4 instructions per cycle, and consuming the corresponding power, but all of the work may have been wasteful.
Type blindness means that the processor has to guess, for every JSON value, whether it will be an array, an object, number, string or boolean since these correspond to distinct code paths. Though some JSON files have predictable content, we find in practice that many JSON files stress the branch prediction. Though branch predictors improve with each new generation of processors, the cost of branch mispredictions also tends to increase as pipelines expand, and the processors become able to schedule longer streams of instructions.
On-Demand parsing is tailor-made to solve this problem at the source, parsing values only after the user declares their type by asking for a double, an int, a string, etc. It attempts to do so while preserving most of the flexibility of DOM parsing.
To help visualize the algorithm, we'll walk through the example C++ given at the top, for this JSON:
First, we declare a parser object that keeps internal buffers necessary for parsing. This can be reused to parse multiple JSON files, so you do not pay the high cost of allocating memory every time (and so it can stay in cache!).
@@ -476,7 +476,7 @@ Starting the iterationThe On-Demand API is powerful. To compensate, we add some safeguards to ensure that it can be used without fear in production systems:
We expect that the On-Demand approach has many of the performance benefits of the schema-based approach, while providing a flexibility that is similar to that of the DOM-based approach.
The On-Demand approach has some limitations:
parse_many).At this time we recommend the On-Demand API in the following cases:
The On-Demand API uses advanced architecture-specific code for many common processors to make JSON preprocessing and string parsing faster. By default, however, most c++ compilers will compile to the least common denominator (since the program could theoretically be run anywhere). Since On-Demand is inlined into your own code, it cannot always use these advanced versions unless the compiler is told to target them.
On relevant systems, the On-Demand API provides some support for runtime dispatching: that is, it will attempt to detect, at runtime, the instructions that your processor supports and optimize the code accordingly. However, it cannot always make full use of the features of your processor.
diff --git a/md_doc_2parse__many.html b/md_doc_2parse__many.html index fad947b83..9313ec9b0 100644 --- a/md_doc_2parse__many.html +++ b/md_doc_2parse__many.html @@ -29,7 +29,7 @@
... you want to read the entries (individual JSON documents) as quickly and as conveniently as possible. Importantly, the input might span several gigabytes, but you want to use a small (fixed) amount of memory. Ideally, you'd also like the parallelize the processing (using more than one core) to speed up the process.
-The main motivation for this piece of software is to achieve maximum speed and offer a better quality of life in parsing files containing multiple small JSON documents.
The JavaScript Object Notation (JSON) RFC7159 is a handy serialization format. However, when serializing a large sequence of values as an array, or a possibly indeterminate-length or never- ending sequence of values, JSON may be inconvenient.
Consider a sequence of one million values, each possibly one kilobyte when encoded – roughly one gigabyte. It is often desirable to process such a dataset incrementally without having to first read all of it before beginning to produce results.
-The following is a chart comparing the speed of the different alternatives to parse a multiline JSON. The simdjson library provides a threaded and non-threaded parse_many() implementation. As the figure below shows, if you can, use threads, but if you cannot, the unthreaded mode is still fast! 
The parsing in simdjson is divided into 2 stages. First, in stage 1, we parse the document and find all the structural indexes ( We recommend that you set In C/C++, the The In the simdjson library, we check the If you're using simdjson to parse multiple documents, or in a loop, you should make a parser once and reuse it. The simdjson library will allocate and retain internal buffers between parses, keeping buffers hot in cache and keeping memory allocation and initialization to a minimum. In this manner, you can parse terabytes of JSON data without doing any new allocation. We recommend against creating many or simply The On-Demand approach also automatically expands its memory capacity when larger documents are parsed. However, for longer processes where very large files are processed (such as server loops), this capacity is not resized down. On-Demand also lets you adjust the maximal capacity that the parser can process: There is a memory allocation performance cost the first time you process a large file (e.g. 100MB). Between the cost of allocation, the fact that the memory is not in cache, and the initial zeroing of memory, on some systems, allocation runs far slower than parsing (e.g., 1.4GB/s). Reusing the parser mitigates this by paying the cost once, but does not eliminate it. In large file use cases, enabling transparent huge page allocation on the OS can help a lot. We haven't found the right way to do this on Windows or OS/X, but on Linux, you can enable transparent huge page allocation with a command like: In general, when running benchmarks over large files, we recommend that you report performance numbers with and without huge pages if possible. Furthermore, you should amortize the parsing (e.g., by parsing several large files) to distinguish the time spent parsing from the time spent allocating memory. If you are using the Some JSON files contain many floating-point values. It is the case with many GeoJSON files. Accurately parsing decimal strings into binary floating-point values with proper rounding is challenging. To our knowledge, it is not possible, in general, to parse streams of numbers at gigabytes per second using a single core. While using the simdjson library, it is possible that you might be limited to a few hundred megabytes per second if your JSON documents are densely packed with floating-point values. On Intel and AMD Windows platforms, Microsoft Visual Studio enables programmers to build either 32-bit (x86) or 64-bit (x64 or ARM64) binaries. We urge you to always use 64-bit mode. Visual Studio 2019 should default on 64-bit builds when you have a 64-bit version of Windows, which we recommend. When compiling with Visual Studio, we recommend the flags Recent versions of Microsoft Visual Studio on Windows provides support for the LLVM Clang compiler. You only need to install the "Clang compiler" optional component (clang-cl). You may also get a copy of the 64-bit LLVM CLang compiler for Windows directly from LLVM. The simdjson library fully supports the LLVM Clang compiler under Windows. In fact, you may get better performance out of simdjson with the LLVM Clang compiler than with the regular Visual Studio compiler. Meanwhile the LLVM CLang compiler is binary compatible with Visual Studio which means that you can combine their binaries (executables and libraries). We recommend Visual Studio users prefer LLVM (clang-cl). It compiles to faster release binaries. Furthermore, it compilers faster in release mode. The simdjson library relies on SIMD instructions. SIMD instructions are the public transportation of computing. Instead of using 4 distinct instructions to add numbers, you can replace them with a single instruction that does the same work. Though the one instruction is slightly more expensive, the energy used per unit of work is much less with SIMD. If you can increase your speed using SIMD instructions (NEON, SSE, AVX), you should expect to reduce your power usage. The SIMD instructions that simdjson relies upon (SSE and AVX under x64, NEON under ARM, ALTIVEC under PPC) are routinely part of runtime libraries (e.g., Go, Glibc, LLVM, Rust, Java, PHP). What distinguishes the simdjson library is that it is built from the ground up to benefit from these instructions. The simdjson library does not generally make use of heavy 256-bit instructions. On AVX2 kernels, we use vectorized multiplications, but only using 128-bit registers. On recent processors (Ice Lake/Tiger Lake or better, AMD Zen 4 or better) no frequency throttling is found due to SIMD instructions: we are thus more aggressive with SIMD on these machines. If you can still concerned, you can easily disable AVX-512 with the CMake option You may still be worried about which SIMD instruction set is used by simdjson. Thankfully, you can always determine and change which architecture-specific implementation is used by simdjson. Thus even if your CPU supports AVX2, you do not need to use AVX2. You are in control. For performance reasons, the simdjson library requires that the JSON input contain at least In effect, it means that you can almost always read a few bytes beyond your current buffer—without allocating extra memory. However, tools such as valgrind or memory sanitizers will flag such behavior as unsafe. Nevertheless, you can still make sure of this capability in your code if you are an expert programmer and you are willing to silence sanitizer warnings. The following code provides a portable example. We parse a JSON document to a tape. A tape is an array of 64-bit values. Each node encountered in the JSON document is written to the tape using one or more 64-bit tape elements; the layout of the tape is in "document order": elements are stored as they are encountered in the JSON document. We parse a JSON document to a tape. A tape is an array of 64-bit values. Each node encountered in the JSON document is written to the tape using one or more 64-bit tape elements; the layout of the tape is in "document order": elements are stored as they are encountered in the JSON document. Throughout, little endian encoding is assumed. The tape is indexed starting at 0 (the first element is at index 0). It is sometimes useful to start with an example. Consider the following JSON document: The following is a dump of the content of the tape, with the first number of each line representing the index of a tape element. Most tape elements are written as ‘('c’ << 56) + x Performance consideration: We believe that accessing the tape in regular units of 64 bits is more important for performance than saving memory. Simple JSON nodes are represented with one tape element: Integer values are represented as two 64-bit tape elements: Performance consideration: We store numbers of the main tape because we believe that locality of reference is helpful for performance. Each JSON document will have two special 64-bit tape elements representing a root node, one at the beginning and one at the end. All of the parsed document is located between these two 64-bit tape elements. Hint: We can read the first tape element to determine the length of the tape. We prefix the string data itself by a 32-bit header to be interpreted as a 32-bit integer. It indicates the length of the string. The actual string data starts at an offset of 4 bytes. We store string values using UTF-8 encoding with null termination on a separate tape. A string value is represented on the main tape as the 64-bit tape element ‘(’"' << 56) + x JSON arrays are represented using two 64-bit tape elements. All the content of the array is located between these two tape elements, including arrays and objects. Performance consideration: We can skip the content of an array entirely by accessing the first 64-bit tape element, reading the payload and moving to the corresponding index on the tape. JSON objects are represented using two 64-bit tape elements. Definition at line 146 of file padded_string.h. Definition at line 159 of file padded_string.h. Definition at line 158 of file padded_string.h. Definition at line 171 of file padded_string.h. This is the complete list of members for simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >, including all inherited members. Then any method returning simdjson_result<T> will be chainable with your methods. Definition at line 35 of file implementation_simdjson_result_base.h. Definition at line 142 of file implementation_simdjson_result_base.h. Definition at line 141 of file implementation_simdjson_result_base.h. users should never directly access first and second. Definition at line 143 of file implementation_simdjson_result_base.h. Definition at line 146 of file implementation_simdjson_result_base.h. Users should never directly access 'first'. Definition at line 144 of file implementation_simdjson_result_base.h. Definition at line 147 of file implementation_simdjson_result_base.h. Definition at line 48 of file padded_string-inl.h. Definition at line 49 of file padded_string-inl.h. Definition at line 51 of file padded_string-inl.h. Definition at line 52 of file padded_string-inl.h. Definition at line 72 of file padded_string-inl.h. Definition at line 73 of file padded_string-inl.h. Definition at line 81 of file padded_string-inl.h. Definition at line 82 of file padded_string-inl.h. Definition at line 92 of file padded_string-inl.h. Definition at line 93 of file padded_string-inl.h. Definition at line 116 of file padded_string-inl.h. Definition at line 117 of file padded_string-inl.h. The string data. Definition at line 124 of file padded_string-inl.h. Definition at line 125 of file padded_string-inl.h. The string data. Definition at line 126 of file padded_string-inl.h. Definition at line 127 of file padded_string-inl.h. The length of the string. Does not include padding. Definition at line 122 of file padded_string-inl.h. Definition at line 123 of file padded_string-inl.h. Load this padded string from a file. Windows users who need to read files with non-ANSI characters in the name should set their code page to UTF-8 (65001) before calling this function. This should be the default with Windows 11 and better. Further, they may use the AreFileApisANSI function to determine whether the filename is interpreted using the ANSI or the system default OEM codepage, and they may call SetFileApisToOEM accordingly. Definition at line 134 of file padded_string-inl.h. Definition at line 135 of file padded_string-inl.h. Create a padded_string_view with the same content. Definition at line 130 of file padded_string-inl.h. Definition at line 131 of file padded_string-inl.h. Create a std::string_view with the same content. Definition at line 128 of file padded_string-inl.h. Definition at line 129 of file padded_string-inl.h. Definition at line 98 of file padded_string-inl.h. Definition at line 99 of file padded_string-inl.h. The length of the string. Does not include padding. Definition at line 120 of file padded_string-inl.h. Definition at line 121 of file padded_string-inl.h. Definition at line 107 of file padded_string-inl.h. Definition at line 108 of file padded_string-inl.h. This is the complete list of members for simdjson::simdjson_result< T >, including all inherited members. Inherits simdjson::internal::simdjson_result_base< T >. The result of a simdjson operation that could fail. Gives the option of reading error codes, or throwing an exception by casting to the desired result. Definition at line 278 of file error.h. Definition at line 280 of file error.h. Definition at line 318 of file error.h. Definition at line 320 of file error.h.{, }, ], [, ,, "</tt>, ...) and validate UTF8. Then, in stage 2,
we go through the document again and build the tape using structural indexes found during stage 1.
@@ -145,7 +145,7 @@ that we need to allocate some additional memory to store our ParsedJson data, fo
inside a given file. Memory allocation can be slow and become a bottleneck, therefore, we want to
minimize it as much as possible.
-@subsection autotoc_md140 Design
+@subsection autotoc_md141 Design
To achieve a minimum amount of allocations, we opted for a design where we create only one
parser object and therefore allocate its memory once, and then recycle it for every document in a
@@ -167,7 +167,7 @@ sweet spot.
5. When we reach the end of the batch, we call stage 1 on the next batch, starting from the end of
the last document, and go to step 3.
-@subsection autotoc_md141 Threads
+@subsection autotoc_md142 Threads
But how can we make use of threads if they are available? We found a pretty cool algorithm that allows us to quickly
identify the position of the last JSON document in a given batch. Knowing exactly where the end of
@@ -189,7 +189,7 @@ A <tt>document_stream</tt> instance uses at most two threads: there
You should expect the main thread to be fully occupied while the worker thread is partially busy
(e.g., 80% of the time).
-@section autotoc_md142 Support
+@section autotoc_md143 Support
Since we want to offer flexibility and not restrict ourselves to a specific file
@@ -210,12 +210,12 @@ Some official formats **(non-exhaustive list)**:
- <a href="https://tools.ietf.org/html/rfc7464" >Record separator-delimited JSON (RFC 7464)</a> <- Not supported by simdjson!
- <a href="https://en.wikipedia.org/wiki/JSON_streaming" >More on Wikipedia...</a>
-@section autotoc_md143 API
+@section autotoc_md144 API
See <a href="basics.md::newline-delimited-json-ndjson-and-json-lines" >basics.md</a> for an overview of the API.
-@section autotoc_md144 Use cases
+@section autotoc_md145 Use cases
From <a href="http://jsonlines.org/examples/" >jsonlines.org</a>:
@@ -248,7 +248,7 @@ From <a href="http://jsonlines.org/e
work with than a directory full of XML files.
-@section autotoc_md145 Tracking your position
+@section autotoc_md146 Tracking your position
Some users would like to know where the document they parsed is in the input array of bytes.
@@ -292,7 +292,7 @@ got full document at 29
@endicode
-@section autotoc_md146 Incomplete streams
+@section autotoc_md147 Incomplete streams
Some users may need to work with truncated streams. The simdjson may truncate documents at the very end of the stream that cannot possibly be valid JSON (e.g., they contain unclosed strings, unmatched brackets, unmatched braces). After iterating through the stream, you may query the <tt>truncated_bytes()</tt> method which tells you how many bytes were truncated. If the stream is made of full (whole) documents, then you should expect <tt>truncated_bytes()</tt> to return zero.
diff --git a/md_doc_2performance.html b/md_doc_2performance.html
index 9e9cc6ff1..8c8525e9f 100644
--- a/md_doc_2performance.html
+++ b/md_doc_2performance.html
@@ -29,7 +29,7 @@

-
@@ -108,13 +108,13 @@ $(document).ready(function(){initNavTree('md_doc_2performance.html',''); initRes
+
NDEBUG macro
NDEBUG macro in your release builds.NDEBUG macro is not set by default. When it is not set, the software may do many additional checks that may impact negatively the performance. We recommend that, once your code is well tested, you define NDEBUG directive in your release builds.NDEBUG directive is generally independent from optimization flags. For example, setting -O3 under GCC does not set the NDEBUG directive. However, tools like CMake automatically set NDEBUG for release builds.NDEBUG macro as well as other macros to make performant release builds. However, the C++ standard does not provide a definitive approach to determine whether you are compiling for a release build. Thus we recommend that you follow the practice of setting the NDEBUG macro in release mode to make sure that you do not get undesirable expensive checks.
+
Reusing the parser for maximum efficiency
+
Reusing string buffers
std::string or simdjson::padded_string instances to store the JSON content in your application. Creating many non-trivial objects is convenient but often surprisingly slow. Instead, as much as possible, you should allocate (once or a few times) reusable memory buffers where you write your JSON content. If you have a buffer json_str (of type char*) allocated for capacity bytes and you store a JSON document spanning length bytes, you can pass it to simdjson as follows:
+
Server Loops: Long-Running Processes and Memory Capacity
@@ -169,7 +169,7 @@ Server Loops: Long-Running Processes and Memory Capacity
-set_max_capacity().
+
Large files and huge page support
parse benchmarking tool provided with the simdjson library, you can use the -H flag to omit the memory allocation cost from the benchmark results.
+
Number parsing
@@ -185,13 +185,13 @@ Number parsing
-
+
Visual Studio
/Ob2 /O2 or better. We do not recommend that you compile simdjson with architecture-specific flags such as arch:AVX2. The simdjson library automatically selects the best execution kernel at runtime.
+
Power Usage and Downclocking
SIMDJSON_AVX512_ALLOWED set to OFF (e.g., cmake -D SIMDJSON_AVX512_ALLOWED=OFF -B build && cmake --build build) or by setting the macro SIMDJSON_AVX512_ALLOWED to 0 in C++ prior to importing the headers.
+
Free Padding
simdjson::SIMDJSON_PADDING bytes at the end of the stream. The value simdjson::SIMDJSON_PADDING is small (e.g., 64 bytes). On modern systems, you can safely read beyond an allocated buffers, as long as you remain within an allocated page. Pages on modern systems span at least 4 kilobytes, but can be significantly larger. E.g., Apple systems favour pages spanning 16 kilobytes.

-
@@ -97,9 +97,9 @@ $(document).ready(function(){initNavTree('md_doc_2tape.html',''); initResizable(
+
Example
+
The Tape
-
@@ -185,11 +185,11 @@ The Tape
38 r // pointing to 0 (start root)
+
General formal of the tape elements
where'c'‘ is some ASCII character determining the type of the element (out of 't’, 'f', 'n', 'l', 'u', 'd', '"', '{', '}', '[', ']' ,'r') and where x is a 56-bit value called the payload. The payload is normally interpreted as an unsigned 56-bit integer. Note that 56-bit integers can be quite large.
+
Simple JSON values
@@ -197,7 +197,7 @@ Simple JSON values
-true is represented as the 64-bit value('t' << 56).false is represented as the 64-bit value('f' << 56)`.
+
Integer and Double values
followed by the 64-bit integer value literally. Integer values are assumed to be signed 64-bit values, using two's complement notation.
+
Root node
@@ -216,11 +216,11 @@ Root node
+
Strings
where the payloadx` is the location on the string tape of the null-terminated string.
+
Arrays
@@ -229,7 +229,7 @@ Arrays
+
Objects
diff --git a/minify_8h_source.html b/minify_8h_source.html
index 2a662ba6a..e44943447 100644
--- a/minify_8h_source.html
+++ b/minify_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacemembers.html b/namespacemembers.html
index afdbd7cad..ffcdcbdba 100644
--- a/namespacemembers.html
+++ b/namespacemembers.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html
index 5551edebe..4bc1e7aa7 100644
--- a/namespacemembers_enum.html
+++ b/namespacemembers_enum.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacemembers_eval.html b/namespacemembers_eval.html
index e8d071bac..2d900117a 100644
--- a/namespacemembers_eval.html
+++ b/namespacemembers_eval.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacemembers_func.html b/namespacemembers_func.html
index ecfb163e9..07982d074 100644
--- a/namespacemembers_func.html
+++ b/namespacemembers_func.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacemembers_type.html b/namespacemembers_type.html
index 5abba79ef..e8e9e0ccc 100644
--- a/namespacemembers_type.html
+++ b/namespacemembers_type.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacemembers_vars.html b/namespacemembers_vars.html
index 8f9a170ac..642670215 100644
--- a/namespacemembers_vars.html
+++ b/namespacemembers_vars.html
@@ -29,7 +29,7 @@

-
diff --git a/namespaces.html b/namespaces.html
index c12752512..feb52f995 100644
--- a/namespaces.html
+++ b/namespaces.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson.html b/namespacesimdjson.html
index 205aa1a4d..3b5d96102 100644
--- a/namespacesimdjson.html
+++ b/namespacesimdjson.html
@@ -29,7 +29,7 @@

-
@@ -249,7 +249,7 @@ Enumerations enum { SIMDJSON_VERSION_MAJOR = 4
, SIMDJSON_VERSION_MINOR = 2
-, SIMDJSON_VERSION_REVISION = 1
+, SIMDJSON_VERSION_REVISION = 2
}
@@ -400,7 +400,7 @@ Variables
-
+

-
diff --git a/namespacesimdjson_1_1arm64.html b/namespacesimdjson_1_1arm64.html
index 28147ef28..492e96b44 100644
--- a/namespacesimdjson_1_1arm64.html
+++ b/namespacesimdjson_1_1arm64.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson_1_1dom.html b/namespacesimdjson_1_1dom.html
index b83cd4e5b..cd1140ab6 100644
--- a/namespacesimdjson_1_1dom.html
+++ b/namespacesimdjson_1_1dom.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson_1_1fallback.html b/namespacesimdjson_1_1fallback.html
index af658c559..168c5c75d 100644
--- a/namespacesimdjson_1_1fallback.html
+++ b/namespacesimdjson_1_1fallback.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson_1_1haswell.html b/namespacesimdjson_1_1haswell.html
index 8ee46ca49..4eb94177d 100644
--- a/namespacesimdjson_1_1haswell.html
+++ b/namespacesimdjson_1_1haswell.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson_1_1icelake.html b/namespacesimdjson_1_1icelake.html
index 4f8fccb82..de9064f8e 100644
--- a/namespacesimdjson_1_1icelake.html
+++ b/namespacesimdjson_1_1icelake.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson_1_1lasx.html b/namespacesimdjson_1_1lasx.html
index 5414b791b..79503e15e 100644
--- a/namespacesimdjson_1_1lasx.html
+++ b/namespacesimdjson_1_1lasx.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson_1_1lsx.html b/namespacesimdjson_1_1lsx.html
index 9f09dff45..352c13edc 100644
--- a/namespacesimdjson_1_1lsx.html
+++ b/namespacesimdjson_1_1lsx.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson_1_1ppc64.html b/namespacesimdjson_1_1ppc64.html
index fb9fea3b7..cdf79eab6 100644
--- a/namespacesimdjson_1_1ppc64.html
+++ b/namespacesimdjson_1_1ppc64.html
@@ -29,7 +29,7 @@

-
diff --git a/namespacesimdjson_1_1westmere.html b/namespacesimdjson_1_1westmere.html
index 12edb354b..04864ec38 100644
--- a/namespacesimdjson_1_1westmere.html
+++ b/namespacesimdjson_1_1westmere.html
@@ -29,7 +29,7 @@

-
diff --git a/navtreedata.js b/navtreedata.js
index 940ba24ee..8870b9d52 100644
--- a/navtreedata.js
+++ b/navtreedata.js
@@ -94,143 +94,144 @@ var NAVTREE =
[ "Parse json at compile time", "md_doc_2compile__time.html", [
[ "Introduction", "md_doc_2compile__time.html#autotoc_md54", null ],
[ "Example", "md_doc_2compile__time.html#autotoc_md55", null ],
- [ "Loading from disk", "md_doc_2compile__time.html#autotoc_md56", null ],
- [ "Limitations (compile-time errors)", "md_doc_2compile__time.html#autotoc_md57", null ]
+ [ "Concepts", "md_doc_2compile__time.html#autotoc_md56", null ],
+ [ "Loading from disk", "md_doc_2compile__time.html#autotoc_md57", null ],
+ [ "Limitations (compile-time errors)", "md_doc_2compile__time.html#autotoc_md58", null ]
] ],
[ "Compile-Time JSONPath and JSON Pointer Accessors", "md_doc_2compile__time__accessors.html", [
- [ "Overview", "md_doc_2compile__time__accessors.html#autotoc_md59", null ],
- [ "Requirements", "md_doc_2compile__time__accessors.html#autotoc_md60", null ],
- [ "How It Works", "md_doc_2compile__time__accessors.html#autotoc_md61", null ],
- [ "Two Usage Modes", "md_doc_2compile__time__accessors.html#autotoc_md62", [
- [ "Mode 1: With Type Validation (Recommended)", "md_doc_2compile__time__accessors.html#autotoc_md63", null ],
- [ "Mode 2: Without Validation", "md_doc_2compile__time__accessors.html#autotoc_md64", null ]
+ [ "Overview", "md_doc_2compile__time__accessors.html#autotoc_md60", null ],
+ [ "Requirements", "md_doc_2compile__time__accessors.html#autotoc_md61", null ],
+ [ "How It Works", "md_doc_2compile__time__accessors.html#autotoc_md62", null ],
+ [ "Two Usage Modes", "md_doc_2compile__time__accessors.html#autotoc_md63", [
+ [ "Mode 1: With Type Validation (Recommended)", "md_doc_2compile__time__accessors.html#autotoc_md64", null ],
+ [ "Mode 2: Without Validation", "md_doc_2compile__time__accessors.html#autotoc_md65", null ]
] ],
- [ "JSONPath Syntax", "md_doc_2compile__time__accessors.html#autotoc_md65", [
- [ "Supported Syntax", "md_doc_2compile__time__accessors.html#autotoc_md66", null ],
- [ "Examples", "md_doc_2compile__time__accessors.html#autotoc_md67", null ]
+ [ "JSONPath Syntax", "md_doc_2compile__time__accessors.html#autotoc_md66", [
+ [ "Supported Syntax", "md_doc_2compile__time__accessors.html#autotoc_md67", null ],
+ [ "Examples", "md_doc_2compile__time__accessors.html#autotoc_md68", null ]
] ],
- [ "JSON Pointer Syntax", "md_doc_2compile__time__accessors.html#autotoc_md68", [
- [ "Supported Syntax", "md_doc_2compile__time__accessors.html#autotoc_md69", null ],
- [ "Examples", "md_doc_2compile__time__accessors.html#autotoc_md70", null ]
+ [ "JSON Pointer Syntax", "md_doc_2compile__time__accessors.html#autotoc_md69", [
+ [ "Supported Syntax", "md_doc_2compile__time__accessors.html#autotoc_md70", null ],
+ [ "Examples", "md_doc_2compile__time__accessors.html#autotoc_md71", null ]
] ],
- [ "API Reference", "md_doc_2compile__time__accessors.html#autotoc_md71", [
- [ "JSONPath Functions", "md_doc_2compile__time__accessors.html#autotoc_md72", null ],
- [ "JSON Pointer Functions", "md_doc_2compile__time__accessors.html#autotoc_md73", null ],
- [ "Direct Field Extraction", "md_doc_2compile__time__accessors.html#autotoc_md74", null ]
+ [ "API Reference", "md_doc_2compile__time__accessors.html#autotoc_md72", [
+ [ "JSONPath Functions", "md_doc_2compile__time__accessors.html#autotoc_md73", null ],
+ [ "JSON Pointer Functions", "md_doc_2compile__time__accessors.html#autotoc_md74", null ],
+ [ "Direct Field Extraction", "md_doc_2compile__time__accessors.html#autotoc_md75", null ]
] ],
- [ "Complete Examples", "md_doc_2compile__time__accessors.html#autotoc_md75", [
- [ "Example 1: Validated Access", "md_doc_2compile__time__accessors.html#autotoc_md76", null ],
- [ "Example 2: Non-Validated Access", "md_doc_2compile__time__accessors.html#autotoc_md77", null ],
- [ "Example 3: Direct Extraction", "md_doc_2compile__time__accessors.html#autotoc_md78", null ]
+ [ "Complete Examples", "md_doc_2compile__time__accessors.html#autotoc_md76", [
+ [ "Example 1: Validated Access", "md_doc_2compile__time__accessors.html#autotoc_md77", null ],
+ [ "Example 2: Non-Validated Access", "md_doc_2compile__time__accessors.html#autotoc_md78", null ],
+ [ "Example 3: Direct Extraction", "md_doc_2compile__time__accessors.html#autotoc_md79", null ]
] ],
- [ "Error Handling", "md_doc_2compile__time__accessors.html#autotoc_md79", null ],
- [ "Performance", "md_doc_2compile__time__accessors.html#autotoc_md80", null ],
- [ "Limitations", "md_doc_2compile__time__accessors.html#autotoc_md81", null ],
- [ "When to Use", "md_doc_2compile__time__accessors.html#autotoc_md82", null ],
- [ "See Also", "md_doc_2compile__time__accessors.html#autotoc_md83", null ]
+ [ "Error Handling", "md_doc_2compile__time__accessors.html#autotoc_md80", null ],
+ [ "Performance", "md_doc_2compile__time__accessors.html#autotoc_md81", null ],
+ [ "Limitations", "md_doc_2compile__time__accessors.html#autotoc_md82", null ],
+ [ "When to Use", "md_doc_2compile__time__accessors.html#autotoc_md83", null ],
+ [ "See Also", "md_doc_2compile__time__accessors.html#autotoc_md84", null ]
] ],
[ "The Document-Object-Model (DOM) front-end", "md_doc_2dom.html", [
- [ "DOM vs On-Demand", "md_doc_2dom.html#autotoc_md84", null ],
- [ "The Basics: Loading and Parsing JSON Documents using the DOM front-end", "md_doc_2dom.html#autotoc_md85", null ],
- [ "Using the Parsed JSON", "md_doc_2dom.html#autotoc_md86", [
- [ "Examples", "md_doc_2dom.html#autotoc_md87", null ]
+ [ "DOM vs On-Demand", "md_doc_2dom.html#autotoc_md85", null ],
+ [ "The Basics: Loading and Parsing JSON Documents using the DOM front-end", "md_doc_2dom.html#autotoc_md86", null ],
+ [ "Using the Parsed JSON", "md_doc_2dom.html#autotoc_md87", [
+ [ "Examples", "md_doc_2dom.html#autotoc_md88", null ]
] ],
- [ "C++17 Support", "md_doc_2dom.html#autotoc_md88", null ],
- [ "C++20 Support", "md_doc_2dom.html#autotoc_md89", null ],
- [ "JSON Pointer", "md_doc_2dom.html#autotoc_md90", null ],
- [ "JSONPath", "md_doc_2dom.html#autotoc_md91", null ],
- [ "Using at_path_with_wildcard for JSONPath Queries", "md_doc_2dom.html#autotoc_md92", [
- [ "Example Usage", "md_doc_2dom.html#autotoc_md93", null ]
+ [ "C++17 Support", "md_doc_2dom.html#autotoc_md89", null ],
+ [ "C++20 Support", "md_doc_2dom.html#autotoc_md90", null ],
+ [ "JSON Pointer", "md_doc_2dom.html#autotoc_md91", null ],
+ [ "JSONPath", "md_doc_2dom.html#autotoc_md92", null ],
+ [ "Using at_path_with_wildcard for JSONPath Queries", "md_doc_2dom.html#autotoc_md93", [
+ [ "Example Usage", "md_doc_2dom.html#autotoc_md94", null ]
] ],
- [ "Error Handling", "md_doc_2dom.html#autotoc_md94", [
- [ "Error Handling Example", "md_doc_2dom.html#autotoc_md95", null ],
- [ "Exceptions", "md_doc_2dom.html#autotoc_md96", null ]
+ [ "Error Handling", "md_doc_2dom.html#autotoc_md95", [
+ [ "Error Handling Example", "md_doc_2dom.html#autotoc_md96", null ],
+ [ "Exceptions", "md_doc_2dom.html#autotoc_md97", null ]
] ],
- [ "Tree Walking and JSON Element Types", "md_doc_2dom.html#autotoc_md97", null ],
- [ "Reusing the parser for maximum efficiency", "md_doc_2dom.html#autotoc_md98", null ],
- [ "Server Loops: Long-Running Processes and Memory Capacity", "md_doc_2dom.html#autotoc_md99", null ],
- [ "Best Use of the DOM API", "md_doc_2dom.html#autotoc_md100", null ],
- [ "Padding and Temporary Copies", "md_doc_2dom.html#autotoc_md101", null ],
- [ "Performance Tips", "md_doc_2dom.html#autotoc_md102", null ]
+ [ "Tree Walking and JSON Element Types", "md_doc_2dom.html#autotoc_md98", null ],
+ [ "Reusing the parser for maximum efficiency", "md_doc_2dom.html#autotoc_md99", null ],
+ [ "Server Loops: Long-Running Processes and Memory Capacity", "md_doc_2dom.html#autotoc_md100", null ],
+ [ "Best Use of the DOM API", "md_doc_2dom.html#autotoc_md101", null ],
+ [ "Padding and Temporary Copies", "md_doc_2dom.html#autotoc_md102", null ],
+ [ "Performance Tips", "md_doc_2dom.html#autotoc_md103", null ]
] ],
[ "CPU Architecture-Specific Implementations", "md_doc_2implementation-selection.html", [
- [ "Overview", "md_doc_2implementation-selection.html#autotoc_md103", null ],
- [ "Runtime CPU Detection", "md_doc_2implementation-selection.html#autotoc_md104", null ],
- [ "Inspecting the Detected Implementation", "md_doc_2implementation-selection.html#autotoc_md105", null ],
- [ "Querying Available Implementations", "md_doc_2implementation-selection.html#autotoc_md106", null ],
- [ "Manually Selecting the Implementation", "md_doc_2implementation-selection.html#autotoc_md107", null ],
- [ "Checking that an Implementation can Run on your System", "md_doc_2implementation-selection.html#autotoc_md108", null ]
+ [ "Overview", "md_doc_2implementation-selection.html#autotoc_md104", null ],
+ [ "Runtime CPU Detection", "md_doc_2implementation-selection.html#autotoc_md105", null ],
+ [ "Inspecting the Detected Implementation", "md_doc_2implementation-selection.html#autotoc_md106", null ],
+ [ "Querying Available Implementations", "md_doc_2implementation-selection.html#autotoc_md107", null ],
+ [ "Manually Selecting the Implementation", "md_doc_2implementation-selection.html#autotoc_md108", null ],
+ [ "Checking that an Implementation can Run on your System", "md_doc_2implementation-selection.html#autotoc_md109", null ]
] ],
[ "iterate_many", "md_doc_2iterate__many.html", [
- [ "Contents", "md_doc_2iterate__many.html#autotoc_md109", null ],
- [ "Motivation", "md_doc_2iterate__many.html#autotoc_md110", null ],
- [ "How it works", "md_doc_2iterate__many.html#autotoc_md111", [
- [ "Context", "md_doc_2iterate__many.html#autotoc_md112", null ],
- [ "Design", "md_doc_2iterate__many.html#autotoc_md113", null ],
- [ "Threads", "md_doc_2iterate__many.html#autotoc_md114", null ]
+ [ "Contents", "md_doc_2iterate__many.html#autotoc_md110", null ],
+ [ "Motivation", "md_doc_2iterate__many.html#autotoc_md111", null ],
+ [ "How it works", "md_doc_2iterate__many.html#autotoc_md112", [
+ [ "Context", "md_doc_2iterate__many.html#autotoc_md113", null ],
+ [ "Design", "md_doc_2iterate__many.html#autotoc_md114", null ],
+ [ "Threads", "md_doc_2iterate__many.html#autotoc_md115", null ]
] ],
- [ "Support", "md_doc_2iterate__many.html#autotoc_md115", null ],
- [ "API", "md_doc_2iterate__many.html#autotoc_md116", null ],
- [ "Use cases", "md_doc_2iterate__many.html#autotoc_md117", null ],
- [ "Tracking your position", "md_doc_2iterate__many.html#autotoc_md118", null ],
- [ "Incomplete streams", "md_doc_2iterate__many.html#autotoc_md119", null ],
- [ "Comma-separated documents", "md_doc_2iterate__many.html#autotoc_md120", null ],
- [ "C++20 features", "md_doc_2iterate__many.html#autotoc_md121", null ]
+ [ "Support", "md_doc_2iterate__many.html#autotoc_md116", null ],
+ [ "API", "md_doc_2iterate__many.html#autotoc_md117", null ],
+ [ "Use cases", "md_doc_2iterate__many.html#autotoc_md118", null ],
+ [ "Tracking your position", "md_doc_2iterate__many.html#autotoc_md119", null ],
+ [ "Incomplete streams", "md_doc_2iterate__many.html#autotoc_md120", null ],
+ [ "Comma-separated documents", "md_doc_2iterate__many.html#autotoc_md121", null ],
+ [ "C++20 features", "md_doc_2iterate__many.html#autotoc_md122", null ]
] ],
[ "A Better Way to Parse Documents?", "md_doc_2ondemand__design.html", [
- [ "Algorithm", "md_doc_2ondemand__design.html#autotoc_md126", [
- [ "DOM Parsers", "md_doc_2ondemand__design.html#autotoc_md122", null ],
- [ "Event-Based Parsers (SAX, SAJ, etc.)", "md_doc_2ondemand__design.html#autotoc_md123", null ],
- [ "Schema-Based Parser Generators", "md_doc_2ondemand__design.html#autotoc_md124", null ],
- [ "Type Blindness and Branch Misprediction", "md_doc_2ondemand__design.html#autotoc_md125", null ],
- [ "Starting the iteration", "md_doc_2ondemand__design.html#autotoc_md127", null ]
+ [ "Algorithm", "md_doc_2ondemand__design.html#autotoc_md127", [
+ [ "DOM Parsers", "md_doc_2ondemand__design.html#autotoc_md123", null ],
+ [ "Event-Based Parsers (SAX, SAJ, etc.)", "md_doc_2ondemand__design.html#autotoc_md124", null ],
+ [ "Schema-Based Parser Generators", "md_doc_2ondemand__design.html#autotoc_md125", null ],
+ [ "Type Blindness and Branch Misprediction", "md_doc_2ondemand__design.html#autotoc_md126", null ],
+ [ "Starting the iteration", "md_doc_2ondemand__design.html#autotoc_md128", null ]
] ],
- [ "Design Features", "md_doc_2ondemand__design.html#autotoc_md128", [
- [ "String Parsing", "md_doc_2ondemand__design.html#autotoc_md129", null ],
- [ "Iteration Safety", "md_doc_2ondemand__design.html#autotoc_md130", null ],
- [ "Benefits of the On-Demand Approach", "md_doc_2ondemand__design.html#autotoc_md131", null ],
- [ "Limitations of the On-Demand Approach", "md_doc_2ondemand__design.html#autotoc_md132", null ],
- [ "Applicability of the On-Demand Approach", "md_doc_2ondemand__design.html#autotoc_md133", null ]
+ [ "Design Features", "md_doc_2ondemand__design.html#autotoc_md129", [
+ [ "String Parsing", "md_doc_2ondemand__design.html#autotoc_md130", null ],
+ [ "Iteration Safety", "md_doc_2ondemand__design.html#autotoc_md131", null ],
+ [ "Benefits of the On-Demand Approach", "md_doc_2ondemand__design.html#autotoc_md132", null ],
+ [ "Limitations of the On-Demand Approach", "md_doc_2ondemand__design.html#autotoc_md133", null ],
+ [ "Applicability of the On-Demand Approach", "md_doc_2ondemand__design.html#autotoc_md134", null ]
] ],
- [ "Checking Your CPU Selection (x64 systems)", "md_doc_2ondemand__design.html#autotoc_md134", null ]
+ [ "Checking Your CPU Selection (x64 systems)", "md_doc_2ondemand__design.html#autotoc_md135", null ]
] ],
[ "parse_many", "md_doc_2parse__many.html", [
- [ "Contents", "md_doc_2parse__many.html#autotoc_md135", null ],
- [ "Motivation", "md_doc_2parse__many.html#autotoc_md136", null ],
- [ "Performance", "md_doc_2parse__many.html#autotoc_md137", null ],
- [ "How it works", "md_doc_2parse__many.html#autotoc_md138", [
- [ "Context", "md_doc_2parse__many.html#autotoc_md139", null ],
- [ "Design", "md_doc_2parse__many.html#autotoc_md140", null ],
- [ "Threads", "md_doc_2parse__many.html#autotoc_md141", null ]
+ [ "Contents", "md_doc_2parse__many.html#autotoc_md136", null ],
+ [ "Motivation", "md_doc_2parse__many.html#autotoc_md137", null ],
+ [ "Performance", "md_doc_2parse__many.html#autotoc_md138", null ],
+ [ "How it works", "md_doc_2parse__many.html#autotoc_md139", [
+ [ "Context", "md_doc_2parse__many.html#autotoc_md140", null ],
+ [ "Design", "md_doc_2parse__many.html#autotoc_md141", null ],
+ [ "Threads", "md_doc_2parse__many.html#autotoc_md142", null ]
] ],
- [ "Support", "md_doc_2parse__many.html#autotoc_md142", null ],
- [ "API", "md_doc_2parse__many.html#autotoc_md143", null ],
- [ "Use cases", "md_doc_2parse__many.html#autotoc_md144", null ],
- [ "Tracking your position", "md_doc_2parse__many.html#autotoc_md145", null ],
- [ "Incomplete streams", "md_doc_2parse__many.html#autotoc_md146", null ]
+ [ "Support", "md_doc_2parse__many.html#autotoc_md143", null ],
+ [ "API", "md_doc_2parse__many.html#autotoc_md144", null ],
+ [ "Use cases", "md_doc_2parse__many.html#autotoc_md145", null ],
+ [ "Tracking your position", "md_doc_2parse__many.html#autotoc_md146", null ],
+ [ "Incomplete streams", "md_doc_2parse__many.html#autotoc_md147", null ]
] ],
[ "Performance Notes", "md_doc_2performance.html", [
- [ "NDEBUG macro", "md_doc_2performance.html#autotoc_md147", null ],
- [ "Reusing the parser for maximum efficiency", "md_doc_2performance.html#autotoc_md148", null ],
- [ "Reusing string buffers", "md_doc_2performance.html#autotoc_md149", null ],
- [ "Server Loops: Long-Running Processes and Memory Capacity", "md_doc_2performance.html#autotoc_md150", null ],
- [ "Large files and huge page support", "md_doc_2performance.html#autotoc_md151", null ],
- [ "Number parsing", "md_doc_2performance.html#autotoc_md152", null ],
- [ "Visual Studio", "md_doc_2performance.html#autotoc_md153", null ],
- [ "Power Usage and Downclocking", "md_doc_2performance.html#autotoc_md154", null ],
- [ "Free Padding", "md_doc_2performance.html#autotoc_md155", null ]
+ [ "NDEBUG macro", "md_doc_2performance.html#autotoc_md148", null ],
+ [ "Reusing the parser for maximum efficiency", "md_doc_2performance.html#autotoc_md149", null ],
+ [ "Reusing string buffers", "md_doc_2performance.html#autotoc_md150", null ],
+ [ "Server Loops: Long-Running Processes and Memory Capacity", "md_doc_2performance.html#autotoc_md151", null ],
+ [ "Large files and huge page support", "md_doc_2performance.html#autotoc_md152", null ],
+ [ "Number parsing", "md_doc_2performance.html#autotoc_md153", null ],
+ [ "Visual Studio", "md_doc_2performance.html#autotoc_md154", null ],
+ [ "Power Usage and Downclocking", "md_doc_2performance.html#autotoc_md155", null ],
+ [ "Free Padding", "md_doc_2performance.html#autotoc_md156", null ]
] ],
[ "Tape structure in simdjson", "md_doc_2tape.html", [
- [ "Example", "md_doc_2tape.html#autotoc_md157", [
- [ "The Tape", "md_doc_2tape.html#autotoc_md158", null ]
+ [ "Example", "md_doc_2tape.html#autotoc_md158", [
+ [ "The Tape", "md_doc_2tape.html#autotoc_md159", null ]
] ],
- [ "General formal of the tape elements", "md_doc_2tape.html#autotoc_md159", null ],
- [ "Simple JSON values", "md_doc_2tape.html#autotoc_md160", null ],
- [ "Integer and Double values", "md_doc_2tape.html#autotoc_md161", null ],
- [ "Root node", "md_doc_2tape.html#autotoc_md162", null ],
- [ "Strings", "md_doc_2tape.html#autotoc_md163", null ],
- [ "Arrays", "md_doc_2tape.html#autotoc_md164", null ],
- [ "Objects", "md_doc_2tape.html#autotoc_md165", null ]
+ [ "General formal of the tape elements", "md_doc_2tape.html#autotoc_md160", null ],
+ [ "Simple JSON values", "md_doc_2tape.html#autotoc_md161", null ],
+ [ "Integer and Double values", "md_doc_2tape.html#autotoc_md162", null ],
+ [ "Root node", "md_doc_2tape.html#autotoc_md163", null ],
+ [ "Strings", "md_doc_2tape.html#autotoc_md164", null ],
+ [ "Arrays", "md_doc_2tape.html#autotoc_md165", null ],
+ [ "Objects", "md_doc_2tape.html#autotoc_md166", null ]
] ],
[ "Deprecated List", "deprecated.html", null ],
[ "Topics", "topics.html", "topics" ],
@@ -267,7 +268,7 @@ var NAVTREEINDEX =
"classsimdjson_1_1dom_1_1array.html#a1ad9d74fd73844ca1ebcaaa88025860a",
"classsimdjson_1_1implementation.html",
"md_doc_2basics.html#autotoc_md14",
-"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3aa63b588d5559f64f89a416e656880b949"
+"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3aa4e866b275c85fbb439f6484251cfb31c"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/navtreeindex1.js b/navtreeindex1.js
index 6503777fa..d79bf7f99 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -1,11 +1,11 @@
var NAVTREEINDEX1 =
{
-"classsimdjson_1_1dom_1_1array.html#a1ad9d74fd73844ca1ebcaaa88025860a":[14,0,0,0,0,4],
"classsimdjson_1_1dom_1_1array.html#a1ad9d74fd73844ca1ebcaaa88025860a":[13,0,0,1,0,4],
-"classsimdjson_1_1dom_1_1array.html#a26e66312190e016c22093292974490ff":[13,0,0,1,0,9],
+"classsimdjson_1_1dom_1_1array.html#a1ad9d74fd73844ca1ebcaaa88025860a":[14,0,0,0,0,4],
"classsimdjson_1_1dom_1_1array.html#a26e66312190e016c22093292974490ff":[14,0,0,0,0,9],
-"classsimdjson_1_1dom_1_1array.html#a378b3312cdf6f8fe04725b617b8cfcb9":[14,0,0,0,0,7],
+"classsimdjson_1_1dom_1_1array.html#a26e66312190e016c22093292974490ff":[13,0,0,1,0,9],
"classsimdjson_1_1dom_1_1array.html#a378b3312cdf6f8fe04725b617b8cfcb9":[13,0,0,1,0,7],
+"classsimdjson_1_1dom_1_1array.html#a378b3312cdf6f8fe04725b617b8cfcb9":[14,0,0,0,0,7],
"classsimdjson_1_1dom_1_1array.html#a698f2f984d1a78a68962c06b2f047686":[13,0,0,1,0,12],
"classsimdjson_1_1dom_1_1array.html#a698f2f984d1a78a68962c06b2f047686":[14,0,0,0,0,12],
"classsimdjson_1_1dom_1_1array.html#a6a6373cc1542a7137b79978680a93d18":[13,0,0,1,0,2],
@@ -22,38 +22,38 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1array.html#aebd2b7ca5e1d87476ea2cd4fc9239a74":[13,0,0,1,0,6],
"classsimdjson_1_1dom_1_1array.html#aee39c0fbcf1f7f6b75e9a31d86bedfe8":[13,0,0,1,0,11],
"classsimdjson_1_1dom_1_1array.html#aee39c0fbcf1f7f6b75e9a31d86bedfe8":[14,0,0,0,0,11],
-"classsimdjson_1_1dom_1_1array_1_1iterator.html":[14,0,0,0,0,0],
"classsimdjson_1_1dom_1_1array_1_1iterator.html":[13,0,0,1,0,0],
+"classsimdjson_1_1dom_1_1array_1_1iterator.html":[14,0,0,0,0,0],
"classsimdjson_1_1dom_1_1array_1_1iterator.html#a2680a46eeece638bc352bcf6a169bcf6":[13,0,0,1,0,0,0],
"classsimdjson_1_1dom_1_1array_1_1iterator.html#a2680a46eeece638bc352bcf6a169bcf6":[14,0,0,0,0,0,0],
"classsimdjson_1_1dom_1_1array_1_1iterator.html#a46454681bd5e3a938c04eb89210e7966":[13,0,0,1,0,0,3],
"classsimdjson_1_1dom_1_1array_1_1iterator.html#a46454681bd5e3a938c04eb89210e7966":[14,0,0,0,0,0,3],
"classsimdjson_1_1dom_1_1array_1_1iterator.html#a6ec91111a2bcc9e378d30b47b613fac5":[13,0,0,1,0,0,2],
"classsimdjson_1_1dom_1_1array_1_1iterator.html#a6ec91111a2bcc9e378d30b47b613fac5":[14,0,0,0,0,0,2],
-"classsimdjson_1_1dom_1_1array_1_1iterator.html#a90254656d4e7a8826246d1f931647eff":[13,0,0,1,0,0,1],
"classsimdjson_1_1dom_1_1array_1_1iterator.html#a90254656d4e7a8826246d1f931647eff":[14,0,0,0,0,0,1],
+"classsimdjson_1_1dom_1_1array_1_1iterator.html#a90254656d4e7a8826246d1f931647eff":[13,0,0,1,0,0,1],
"classsimdjson_1_1dom_1_1document.html":[13,0,0,1,1],
"classsimdjson_1_1dom_1_1document.html":[14,0,0,0,1],
"classsimdjson_1_1dom_1_1document.html#a6947c9d79453071ca73d06e398bcdd2a":[13,0,0,1,1,0],
"classsimdjson_1_1dom_1_1document.html#a6947c9d79453071ca73d06e398bcdd2a":[14,0,0,0,1,0],
-"classsimdjson_1_1dom_1_1document.html#ae19dced0eee5f63b9d1591ef51dcda4e":[14,0,0,0,1,3],
"classsimdjson_1_1dom_1_1document.html#ae19dced0eee5f63b9d1591ef51dcda4e":[13,0,0,1,1,3],
-"classsimdjson_1_1dom_1_1document.html#aeb1930eabfeb1b1ad38102bda81f8ca2":[14,0,0,0,1,2],
+"classsimdjson_1_1dom_1_1document.html#ae19dced0eee5f63b9d1591ef51dcda4e":[14,0,0,0,1,3],
"classsimdjson_1_1dom_1_1document.html#aeb1930eabfeb1b1ad38102bda81f8ca2":[13,0,0,1,1,2],
-"classsimdjson_1_1dom_1_1document.html#af34f108b46f82428bfe4ea33869358f0":[14,0,0,0,1,1],
+"classsimdjson_1_1dom_1_1document.html#aeb1930eabfeb1b1ad38102bda81f8ca2":[14,0,0,0,1,2],
"classsimdjson_1_1dom_1_1document.html#af34f108b46f82428bfe4ea33869358f0":[13,0,0,1,1,1],
+"classsimdjson_1_1dom_1_1document.html#af34f108b46f82428bfe4ea33869358f0":[14,0,0,0,1,1],
"classsimdjson_1_1dom_1_1document__stream.html":[13,0,0,1,2],
"classsimdjson_1_1dom_1_1document__stream.html":[14,0,0,0,2],
"classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b":[13,0,0,1,2,6],
"classsimdjson_1_1dom_1_1document__stream.html#a2a08525ae815167b73b6393a8999e46b":[14,0,0,0,2,6],
-"classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69":[13,0,0,1,2,7],
"classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69":[14,0,0,0,2,7],
-"classsimdjson_1_1dom_1_1document__stream.html#a9a51df3d81c9b7849bbbc8ae42096b76":[14,0,0,0,2,3],
+"classsimdjson_1_1dom_1_1document__stream.html#a6c2a07e08213dc9a51754940942f9e69":[13,0,0,1,2,7],
"classsimdjson_1_1dom_1_1document__stream.html#a9a51df3d81c9b7849bbbc8ae42096b76":[13,0,0,1,2,3],
-"classsimdjson_1_1dom_1_1document__stream.html#a9d6bb44a7d8f818c401d65fb80f6a523":[14,0,0,0,2,2],
+"classsimdjson_1_1dom_1_1document__stream.html#a9a51df3d81c9b7849bbbc8ae42096b76":[14,0,0,0,2,3],
"classsimdjson_1_1dom_1_1document__stream.html#a9d6bb44a7d8f818c401d65fb80f6a523":[13,0,0,1,2,2],
-"classsimdjson_1_1dom_1_1document__stream.html#abd3e3d38eb32c0cb1a124f89978607a5":[14,0,0,0,2,5],
+"classsimdjson_1_1dom_1_1document__stream.html#a9d6bb44a7d8f818c401d65fb80f6a523":[14,0,0,0,2,2],
"classsimdjson_1_1dom_1_1document__stream.html#abd3e3d38eb32c0cb1a124f89978607a5":[13,0,0,1,2,5],
+"classsimdjson_1_1dom_1_1document__stream.html#abd3e3d38eb32c0cb1a124f89978607a5":[14,0,0,0,2,5],
"classsimdjson_1_1dom_1_1document__stream.html#adec1e168e4188bf9c90ee87adbd72850":[14,0,0,0,2,4],
"classsimdjson_1_1dom_1_1document__stream.html#adec1e168e4188bf9c90ee87adbd72850":[13,0,0,1,2,4],
"classsimdjson_1_1dom_1_1document__stream.html#ae6ee894790448145e11a456f12253364":[14,0,0,0,2,1],
@@ -64,32 +64,32 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a09b193fe348fa8a267b96edd96f7515e":[13,0,0,1,2,0,2],
"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a56c69d73c7e424e008a28771661ab218":[14,0,0,0,2,0,1],
"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a56c69d73c7e424e008a28771661ab218":[13,0,0,1,2,0,1],
-"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a6c3a5002801ab80b1c59422d7f3400d3":[13,0,0,1,2,0,0],
"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a6c3a5002801ab80b1c59422d7f3400d3":[14,0,0,0,2,0,0],
-"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a7b05ed75aa2b2a6d3a17204b9863956a":[13,0,0,1,2,0,3],
+"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a6c3a5002801ab80b1c59422d7f3400d3":[13,0,0,1,2,0,0],
"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a7b05ed75aa2b2a6d3a17204b9863956a":[14,0,0,0,2,0,3],
+"classsimdjson_1_1dom_1_1document__stream_1_1iterator.html#a7b05ed75aa2b2a6d3a17204b9863956a":[13,0,0,1,2,0,3],
"classsimdjson_1_1dom_1_1element.html":[14,0,0,0,3],
"classsimdjson_1_1dom_1_1element.html":[13,0,0,1,3],
-"classsimdjson_1_1dom_1_1element.html#a08c7dcebf9e96fe5e4dd6df2959c0024":[13,0,0,1,3,27],
"classsimdjson_1_1dom_1_1element.html#a08c7dcebf9e96fe5e4dd6df2959c0024":[14,0,0,0,3,27],
+"classsimdjson_1_1dom_1_1element.html#a08c7dcebf9e96fe5e4dd6df2959c0024":[13,0,0,1,3,27],
"classsimdjson_1_1dom_1_1element.html#a0d11f69ba87f55960be6f655e4e99aba":[13,0,0,1,3,23],
"classsimdjson_1_1dom_1_1element.html#a0d11f69ba87f55960be6f655e4e99aba":[14,0,0,0,3,23],
"classsimdjson_1_1dom_1_1element.html#a19162bf6d94fb6c21bb2bf2e9b78ff0d":[14,0,0,0,3,43],
"classsimdjson_1_1dom_1_1element.html#a19162bf6d94fb6c21bb2bf2e9b78ff0d":[13,0,0,1,3,43],
-"classsimdjson_1_1dom_1_1element.html#a1e3f78b3bee5ec3f33cc4b03dcc87981":[14,0,0,0,3,26],
"classsimdjson_1_1dom_1_1element.html#a1e3f78b3bee5ec3f33cc4b03dcc87981":[13,0,0,1,3,26],
-"classsimdjson_1_1dom_1_1element.html#a23f4d8c38309b0184e658d8a9697a177":[13,0,0,1,3,35],
+"classsimdjson_1_1dom_1_1element.html#a1e3f78b3bee5ec3f33cc4b03dcc87981":[14,0,0,0,3,26],
"classsimdjson_1_1dom_1_1element.html#a23f4d8c38309b0184e658d8a9697a177":[14,0,0,0,3,35],
-"classsimdjson_1_1dom_1_1element.html#a2428a280035930e432570fb08712c4de":[14,0,0,0,3,9],
+"classsimdjson_1_1dom_1_1element.html#a23f4d8c38309b0184e658d8a9697a177":[13,0,0,1,3,35],
"classsimdjson_1_1dom_1_1element.html#a2428a280035930e432570fb08712c4de":[13,0,0,1,3,9],
+"classsimdjson_1_1dom_1_1element.html#a2428a280035930e432570fb08712c4de":[14,0,0,0,3,9],
"classsimdjson_1_1dom_1_1element.html#a29c21d70352c9b8af7144fd4f38baaa6":[14,0,0,0,3,13],
"classsimdjson_1_1dom_1_1element.html#a29c21d70352c9b8af7144fd4f38baaa6":[13,0,0,1,3,13],
"classsimdjson_1_1dom_1_1element.html#a2f9448091caf47e5ecc325956e14ed73":[13,0,0,1,3,38],
"classsimdjson_1_1dom_1_1element.html#a2f9448091caf47e5ecc325956e14ed73":[14,0,0,0,3,38],
"classsimdjson_1_1dom_1_1element.html#a3474c8fc1b1cb06625a50dcb9a2c5269":[14,0,0,0,3,10],
"classsimdjson_1_1dom_1_1element.html#a3474c8fc1b1cb06625a50dcb9a2c5269":[13,0,0,1,3,10],
-"classsimdjson_1_1dom_1_1element.html#a367d22eeabc1881a8eb18bae2f2ba3b8":[13,0,0,1,3,40],
"classsimdjson_1_1dom_1_1element.html#a367d22eeabc1881a8eb18bae2f2ba3b8":[14,0,0,0,3,40],
+"classsimdjson_1_1dom_1_1element.html#a367d22eeabc1881a8eb18bae2f2ba3b8":[13,0,0,1,3,40],
"classsimdjson_1_1dom_1_1element.html#a3777fed88f37555f2d090aeb604a117c":[14,0,0,0,3,6],
"classsimdjson_1_1dom_1_1element.html#a3777fed88f37555f2d090aeb604a117c":[13,0,0,1,3,6],
"classsimdjson_1_1dom_1_1element.html#a3e74a8a6ef8318e2de805359126c6d7b":[13,0,0,1,3,14],
@@ -100,40 +100,40 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1element.html#a5185447e6bf8949e7c5e9c22711e8764":[14,0,0,0,3,4],
"classsimdjson_1_1dom_1_1element.html#a5342161b8c52c78b2f5edac10e9d05ca":[13,0,0,1,3,42],
"classsimdjson_1_1dom_1_1element.html#a5342161b8c52c78b2f5edac10e9d05ca":[14,0,0,0,3,42],
-"classsimdjson_1_1dom_1_1element.html#a548e0fc369eb455ea477e20fb0793627":[13,0,0,1,3,12],
"classsimdjson_1_1dom_1_1element.html#a548e0fc369eb455ea477e20fb0793627":[14,0,0,0,3,12],
+"classsimdjson_1_1dom_1_1element.html#a548e0fc369eb455ea477e20fb0793627":[13,0,0,1,3,12],
"classsimdjson_1_1dom_1_1element.html#a65bd96042cc0f19dc3e0635937edded4":[13,0,0,1,3,28],
"classsimdjson_1_1dom_1_1element.html#a65bd96042cc0f19dc3e0635937edded4":[14,0,0,0,3,28],
-"classsimdjson_1_1dom_1_1element.html#a686a21f39c755dcbf95116757d2193bd":[14,0,0,0,3,3],
"classsimdjson_1_1dom_1_1element.html#a686a21f39c755dcbf95116757d2193bd":[13,0,0,1,3,3],
+"classsimdjson_1_1dom_1_1element.html#a686a21f39c755dcbf95116757d2193bd":[14,0,0,0,3,3],
"classsimdjson_1_1dom_1_1element.html#a71d6bfa627dd66e202f8b402f91a44ac":[14,0,0,0,3,30],
"classsimdjson_1_1dom_1_1element.html#a71d6bfa627dd66e202f8b402f91a44ac":[13,0,0,1,3,30],
"classsimdjson_1_1dom_1_1element.html#a743b5f1ef4202d8fb8fb317e612385f3":[14,0,0,0,3,33],
"classsimdjson_1_1dom_1_1element.html#a743b5f1ef4202d8fb8fb317e612385f3":[13,0,0,1,3,33],
"classsimdjson_1_1dom_1_1element.html#a83adcf723abff34d7c1e8ec0e69d967b":[14,0,0,0,3,36],
"classsimdjson_1_1dom_1_1element.html#a83adcf723abff34d7c1e8ec0e69d967b":[13,0,0,1,3,36],
-"classsimdjson_1_1dom_1_1element.html#a846a790e93c9bad6c40641239bd77b28":[14,0,0,0,3,8],
"classsimdjson_1_1dom_1_1element.html#a846a790e93c9bad6c40641239bd77b28":[13,0,0,1,3,8],
+"classsimdjson_1_1dom_1_1element.html#a846a790e93c9bad6c40641239bd77b28":[14,0,0,0,3,8],
"classsimdjson_1_1dom_1_1element.html#a87c75accdc0b35e06f3d554561ce8cd3":[14,0,0,0,3,11],
"classsimdjson_1_1dom_1_1element.html#a87c75accdc0b35e06f3d554561ce8cd3":[13,0,0,1,3,11],
-"classsimdjson_1_1dom_1_1element.html#a8f9569b40dd2b23aab9fbf2229749589":[13,0,0,1,3,32],
"classsimdjson_1_1dom_1_1element.html#a8f9569b40dd2b23aab9fbf2229749589":[14,0,0,0,3,32],
+"classsimdjson_1_1dom_1_1element.html#a8f9569b40dd2b23aab9fbf2229749589":[13,0,0,1,3,32],
"classsimdjson_1_1dom_1_1element.html#a9d92145af64401654c20d2885dd4051d":[13,0,0,1,3,18],
"classsimdjson_1_1dom_1_1element.html#a9d92145af64401654c20d2885dd4051d":[14,0,0,0,3,18],
"classsimdjson_1_1dom_1_1element.html#a9dbf81ad662ad32168025e8e08686935":[13,0,0,1,3,0],
"classsimdjson_1_1dom_1_1element.html#a9dbf81ad662ad32168025e8e08686935":[14,0,0,0,3,0],
"classsimdjson_1_1dom_1_1element.html#a9e5a750a066f17d5a9a31a24980e0b1d":[13,0,0,1,3,19],
"classsimdjson_1_1dom_1_1element.html#a9e5a750a066f17d5a9a31a24980e0b1d":[14,0,0,0,3,19],
-"classsimdjson_1_1dom_1_1element.html#aa59ecf8e9ac7b1a9e977d2cd3f03aa7f":[14,0,0,0,3,7],
"classsimdjson_1_1dom_1_1element.html#aa59ecf8e9ac7b1a9e977d2cd3f03aa7f":[13,0,0,1,3,7],
-"classsimdjson_1_1dom_1_1element.html#aa8b5798004a859bf922778226b8c1cce":[14,0,0,0,3,1],
+"classsimdjson_1_1dom_1_1element.html#aa59ecf8e9ac7b1a9e977d2cd3f03aa7f":[14,0,0,0,3,7],
"classsimdjson_1_1dom_1_1element.html#aa8b5798004a859bf922778226b8c1cce":[13,0,0,1,3,1],
-"classsimdjson_1_1dom_1_1element.html#aa954cda836a4748ec9937291a9250604":[13,0,0,1,3,15],
+"classsimdjson_1_1dom_1_1element.html#aa8b5798004a859bf922778226b8c1cce":[14,0,0,0,3,1],
"classsimdjson_1_1dom_1_1element.html#aa954cda836a4748ec9937291a9250604":[14,0,0,0,3,15],
+"classsimdjson_1_1dom_1_1element.html#aa954cda836a4748ec9937291a9250604":[13,0,0,1,3,15],
"classsimdjson_1_1dom_1_1element.html#ab036e52a73d5bd046e1f2650a31dab30":[13,0,0,1,3,31],
"classsimdjson_1_1dom_1_1element.html#ab036e52a73d5bd046e1f2650a31dab30":[14,0,0,0,3,31],
-"classsimdjson_1_1dom_1_1element.html#ab4c2e35dc44664eb04038ad35efc64f9":[13,0,0,1,3,16],
"classsimdjson_1_1dom_1_1element.html#ab4c2e35dc44664eb04038ad35efc64f9":[14,0,0,0,3,16],
+"classsimdjson_1_1dom_1_1element.html#ab4c2e35dc44664eb04038ad35efc64f9":[13,0,0,1,3,16],
"classsimdjson_1_1dom_1_1element.html#ac5017726a573f59c3494b92bb66a3beb":[13,0,0,1,3,29],
"classsimdjson_1_1dom_1_1element.html#ac5017726a573f59c3494b92bb66a3beb":[14,0,0,0,3,29],
"classsimdjson_1_1dom_1_1element.html#aca693f57d73a5ce95d1f7bedf67289b7":[14,0,0,0,3,41],
@@ -142,22 +142,22 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1element.html#adadf66ec37675d5f3fac9816a8aacba2":[14,0,0,0,3,24],
"classsimdjson_1_1dom_1_1element.html#ae38f84f4272ae3c32b32dd6d5007ffb9":[14,0,0,0,3,25],
"classsimdjson_1_1dom_1_1element.html#ae38f84f4272ae3c32b32dd6d5007ffb9":[13,0,0,1,3,25],
-"classsimdjson_1_1dom_1_1element.html#ae3c0226046e29cfb0e868c5251a87e53":[13,0,0,1,3,37],
"classsimdjson_1_1dom_1_1element.html#ae3c0226046e29cfb0e868c5251a87e53":[14,0,0,0,3,37],
-"classsimdjson_1_1dom_1_1element.html#ae63f42ca3ef7d7eda92b4366db200782":[13,0,0,1,3,5],
+"classsimdjson_1_1dom_1_1element.html#ae3c0226046e29cfb0e868c5251a87e53":[13,0,0,1,3,37],
"classsimdjson_1_1dom_1_1element.html#ae63f42ca3ef7d7eda92b4366db200782":[14,0,0,0,3,5],
+"classsimdjson_1_1dom_1_1element.html#ae63f42ca3ef7d7eda92b4366db200782":[13,0,0,1,3,5],
"classsimdjson_1_1dom_1_1element.html#ae83652b5016ce4d4ff71f8f9bc05913e":[13,0,0,1,3,17],
"classsimdjson_1_1dom_1_1element.html#ae83652b5016ce4d4ff71f8f9bc05913e":[14,0,0,0,3,17],
"classsimdjson_1_1dom_1_1element.html#aeb155c47ef7bebcad79e1b7449734030":[13,0,0,1,3,2],
"classsimdjson_1_1dom_1_1element.html#aeb155c47ef7bebcad79e1b7449734030":[14,0,0,0,3,2],
-"classsimdjson_1_1dom_1_1element.html#afaaac6e2f58128a01a25b0a5f5abb856":[14,0,0,0,3,21],
"classsimdjson_1_1dom_1_1element.html#afaaac6e2f58128a01a25b0a5f5abb856":[13,0,0,1,3,21],
-"classsimdjson_1_1dom_1_1element.html#afb98fdfcb6ddf19071cd2300613218d3":[13,0,0,1,3,34],
+"classsimdjson_1_1dom_1_1element.html#afaaac6e2f58128a01a25b0a5f5abb856":[14,0,0,0,3,21],
"classsimdjson_1_1dom_1_1element.html#afb98fdfcb6ddf19071cd2300613218d3":[14,0,0,0,3,34],
+"classsimdjson_1_1dom_1_1element.html#afb98fdfcb6ddf19071cd2300613218d3":[13,0,0,1,3,34],
"classsimdjson_1_1dom_1_1element.html#afbe1c01508f1cc39b41b79596cb5717b":[13,0,0,1,3,39],
"classsimdjson_1_1dom_1_1element.html#afbe1c01508f1cc39b41b79596cb5717b":[14,0,0,0,3,39],
-"classsimdjson_1_1dom_1_1element.html#afde562c5aae1b85a03ab6d4b040e7d13":[13,0,0,1,3,22],
"classsimdjson_1_1dom_1_1element.html#afde562c5aae1b85a03ab6d4b040e7d13":[14,0,0,0,3,22],
+"classsimdjson_1_1dom_1_1element.html#afde562c5aae1b85a03ab6d4b040e7d13":[13,0,0,1,3,22],
"classsimdjson_1_1dom_1_1key__value__pair.html":[13,0,0,1,4],
"classsimdjson_1_1dom_1_1key__value__pair.html":[14,0,0,0,4],
"classsimdjson_1_1dom_1_1key__value__pair.html#a58c41d937401cfe88ceb6e71d7dbeb45":[13,0,0,1,4,0],
@@ -166,30 +166,30 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1key__value__pair.html#af7e38d9eb63a40256c9f936e45edf703":[14,0,0,0,4,1],
"classsimdjson_1_1dom_1_1object.html":[13,0,0,1,5],
"classsimdjson_1_1dom_1_1object.html":[14,0,0,0,5],
-"classsimdjson_1_1dom_1_1object.html#a2691ceae488be203aac2d5ef5b67347f":[13,0,0,1,5,11],
"classsimdjson_1_1dom_1_1object.html#a2691ceae488be203aac2d5ef5b67347f":[14,0,0,0,5,11],
-"classsimdjson_1_1dom_1_1object.html#a2a71e54531711fefd97ed972c760c0e8":[13,0,0,1,5,9],
+"classsimdjson_1_1dom_1_1object.html#a2691ceae488be203aac2d5ef5b67347f":[13,0,0,1,5,11],
"classsimdjson_1_1dom_1_1object.html#a2a71e54531711fefd97ed972c760c0e8":[14,0,0,0,5,9],
+"classsimdjson_1_1dom_1_1object.html#a2a71e54531711fefd97ed972c760c0e8":[13,0,0,1,5,9],
"classsimdjson_1_1dom_1_1object.html#a3674739ae68d1e3d7071551a1aad7c4d":[13,0,0,1,5,13],
"classsimdjson_1_1dom_1_1object.html#a3674739ae68d1e3d7071551a1aad7c4d":[14,0,0,0,5,13],
-"classsimdjson_1_1dom_1_1object.html#a4fb3e04e0ea591132da90341bf9ed819":[14,0,0,0,5,2],
"classsimdjson_1_1dom_1_1object.html#a4fb3e04e0ea591132da90341bf9ed819":[13,0,0,1,5,2],
+"classsimdjson_1_1dom_1_1object.html#a4fb3e04e0ea591132da90341bf9ed819":[14,0,0,0,5,2],
"classsimdjson_1_1dom_1_1object.html#a79cf291477bcaa1bf2328411b411587d":[14,0,0,0,5,8],
"classsimdjson_1_1dom_1_1object.html#a79cf291477bcaa1bf2328411b411587d":[13,0,0,1,5,8],
-"classsimdjson_1_1dom_1_1object.html#a80e5180422078f1adadd467508993c41":[13,0,0,1,5,5],
"classsimdjson_1_1dom_1_1object.html#a80e5180422078f1adadd467508993c41":[14,0,0,0,5,5],
-"classsimdjson_1_1dom_1_1object.html#a93ec5c36aae913f266f533b2e02bc873":[14,0,0,0,5,14],
+"classsimdjson_1_1dom_1_1object.html#a80e5180422078f1adadd467508993c41":[13,0,0,1,5,5],
"classsimdjson_1_1dom_1_1object.html#a93ec5c36aae913f266f533b2e02bc873":[13,0,0,1,5,14],
+"classsimdjson_1_1dom_1_1object.html#a93ec5c36aae913f266f533b2e02bc873":[14,0,0,0,5,14],
"classsimdjson_1_1dom_1_1object.html#aa9d243605183d484a797cc06ac32a0ee":[13,0,0,1,5,4],
"classsimdjson_1_1dom_1_1object.html#aa9d243605183d484a797cc06ac32a0ee":[14,0,0,0,5,4],
-"classsimdjson_1_1dom_1_1object.html#ab075da9eb7678f6321cecf4cbd196039":[13,0,0,1,5,3],
"classsimdjson_1_1dom_1_1object.html#ab075da9eb7678f6321cecf4cbd196039":[14,0,0,0,5,3],
+"classsimdjson_1_1dom_1_1object.html#ab075da9eb7678f6321cecf4cbd196039":[13,0,0,1,5,3],
"classsimdjson_1_1dom_1_1object.html#acc66a2f2eb74fbe359d4064531764f50":[14,0,0,0,5,12],
"classsimdjson_1_1dom_1_1object.html#acc66a2f2eb74fbe359d4064531764f50":[13,0,0,1,5,12],
-"classsimdjson_1_1dom_1_1object.html#ace84581be0fee46d5128c49710522aba":[14,0,0,0,5,6],
"classsimdjson_1_1dom_1_1object.html#ace84581be0fee46d5128c49710522aba":[13,0,0,1,5,6],
-"classsimdjson_1_1dom_1_1object.html#ad4fdfb4c4df15af03f44a11201b0545d":[13,0,0,1,5,10],
+"classsimdjson_1_1dom_1_1object.html#ace84581be0fee46d5128c49710522aba":[14,0,0,0,5,6],
"classsimdjson_1_1dom_1_1object.html#ad4fdfb4c4df15af03f44a11201b0545d":[14,0,0,0,5,10],
+"classsimdjson_1_1dom_1_1object.html#ad4fdfb4c4df15af03f44a11201b0545d":[13,0,0,1,5,10],
"classsimdjson_1_1dom_1_1object.html#ae2e1a8cbaab9d352495d1dc993407be3":[13,0,0,1,5,1],
"classsimdjson_1_1dom_1_1object.html#ae2e1a8cbaab9d352495d1dc993407be3":[14,0,0,0,5,1],
"classsimdjson_1_1dom_1_1object.html#afe127a7e9ec8dab9ec76160525a68a83":[13,0,0,1,5,7],
@@ -200,8 +200,8 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a1da5ce328cc2609432be961736c6e810":[14,0,0,0,5,0,5],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a2049ae539dca6999cc33300d212a5014":[14,0,0,0,5,0,9],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a2049ae539dca6999cc33300d212a5014":[13,0,0,1,5,0,9],
-"classsimdjson_1_1dom_1_1object_1_1iterator.html#a4807eeb1ed5f596b587d0b61dfb550e7":[13,0,0,1,5,0,2],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a4807eeb1ed5f596b587d0b61dfb550e7":[14,0,0,0,5,0,2],
+"classsimdjson_1_1dom_1_1object_1_1iterator.html#a4807eeb1ed5f596b587d0b61dfb550e7":[13,0,0,1,5,0,2],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a54a99dcf9c422d5c24f3c570b6d9b6e4":[14,0,0,0,5,0,1],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a54a99dcf9c422d5c24f3c570b6d9b6e4":[13,0,0,1,5,0,1],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a5ad1b60fd5df56d9fdb8bce1e08de88f":[14,0,0,0,5,0,4],
@@ -212,42 +212,42 @@ var NAVTREEINDEX1 =
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a6d335de77b8c5b731566e48f6cacd95d":[13,0,0,1,5,0,3],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a83b3c467632c017400f95ff05d2367b3":[14,0,0,0,5,0,8],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a83b3c467632c017400f95ff05d2367b3":[13,0,0,1,5,0,8],
-"classsimdjson_1_1dom_1_1object_1_1iterator.html#a951609ca7a164b499ff19adbe2de7983":[13,0,0,1,5,0,0],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#a951609ca7a164b499ff19adbe2de7983":[14,0,0,0,5,0,0],
-"classsimdjson_1_1dom_1_1object_1_1iterator.html#aa26738ad08b7de3be4621a75863118ab":[13,0,0,1,5,0,7],
+"classsimdjson_1_1dom_1_1object_1_1iterator.html#a951609ca7a164b499ff19adbe2de7983":[13,0,0,1,5,0,0],
"classsimdjson_1_1dom_1_1object_1_1iterator.html#aa26738ad08b7de3be4621a75863118ab":[14,0,0,0,5,0,7],
+"classsimdjson_1_1dom_1_1object_1_1iterator.html#aa26738ad08b7de3be4621a75863118ab":[13,0,0,1,5,0,7],
"classsimdjson_1_1dom_1_1parser.html":[14,0,0,0,6],
"classsimdjson_1_1dom_1_1parser.html":[13,0,0,1,6],
"classsimdjson_1_1dom_1_1parser.html#a09370efac9e1b7d9b4a8349332e026c3":[14,0,0,0,6,0],
"classsimdjson_1_1dom_1_1parser.html#a09370efac9e1b7d9b4a8349332e026c3":[13,0,0,1,6,0],
-"classsimdjson_1_1dom_1_1parser.html#a16c7d1e28125ef7d5703244483f70984":[14,0,0,0,6,11],
"classsimdjson_1_1dom_1_1parser.html#a16c7d1e28125ef7d5703244483f70984":[13,0,0,1,6,11],
+"classsimdjson_1_1dom_1_1parser.html#a16c7d1e28125ef7d5703244483f70984":[14,0,0,0,6,11],
"classsimdjson_1_1dom_1_1parser.html#a1afc4d3b429363b503a5605d66081e30":[13,0,0,1,6,12],
"classsimdjson_1_1dom_1_1parser.html#a1afc4d3b429363b503a5605d66081e30":[14,0,0,0,6,12],
"classsimdjson_1_1dom_1_1parser.html#a3f3c80565fe63857e2901c48e7bed64d":[14,0,0,0,6,1],
"classsimdjson_1_1dom_1_1parser.html#a3f3c80565fe63857e2901c48e7bed64d":[13,0,0,1,6,1],
-"classsimdjson_1_1dom_1_1parser.html#a5c658556dd9e9396e9ce44ba4b01f2d1":[14,0,0,0,6,13],
"classsimdjson_1_1dom_1_1parser.html#a5c658556dd9e9396e9ce44ba4b01f2d1":[13,0,0,1,6,13],
-"classsimdjson_1_1dom_1_1parser.html#a63fe2363db0d3acf458519698beaacf4":[13,0,0,1,6,15],
+"classsimdjson_1_1dom_1_1parser.html#a5c658556dd9e9396e9ce44ba4b01f2d1":[14,0,0,0,6,13],
"classsimdjson_1_1dom_1_1parser.html#a63fe2363db0d3acf458519698beaacf4":[14,0,0,0,6,15],
+"classsimdjson_1_1dom_1_1parser.html#a63fe2363db0d3acf458519698beaacf4":[13,0,0,1,6,15],
"classsimdjson_1_1dom_1_1parser.html#a6977b4586bc601070cf100e2973a4cbc":[13,0,0,1,6,14],
"classsimdjson_1_1dom_1_1parser.html#a6977b4586bc601070cf100e2973a4cbc":[14,0,0,0,6,14],
"classsimdjson_1_1dom_1_1parser.html#a8bfde4193783adef9c5f12dfc4da3bc0":[13,0,0,1,6,8],
"classsimdjson_1_1dom_1_1parser.html#a8bfde4193783adef9c5f12dfc4da3bc0":[14,0,0,0,6,8],
-"classsimdjson_1_1dom_1_1parser.html#a8d839fa94a8a800814164f225d987d0a":[14,0,0,0,6,7],
"classsimdjson_1_1dom_1_1parser.html#a8d839fa94a8a800814164f225d987d0a":[13,0,0,1,6,7],
-"classsimdjson_1_1dom_1_1parser.html#aa3fc69c5ff15c98e6b1ff9aa4811b040":[13,0,0,1,6,6],
+"classsimdjson_1_1dom_1_1parser.html#a8d839fa94a8a800814164f225d987d0a":[14,0,0,0,6,7],
"classsimdjson_1_1dom_1_1parser.html#aa3fc69c5ff15c98e6b1ff9aa4811b040":[14,0,0,0,6,6],
-"classsimdjson_1_1dom_1_1parser.html#ab090f596cd0b0c1d34576fd6aae88ee5":[13,0,0,1,6,9],
+"classsimdjson_1_1dom_1_1parser.html#aa3fc69c5ff15c98e6b1ff9aa4811b040":[13,0,0,1,6,6],
"classsimdjson_1_1dom_1_1parser.html#ab090f596cd0b0c1d34576fd6aae88ee5":[14,0,0,0,6,9],
+"classsimdjson_1_1dom_1_1parser.html#ab090f596cd0b0c1d34576fd6aae88ee5":[13,0,0,1,6,9],
"classsimdjson_1_1dom_1_1parser.html#ac408e4da66b0ac7cf9734aa4973e0093":[13,0,0,1,6,5],
"classsimdjson_1_1dom_1_1parser.html#ac408e4da66b0ac7cf9734aa4973e0093":[14,0,0,0,6,5],
-"classsimdjson_1_1dom_1_1parser.html#aeb48211f320af02b58dc3d0505059844":[14,0,0,0,6,2],
"classsimdjson_1_1dom_1_1parser.html#aeb48211f320af02b58dc3d0505059844":[13,0,0,1,6,2],
-"classsimdjson_1_1dom_1_1parser.html#aedf495a6e090929be23473e8a29f2fe2":[14,0,0,0,6,4],
+"classsimdjson_1_1dom_1_1parser.html#aeb48211f320af02b58dc3d0505059844":[14,0,0,0,6,2],
"classsimdjson_1_1dom_1_1parser.html#aedf495a6e090929be23473e8a29f2fe2":[13,0,0,1,6,4],
-"classsimdjson_1_1dom_1_1parser.html#af5b61dda345cef1feba7c4529dfe0259":[14,0,0,0,6,10],
+"classsimdjson_1_1dom_1_1parser.html#aedf495a6e090929be23473e8a29f2fe2":[14,0,0,0,6,4],
"classsimdjson_1_1dom_1_1parser.html#af5b61dda345cef1feba7c4529dfe0259":[13,0,0,1,6,10],
+"classsimdjson_1_1dom_1_1parser.html#af5b61dda345cef1feba7c4529dfe0259":[14,0,0,0,6,10],
"classsimdjson_1_1dom_1_1parser.html#af8f49755a335bc269cb02d24badfcdf9":[13,0,0,1,6,3],
"classsimdjson_1_1dom_1_1parser.html#af8f49755a335bc269cb02d24badfcdf9":[14,0,0,0,6,3]
};
diff --git a/navtreeindex2.js b/navtreeindex2.js
index c366649d4..641b25409 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -1,31 +1,31 @@
var NAVTREEINDEX2 =
{
-"classsimdjson_1_1implementation.html":[13,0,0,10],
"classsimdjson_1_1implementation.html":[14,0,0,3],
+"classsimdjson_1_1implementation.html":[13,0,0,10],
"classsimdjson_1_1implementation.html#aa1d1e04f5471283ab9b2071ea36adf00":[14,0,0,3,1],
"classsimdjson_1_1implementation.html#aa1d1e04f5471283ab9b2071ea36adf00":[13,0,0,10,1],
-"classsimdjson_1_1implementation.html#aa3a7b818d56a54cca272191ec176f8f1":[13,0,0,10,3],
"classsimdjson_1_1implementation.html#aa3a7b818d56a54cca272191ec176f8f1":[14,0,0,3,3],
-"classsimdjson_1_1implementation.html#ab170b9fed9cab0daaff878472f339c40":[13,0,0,10,0],
+"classsimdjson_1_1implementation.html#aa3a7b818d56a54cca272191ec176f8f1":[13,0,0,10,3],
"classsimdjson_1_1implementation.html#ab170b9fed9cab0daaff878472f339c40":[14,0,0,3,0],
+"classsimdjson_1_1implementation.html#ab170b9fed9cab0daaff878472f339c40":[13,0,0,10,0],
"classsimdjson_1_1implementation.html#adf77c9bc0869eff8fd46e942c4532135":[13,0,0,10,2],
"classsimdjson_1_1implementation.html#adf77c9bc0869eff8fd46e942c4532135":[14,0,0,3,2],
-"classsimdjson_1_1padded__string__view.html":[14,0,0,5],
"classsimdjson_1_1padded__string__view.html":[13,0,0,12],
+"classsimdjson_1_1padded__string__view.html":[14,0,0,5],
"classsimdjson_1_1padded__string__view.html#a12b33830793e7ab1953b961088a83c3d":[14,0,0,5,4],
"classsimdjson_1_1padded__string__view.html#a12b33830793e7ab1953b961088a83c3d":[13,0,0,12,4],
"classsimdjson_1_1padded__string__view.html#a184b54acd28046a9c4f2a6cfa5419779":[14,0,0,5,2],
"classsimdjson_1_1padded__string__view.html#a184b54acd28046a9c4f2a6cfa5419779":[13,0,0,12,2],
-"classsimdjson_1_1padded__string__view.html#a47ac0063f7dd0ffd832c5e4439f2de30":[13,0,0,12,1],
"classsimdjson_1_1padded__string__view.html#a47ac0063f7dd0ffd832c5e4439f2de30":[14,0,0,5,1],
+"classsimdjson_1_1padded__string__view.html#a47ac0063f7dd0ffd832c5e4439f2de30":[13,0,0,12,1],
"classsimdjson_1_1padded__string__view.html#a572beea549bf5a58d62ffe4e768c1e82":[14,0,0,5,8],
"classsimdjson_1_1padded__string__view.html#a572beea549bf5a58d62ffe4e768c1e82":[13,0,0,12,8],
-"classsimdjson_1_1padded__string__view.html#a934e7272d22d6024383eafe07b06773c":[13,0,0,12,7],
"classsimdjson_1_1padded__string__view.html#a934e7272d22d6024383eafe07b06773c":[14,0,0,5,7],
+"classsimdjson_1_1padded__string__view.html#a934e7272d22d6024383eafe07b06773c":[13,0,0,12,7],
"classsimdjson_1_1padded__string__view.html#a9d98e1984b893116d8bb7123d84d75b8":[13,0,0,12,5],
"classsimdjson_1_1padded__string__view.html#a9d98e1984b893116d8bb7123d84d75b8":[14,0,0,5,5],
-"classsimdjson_1_1padded__string__view.html#aa338ad56304bc79e6ca1fab64af41de0":[13,0,0,12,0],
"classsimdjson_1_1padded__string__view.html#aa338ad56304bc79e6ca1fab64af41de0":[14,0,0,5,0],
+"classsimdjson_1_1padded__string__view.html#aa338ad56304bc79e6ca1fab64af41de0":[13,0,0,12,0],
"classsimdjson_1_1padded__string__view.html#aae57856a217294ac218b6372a5e37d9a":[14,0,0,5,3],
"classsimdjson_1_1padded__string__view.html#aae57856a217294ac218b6372a5e37d9a":[13,0,0,12,3],
"classsimdjson_1_1padded__string__view.html#ae4aff182e0ed84ed5056c2d634ff134a":[14,0,0,5,6],
diff --git a/navtreeindex3.js b/navtreeindex3.js
index 979be1d50..1f23c0948 100644
--- a/navtreeindex3.js
+++ b/navtreeindex3.js
@@ -53,120 +53,121 @@ var NAVTREEINDEX3 =
"md_doc_2compile__time.html#autotoc_md55":[2,1],
"md_doc_2compile__time.html#autotoc_md56":[2,2],
"md_doc_2compile__time.html#autotoc_md57":[2,3],
+"md_doc_2compile__time.html#autotoc_md58":[2,4],
"md_doc_2compile__time__accessors.html":[3],
-"md_doc_2compile__time__accessors.html#autotoc_md59":[3,0],
-"md_doc_2compile__time__accessors.html#autotoc_md60":[3,1],
-"md_doc_2compile__time__accessors.html#autotoc_md61":[3,2],
-"md_doc_2compile__time__accessors.html#autotoc_md62":[3,3],
-"md_doc_2compile__time__accessors.html#autotoc_md63":[3,3,0],
-"md_doc_2compile__time__accessors.html#autotoc_md64":[3,3,1],
-"md_doc_2compile__time__accessors.html#autotoc_md65":[3,4],
-"md_doc_2compile__time__accessors.html#autotoc_md66":[3,4,0],
-"md_doc_2compile__time__accessors.html#autotoc_md67":[3,4,1],
-"md_doc_2compile__time__accessors.html#autotoc_md68":[3,5],
-"md_doc_2compile__time__accessors.html#autotoc_md69":[3,5,0],
-"md_doc_2compile__time__accessors.html#autotoc_md70":[3,5,1],
-"md_doc_2compile__time__accessors.html#autotoc_md71":[3,6],
-"md_doc_2compile__time__accessors.html#autotoc_md72":[3,6,0],
-"md_doc_2compile__time__accessors.html#autotoc_md73":[3,6,1],
-"md_doc_2compile__time__accessors.html#autotoc_md74":[3,6,2],
-"md_doc_2compile__time__accessors.html#autotoc_md75":[3,7],
-"md_doc_2compile__time__accessors.html#autotoc_md76":[3,7,0],
-"md_doc_2compile__time__accessors.html#autotoc_md77":[3,7,1],
-"md_doc_2compile__time__accessors.html#autotoc_md78":[3,7,2],
-"md_doc_2compile__time__accessors.html#autotoc_md79":[3,8],
-"md_doc_2compile__time__accessors.html#autotoc_md80":[3,9],
-"md_doc_2compile__time__accessors.html#autotoc_md81":[3,10],
-"md_doc_2compile__time__accessors.html#autotoc_md82":[3,11],
-"md_doc_2compile__time__accessors.html#autotoc_md83":[3,12],
+"md_doc_2compile__time__accessors.html#autotoc_md60":[3,0],
+"md_doc_2compile__time__accessors.html#autotoc_md61":[3,1],
+"md_doc_2compile__time__accessors.html#autotoc_md62":[3,2],
+"md_doc_2compile__time__accessors.html#autotoc_md63":[3,3],
+"md_doc_2compile__time__accessors.html#autotoc_md64":[3,3,0],
+"md_doc_2compile__time__accessors.html#autotoc_md65":[3,3,1],
+"md_doc_2compile__time__accessors.html#autotoc_md66":[3,4],
+"md_doc_2compile__time__accessors.html#autotoc_md67":[3,4,0],
+"md_doc_2compile__time__accessors.html#autotoc_md68":[3,4,1],
+"md_doc_2compile__time__accessors.html#autotoc_md69":[3,5],
+"md_doc_2compile__time__accessors.html#autotoc_md70":[3,5,0],
+"md_doc_2compile__time__accessors.html#autotoc_md71":[3,5,1],
+"md_doc_2compile__time__accessors.html#autotoc_md72":[3,6],
+"md_doc_2compile__time__accessors.html#autotoc_md73":[3,6,0],
+"md_doc_2compile__time__accessors.html#autotoc_md74":[3,6,1],
+"md_doc_2compile__time__accessors.html#autotoc_md75":[3,6,2],
+"md_doc_2compile__time__accessors.html#autotoc_md76":[3,7],
+"md_doc_2compile__time__accessors.html#autotoc_md77":[3,7,0],
+"md_doc_2compile__time__accessors.html#autotoc_md78":[3,7,1],
+"md_doc_2compile__time__accessors.html#autotoc_md79":[3,7,2],
+"md_doc_2compile__time__accessors.html#autotoc_md80":[3,8],
+"md_doc_2compile__time__accessors.html#autotoc_md81":[3,9],
+"md_doc_2compile__time__accessors.html#autotoc_md82":[3,10],
+"md_doc_2compile__time__accessors.html#autotoc_md83":[3,11],
+"md_doc_2compile__time__accessors.html#autotoc_md84":[3,12],
"md_doc_2dom.html":[4],
-"md_doc_2dom.html#autotoc_md100":[4,12],
-"md_doc_2dom.html#autotoc_md101":[4,13],
-"md_doc_2dom.html#autotoc_md102":[4,14],
-"md_doc_2dom.html#autotoc_md84":[4,0],
-"md_doc_2dom.html#autotoc_md85":[4,1],
-"md_doc_2dom.html#autotoc_md86":[4,2],
-"md_doc_2dom.html#autotoc_md87":[4,2,0],
-"md_doc_2dom.html#autotoc_md88":[4,3],
-"md_doc_2dom.html#autotoc_md89":[4,4],
-"md_doc_2dom.html#autotoc_md90":[4,5],
-"md_doc_2dom.html#autotoc_md91":[4,6],
-"md_doc_2dom.html#autotoc_md92":[4,7],
-"md_doc_2dom.html#autotoc_md93":[4,7,0],
-"md_doc_2dom.html#autotoc_md94":[4,8],
-"md_doc_2dom.html#autotoc_md95":[4,8,0],
-"md_doc_2dom.html#autotoc_md96":[4,8,1],
-"md_doc_2dom.html#autotoc_md97":[4,9],
-"md_doc_2dom.html#autotoc_md98":[4,10],
-"md_doc_2dom.html#autotoc_md99":[4,11],
+"md_doc_2dom.html#autotoc_md100":[4,11],
+"md_doc_2dom.html#autotoc_md101":[4,12],
+"md_doc_2dom.html#autotoc_md102":[4,13],
+"md_doc_2dom.html#autotoc_md103":[4,14],
+"md_doc_2dom.html#autotoc_md85":[4,0],
+"md_doc_2dom.html#autotoc_md86":[4,1],
+"md_doc_2dom.html#autotoc_md87":[4,2],
+"md_doc_2dom.html#autotoc_md88":[4,2,0],
+"md_doc_2dom.html#autotoc_md89":[4,3],
+"md_doc_2dom.html#autotoc_md90":[4,4],
+"md_doc_2dom.html#autotoc_md91":[4,5],
+"md_doc_2dom.html#autotoc_md92":[4,6],
+"md_doc_2dom.html#autotoc_md93":[4,7],
+"md_doc_2dom.html#autotoc_md94":[4,7,0],
+"md_doc_2dom.html#autotoc_md95":[4,8],
+"md_doc_2dom.html#autotoc_md96":[4,8,0],
+"md_doc_2dom.html#autotoc_md97":[4,8,1],
+"md_doc_2dom.html#autotoc_md98":[4,9],
+"md_doc_2dom.html#autotoc_md99":[4,10],
"md_doc_2implementation-selection.html":[5],
-"md_doc_2implementation-selection.html#autotoc_md103":[5,0],
-"md_doc_2implementation-selection.html#autotoc_md104":[5,1],
-"md_doc_2implementation-selection.html#autotoc_md105":[5,2],
-"md_doc_2implementation-selection.html#autotoc_md106":[5,3],
-"md_doc_2implementation-selection.html#autotoc_md107":[5,4],
-"md_doc_2implementation-selection.html#autotoc_md108":[5,5],
+"md_doc_2implementation-selection.html#autotoc_md104":[5,0],
+"md_doc_2implementation-selection.html#autotoc_md105":[5,1],
+"md_doc_2implementation-selection.html#autotoc_md106":[5,2],
+"md_doc_2implementation-selection.html#autotoc_md107":[5,3],
+"md_doc_2implementation-selection.html#autotoc_md108":[5,4],
+"md_doc_2implementation-selection.html#autotoc_md109":[5,5],
"md_doc_2iterate__many.html":[6],
-"md_doc_2iterate__many.html#autotoc_md109":[6,0],
-"md_doc_2iterate__many.html#autotoc_md110":[6,1],
-"md_doc_2iterate__many.html#autotoc_md111":[6,2],
-"md_doc_2iterate__many.html#autotoc_md112":[6,2,0],
-"md_doc_2iterate__many.html#autotoc_md113":[6,2,1],
-"md_doc_2iterate__many.html#autotoc_md114":[6,2,2],
-"md_doc_2iterate__many.html#autotoc_md115":[6,3],
-"md_doc_2iterate__many.html#autotoc_md116":[6,4],
-"md_doc_2iterate__many.html#autotoc_md117":[6,5],
-"md_doc_2iterate__many.html#autotoc_md118":[6,6],
-"md_doc_2iterate__many.html#autotoc_md119":[6,7],
-"md_doc_2iterate__many.html#autotoc_md120":[6,8],
-"md_doc_2iterate__many.html#autotoc_md121":[6,9],
+"md_doc_2iterate__many.html#autotoc_md110":[6,0],
+"md_doc_2iterate__many.html#autotoc_md111":[6,1],
+"md_doc_2iterate__many.html#autotoc_md112":[6,2],
+"md_doc_2iterate__many.html#autotoc_md113":[6,2,0],
+"md_doc_2iterate__many.html#autotoc_md114":[6,2,1],
+"md_doc_2iterate__many.html#autotoc_md115":[6,2,2],
+"md_doc_2iterate__many.html#autotoc_md116":[6,3],
+"md_doc_2iterate__many.html#autotoc_md117":[6,4],
+"md_doc_2iterate__many.html#autotoc_md118":[6,5],
+"md_doc_2iterate__many.html#autotoc_md119":[6,6],
+"md_doc_2iterate__many.html#autotoc_md120":[6,7],
+"md_doc_2iterate__many.html#autotoc_md121":[6,8],
+"md_doc_2iterate__many.html#autotoc_md122":[6,9],
"md_doc_2ondemand__design.html":[7],
-"md_doc_2ondemand__design.html#autotoc_md122":[0],
-"md_doc_2ondemand__design.html#autotoc_md123":[1],
-"md_doc_2ondemand__design.html#autotoc_md124":[2],
-"md_doc_2ondemand__design.html#autotoc_md125":[3],
-"md_doc_2ondemand__design.html#autotoc_md126":[7,0],
-"md_doc_2ondemand__design.html#autotoc_md127":[7,0,4],
-"md_doc_2ondemand__design.html#autotoc_md128":[7,1],
-"md_doc_2ondemand__design.html#autotoc_md129":[7,1,0],
-"md_doc_2ondemand__design.html#autotoc_md130":[7,1,1],
-"md_doc_2ondemand__design.html#autotoc_md131":[7,1,2],
-"md_doc_2ondemand__design.html#autotoc_md132":[7,1,3],
-"md_doc_2ondemand__design.html#autotoc_md133":[7,1,4],
-"md_doc_2ondemand__design.html#autotoc_md134":[7,2],
+"md_doc_2ondemand__design.html#autotoc_md123":[0],
+"md_doc_2ondemand__design.html#autotoc_md124":[1],
+"md_doc_2ondemand__design.html#autotoc_md125":[2],
+"md_doc_2ondemand__design.html#autotoc_md126":[3],
+"md_doc_2ondemand__design.html#autotoc_md127":[7,0],
+"md_doc_2ondemand__design.html#autotoc_md128":[7,0,4],
+"md_doc_2ondemand__design.html#autotoc_md129":[7,1],
+"md_doc_2ondemand__design.html#autotoc_md130":[7,1,0],
+"md_doc_2ondemand__design.html#autotoc_md131":[7,1,1],
+"md_doc_2ondemand__design.html#autotoc_md132":[7,1,2],
+"md_doc_2ondemand__design.html#autotoc_md133":[7,1,3],
+"md_doc_2ondemand__design.html#autotoc_md134":[7,1,4],
+"md_doc_2ondemand__design.html#autotoc_md135":[7,2],
"md_doc_2parse__many.html":[8],
-"md_doc_2parse__many.html#autotoc_md135":[8,0],
-"md_doc_2parse__many.html#autotoc_md136":[8,1],
-"md_doc_2parse__many.html#autotoc_md137":[8,2],
-"md_doc_2parse__many.html#autotoc_md138":[8,3],
-"md_doc_2parse__many.html#autotoc_md139":[8,3,0],
-"md_doc_2parse__many.html#autotoc_md140":[8,3,1],
-"md_doc_2parse__many.html#autotoc_md141":[8,3,2],
-"md_doc_2parse__many.html#autotoc_md142":[8,4],
-"md_doc_2parse__many.html#autotoc_md143":[8,5],
-"md_doc_2parse__many.html#autotoc_md144":[8,6],
-"md_doc_2parse__many.html#autotoc_md145":[8,7],
-"md_doc_2parse__many.html#autotoc_md146":[8,8],
+"md_doc_2parse__many.html#autotoc_md136":[8,0],
+"md_doc_2parse__many.html#autotoc_md137":[8,1],
+"md_doc_2parse__many.html#autotoc_md138":[8,2],
+"md_doc_2parse__many.html#autotoc_md139":[8,3],
+"md_doc_2parse__many.html#autotoc_md140":[8,3,0],
+"md_doc_2parse__many.html#autotoc_md141":[8,3,1],
+"md_doc_2parse__many.html#autotoc_md142":[8,3,2],
+"md_doc_2parse__many.html#autotoc_md143":[8,4],
+"md_doc_2parse__many.html#autotoc_md144":[8,5],
+"md_doc_2parse__many.html#autotoc_md145":[8,6],
+"md_doc_2parse__many.html#autotoc_md146":[8,7],
+"md_doc_2parse__many.html#autotoc_md147":[8,8],
"md_doc_2performance.html":[9],
-"md_doc_2performance.html#autotoc_md147":[9,0],
-"md_doc_2performance.html#autotoc_md148":[9,1],
-"md_doc_2performance.html#autotoc_md149":[9,2],
-"md_doc_2performance.html#autotoc_md150":[9,3],
-"md_doc_2performance.html#autotoc_md151":[9,4],
-"md_doc_2performance.html#autotoc_md152":[9,5],
-"md_doc_2performance.html#autotoc_md153":[9,6],
-"md_doc_2performance.html#autotoc_md154":[9,7],
-"md_doc_2performance.html#autotoc_md155":[9,8],
+"md_doc_2performance.html#autotoc_md148":[9,0],
+"md_doc_2performance.html#autotoc_md149":[9,1],
+"md_doc_2performance.html#autotoc_md150":[9,2],
+"md_doc_2performance.html#autotoc_md151":[9,3],
+"md_doc_2performance.html#autotoc_md152":[9,4],
+"md_doc_2performance.html#autotoc_md153":[9,5],
+"md_doc_2performance.html#autotoc_md154":[9,6],
+"md_doc_2performance.html#autotoc_md155":[9,7],
+"md_doc_2performance.html#autotoc_md156":[9,8],
"md_doc_2tape.html":[10],
-"md_doc_2tape.html#autotoc_md157":[10,0],
-"md_doc_2tape.html#autotoc_md158":[10,0,0],
-"md_doc_2tape.html#autotoc_md159":[10,1],
-"md_doc_2tape.html#autotoc_md160":[10,2],
-"md_doc_2tape.html#autotoc_md161":[10,3],
-"md_doc_2tape.html#autotoc_md162":[10,4],
-"md_doc_2tape.html#autotoc_md163":[10,5],
-"md_doc_2tape.html#autotoc_md164":[10,6],
-"md_doc_2tape.html#autotoc_md165":[10,7],
+"md_doc_2tape.html#autotoc_md158":[10,0],
+"md_doc_2tape.html#autotoc_md159":[10,0,0],
+"md_doc_2tape.html#autotoc_md160":[10,1],
+"md_doc_2tape.html#autotoc_md161":[10,2],
+"md_doc_2tape.html#autotoc_md162":[10,3],
+"md_doc_2tape.html#autotoc_md163":[10,4],
+"md_doc_2tape.html#autotoc_md164":[10,5],
+"md_doc_2tape.html#autotoc_md165":[10,6],
+"md_doc_2tape.html#autotoc_md166":[10,7],
"minify_8h_source.html":[15,0,0,0,36],
"namespacemembers.html":[13,1,0],
"namespacemembers_enum.html":[13,1,4],
@@ -248,6 +249,5 @@ var NAVTREEINDEX3 =
"namespacesimdjson_1_1dom.html":[13,0,0,1],
"namespacesimdjson_1_1dom.html#a1c26d3ab6fcbbb3ecb69add4236f0a4d":[13,0,0,1,10],
"namespacesimdjson_1_1dom.html#a34e6f2a4920f4dcb683f5730f8d8601b":[13,0,0,1,8],
-"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3a":[13,0,0,1,7],
-"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3aa4e866b275c85fbb439f6484251cfb31c":[13,0,0,1,7,2]
+"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3a":[13,0,0,1,7]
};
diff --git a/navtreeindex4.js b/navtreeindex4.js
index 35824b965..616689038 100644
--- a/navtreeindex4.js
+++ b/navtreeindex4.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX4 =
{
+"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3aa4e866b275c85fbb439f6484251cfb31c":[13,0,0,1,7,2],
"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3aa63b588d5559f64f89a416e656880b949":[13,0,0,1,7,5],
"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3aa6de7acf711860176ba606e9aa2b85d5f":[13,0,0,1,7,3],
"namespacesimdjson_1_1dom.html#a6e1dee3a823ecfee91086d3478bbab3aa8eee8e217391199668cbac89472ace53":[13,0,0,1,7,1],
diff --git a/numberparsing_8h_source.html b/numberparsing_8h_source.html
index f27203835..9b11c5bd6 100644
--- a/numberparsing_8h_source.html
+++ b/numberparsing_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/numberparsing__tables_8h_source.html b/numberparsing__tables_8h_source.html
index 19c41ccc7..5f221b3ad 100644
--- a/numberparsing__tables_8h_source.html
+++ b/numberparsing__tables_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/object__iterator-inl_8h_source.html b/object__iterator-inl_8h_source.html
index 1a617910a..acecdb558 100644
--- a/object__iterator-inl_8h_source.html
+++ b/object__iterator-inl_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/object__iterator_8h_source.html b/object__iterator_8h_source.html
index 3704f9b5e..da33b4d52 100644
--- a/object__iterator_8h_source.html
+++ b/object__iterator_8h_source.html
@@ -29,7 +29,7 @@

-
@@ -179,7 +179,7 @@ $(document).ready(function(){initNavTree('object__iterator_8h_source.html','');

-
diff --git a/ondemand_2dependencies_8h_source.html b/ondemand_2dependencies_8h_source.html
index 1024f3403..0184b3821 100644
--- a/ondemand_2dependencies_8h_source.html
+++ b/ondemand_2dependencies_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ondemand_8h_source.html b/ondemand_8h_source.html
index 3f1c52c4a..37558a6c2 100644
--- a/ondemand_8h_source.html
+++ b/ondemand_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/padded__string-inl_8h_source.html b/padded__string-inl_8h_source.html
index d9ec4901e..16898b228 100644
--- a/padded__string-inl_8h_source.html
+++ b/padded__string-inl_8h_source.html
@@ -29,7 +29,7 @@

-
@@ -112,223 +112,280 @@ $(document).ready(function(){initNavTree('padded__string-inl_8h_source.html','')
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-

-
@@ -150,56 +150,60 @@ $(document).ready(function(){initNavTree('padded__string_8h_source.html',''); in
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-

-
@@ -231,7 +231,7 @@ $(document).ready(function(){initNavTree('padded__string__view-inl_8h_source.htm

-
@@ -163,7 +163,7 @@ $(document).ready(function(){initNavTree('padded__string__view_8h_source.html','

-
diff --git a/portability_8h_source.html b/portability_8h_source.html
index 4e5cef334..83d54616a 100644
--- a/portability_8h_source.html
+++ b/portability_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2base_8h_source.html b/ppc64_2base_8h_source.html
index 98c00cf54..4565a0168 100644
--- a/ppc64_2base_8h_source.html
+++ b/ppc64_2base_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2begin_8h_source.html b/ppc64_2begin_8h_source.html
index 72b9d56f6..a6f1f9b42 100644
--- a/ppc64_2begin_8h_source.html
+++ b/ppc64_2begin_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2bitmanipulation_8h_source.html b/ppc64_2bitmanipulation_8h_source.html
index 2a3e184bd..29cec0eb4 100644
--- a/ppc64_2bitmanipulation_8h_source.html
+++ b/ppc64_2bitmanipulation_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2bitmask_8h_source.html b/ppc64_2bitmask_8h_source.html
index 14e05154a..d86bae7c1 100644
--- a/ppc64_2bitmask_8h_source.html
+++ b/ppc64_2bitmask_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2end_8h_source.html b/ppc64_2end_8h_source.html
index dd62b2f37..b04157a5a 100644
--- a/ppc64_2end_8h_source.html
+++ b/ppc64_2end_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2implementation_8h_source.html b/ppc64_2implementation_8h_source.html
index 410fa4ea9..d14825b01 100644
--- a/ppc64_2implementation_8h_source.html
+++ b/ppc64_2implementation_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2intrinsics_8h_source.html b/ppc64_2intrinsics_8h_source.html
index d56296a25..96cf6dc8e 100644
--- a/ppc64_2intrinsics_8h_source.html
+++ b/ppc64_2intrinsics_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2numberparsing__defs_8h_source.html b/ppc64_2numberparsing__defs_8h_source.html
index 968d8c540..943620779 100644
--- a/ppc64_2numberparsing__defs_8h_source.html
+++ b/ppc64_2numberparsing__defs_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2ondemand_8h_source.html b/ppc64_2ondemand_8h_source.html
index f879c4ec6..84502ed0f 100644
--- a/ppc64_2ondemand_8h_source.html
+++ b/ppc64_2ondemand_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2simd_8h_source.html b/ppc64_2simd_8h_source.html
index 3d4afe84e..b46f48b7a 100644
--- a/ppc64_2simd_8h_source.html
+++ b/ppc64_2simd_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_2stringparsing__defs_8h_source.html b/ppc64_2stringparsing__defs_8h_source.html
index 4867e6f5d..2d8a0056d 100644
--- a/ppc64_2stringparsing__defs_8h_source.html
+++ b/ppc64_2stringparsing__defs_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/ppc64_8h_source.html b/ppc64_8h_source.html
index fb893d0a7..cf78abdbc 100644
--- a/ppc64_8h_source.html
+++ b/ppc64_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/raw__json__string-inl_8h_source.html b/raw__json__string-inl_8h_source.html
index 22aa7586a..08f37082b 100644
--- a/raw__json__string-inl_8h_source.html
+++ b/raw__json__string-inl_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/raw__json__string_8h_source.html b/raw__json__string_8h_source.html
index af59d16c5..1ec3642a6 100644
--- a/raw__json__string_8h_source.html
+++ b/raw__json__string_8h_source.html
@@ -29,7 +29,7 @@

-
@@ -193,7 +193,7 @@ $(document).ready(function(){initNavTree('raw__json__string_8h_source.html','');

-
diff --git a/simdjson_8h_source.html b/simdjson_8h_source.html
index d66733da8..f441fb69b 100644
--- a/simdjson_8h_source.html
+++ b/simdjson_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/simdjson__version_8h_source.html b/simdjson__version_8h_source.html
index 56559bc17..7e6539ae0 100644
--- a/simdjson__version_8h_source.html
+++ b/simdjson__version_8h_source.html
@@ -29,7 +29,7 @@

-
@@ -107,13 +107,13 @@ $(document).ready(function(){initNavTree('simdjson__version_8h_source.html','');
-
+
-
+

-
diff --git a/std__deserialize_8h_source.html b/std__deserialize_8h_source.html
index 564405cce..69a580c62 100644
--- a/std__deserialize_8h_source.html
+++ b/std__deserialize_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/string__view_8hpp_source.html b/string__view_8hpp_source.html
index 3bd2aaef5..a23884bc9 100644
--- a/string__view_8hpp_source.html
+++ b/string__view_8hpp_source.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base-members.html b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base-members.html
index 0d03b289c..7e98f6843 100644
--- a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base-members.html
+++ b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base-members.html
@@ -29,7 +29,7 @@

-
@@ -101,23 +101,25 @@ $(document).ready(function(){initNavTree('structsimdjson_1_1_s_i_m_d_j_s_o_n___i
- error() const noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- first simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T > protected
- get(T &value) &&noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- has_value() const noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- implementation_simdjson_result_base() noexcept=default simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- implementation_simdjson_result_base(error_code error) noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- implementation_simdjson_result_base(T &&value) noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- implementation_simdjson_result_base(T &&value, error_code error) noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- operator T&&() &&noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- operator*() &noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- operator*() &&noexcept(false) (defined in simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- operator->() noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- operator->() const noexcept(false) (defined in simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- second simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T > protected
- take_value() &&noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- tie(T &value, error_code &error) &&noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
- value() &noexcept(false) (defined in simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ value() &&noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ error_type typedef (defined in simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ first simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T > protected
+ get(T &value) &&noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ has_value() const noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ implementation_simdjson_result_base() noexcept=default simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ implementation_simdjson_result_base(error_code error) noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ implementation_simdjson_result_base(T &&value) noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ implementation_simdjson_result_base(T &&value, error_code error) noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ operator T&&() &&noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ operator*() &noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ operator*() &&noexcept(false) (defined in simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ operator->() noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ operator->() const noexcept(false) (defined in simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ second simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T > protected
+ take_value() &&noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ tie(T &value, error_code &error) &&noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ value() &noexcept(false) (defined in simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
+ value() &&noexcept(false) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T > value_type typedef (defined in simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >) simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T > value_unsafe() const &noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T > value_unsafe() &noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >
diff --git a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base.html b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base.html
index d283189a7..00819d428 100644
--- a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base.html
+++ b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1implementation__simdjson__result__base.html
@@ -29,7 +29,7 @@
value_unsafe() &&noexcept simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >

-
@@ -95,6 +95,7 @@ $(document).ready(function(){initNavTree('structsimdjson_1_1_s_i_m_d_j_s_o_n___i
#include <implementation_simdjson_result_base.h>
+
+
+Public Types
+using value_type = T
+
+using error_type = error_code
+
Public Member Functions
@@ -184,7 +192,44 @@ struct simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base<
Constructor & Destructor Documentation
+Member Typedef Documentation
+
+◆ error_type
+
+
+
+
+
+ using simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >::error_type = error_code
+ ◆ value_type
+
+
+
+
+
+ using simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< T >::value_type = T
+ Constructor & Destructor Documentation
◆ implementation_simdjson_result_base() [1/3]
@@ -770,7 +815,7 @@ template<typename T >

-
diff --git a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html
index 44f23da9d..c1ae5f519 100644
--- a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html
+++ b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1number.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1open__container-members.html b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1open__container-members.html
index b82e27ae2..e743b4b4d 100644
--- a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1open__container-members.html
+++ b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1open__container-members.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1open__container.html b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1open__container.html
index 57f1f6cde..575066e5a 100644
--- a/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1open__container.html
+++ b/structsimdjson_1_1_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1open__container.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1has__custom__serialization.html b/structsimdjson_1_1has__custom__serialization.html
index cffcd5f74..205465959 100644
--- a/structsimdjson_1_1has__custom__serialization.html
+++ b/structsimdjson_1_1has__custom__serialization.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1padded__string-members.html b/structsimdjson_1_1padded__string-members.html
index 2123db90c..a4dde4375 100644
--- a/structsimdjson_1_1padded__string-members.html
+++ b/structsimdjson_1_1padded__string-members.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1padded__string.html b/structsimdjson_1_1padded__string.html
index 18fb40b02..cbbd3610d 100644
--- a/structsimdjson_1_1padded__string.html
+++ b/structsimdjson_1_1padded__string.html
@@ -29,7 +29,7 @@
-
-
@@ -198,7 +198,7 @@ Static Public Member Functions
+
Windows and Unicode
@@ -510,7 +510,7 @@ Windows and Unicode
-

-
diff --git a/structsimdjson_1_1simdjson__error.html b/structsimdjson_1_1simdjson__error.html
index 3e8dd5918..fe852f3cc 100644
--- a/structsimdjson_1_1simdjson__error.html
+++ b/structsimdjson_1_1simdjson__error.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result-members.html b/structsimdjson_1_1simdjson__result-members.html
index b1104bfd0..db240d42c 100644
--- a/structsimdjson_1_1simdjson__result-members.html
+++ b/structsimdjson_1_1simdjson__result-members.html
@@ -29,7 +29,7 @@

-
@@ -101,13 +101,15 @@ $(document).ready(function(){initNavTree('structsimdjson_1_1simdjson__result.htm

-
@@ -95,6 +95,7 @@ $(document).ready(function(){initNavTree('structsimdjson_1_1simdjson__result.htm
+
+
+Public Types
+using value_type = T
+
+using error_type = error_code
+
Public Member Functions
@@ -147,8 +155,45 @@ Public Member Functions
struct simdjson::simdjson_result< T >simdjson_inline void tie (T &value, error_code &error) &&noexcept Member Function Documentation
+Member Typedef Documentation
+
+◆ error_type
+
+
+
+
+
+ using simdjson::simdjson_result< T >::error_type = error_code
+ ◆ value_type
+
+
+
+
+
+ using simdjson::simdjson_result< T >::value_type = T
+ Member Function Documentation
◆ error()
@@ -216,7 +261,7 @@ template<typename U = T>
-

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondeman73f6105c02baf0bea5c887e614f5b224.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondeman73f6105c02baf0bea5c887e614f5b224.html
index 46f8f49ae..d6fdf4de4 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondeman73f6105c02baf0bea5c887e614f5b224.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondeman73f6105c02baf0bea5c887e614f5b224.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondeman8d5f87b59eed7747952fa5b22ffa7abe.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondeman8d5f87b59eed7747952fa5b22ffa7abe.html
index a0c9d394f..86f6118d8 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondeman8d5f87b59eed7747952fa5b22ffa7abe.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondeman8d5f87b59eed7747952fa5b22ffa7abe.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemanc727a1699918daa2a31e62be31f36420.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemanc727a1699918daa2a31e62be31f36420.html
index 5a495f87c..d89f893f3 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemanc727a1699918daa2a31e62be31f36420.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemanc727a1699918daa2a31e62be31f36420.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1array_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1array_01_4-members.html
index 790e483db..dde54cb9d 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1array_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1array_01_4-members.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1array_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1array_01_4.html
index 1598dd258..772b114a8 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1array_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1array_01_4.html
@@ -29,7 +29,7 @@

-
@@ -192,6 +192,11 @@ simdjson_inline implementa
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::array >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::array
+
+using error_type = error_code
Protected Attributes inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::array >SIMDJSON_IMPLEMENTATION::ondemand::array first
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html
index ee9ec2301..e646c791f 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1document__reference_01_4.html
@@ -29,7 +29,7 @@
users should never directly access first and second.

-
@@ -306,6 +306,11 @@ simdjson_inline implementa
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::document_reference >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::document_reference
+
+using error_type = error_code
Protected Attributes inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::document_reference >SIMDJSON_IMPLEMENTATION::ondemand::document_reference first
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field_01_4-members.html
index 864df299a..6bf5396b0 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field_01_4-members.html
@@ -29,7 +29,7 @@
users should never directly access first and second.

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field_01_4.html
index 5ff35f431..21e0d6680 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1field_01_4.html
@@ -29,7 +29,7 @@

-
@@ -188,6 +188,11 @@ simdjson_inline implementa
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::field >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::field
+
+using error_type = error_code
Protected Attributes inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::field >SIMDJSON_IMPLEMENTATION::ondemand::field first
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__iterator_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__iterator_01_4.html
index 19af0a5ee..3e2d68a7a 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__iterator_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__iterator_01_4.html
@@ -29,7 +29,7 @@
users should never directly access first and second.

-
@@ -111,6 +111,11 @@ Inheritance diagram for simdjson::simdjson_result< SIMDJSON_IMPLEMENTATION::o
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::json_iterator >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::json_iterator
+
+using error_type = error_code
Public Member Functions inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::json_iterator >
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4-members.html
index a4ae6a1af..ce59d3325 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4-members.html
@@ -29,7 +29,7 @@
simdjson_inline implementation_simdjson_result_base () noexcept=default

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4.html
index 34df4c313..7de390fc8 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1json__type_01_4.html
@@ -29,7 +29,7 @@

-
@@ -111,6 +111,11 @@ Inheritance diagram for simdjson::simdjson_result< SIMDJSON_IMPLEMENTATION::o
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::json_type >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::json_type
+
+using error_type = error_code
Public Member Functions inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::json_type >
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object_01_4-members.html
index 743f5145f..0cdbbd427 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object_01_4-members.html
@@ -29,7 +29,7 @@
simdjson_inline implementation_simdjson_result_base () noexcept=default

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object_01_4.html
index 5f2877b71..b32e47ec0 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1object_01_4.html
@@ -29,7 +29,7 @@

-
@@ -201,6 +201,11 @@ simdjson_inline implementa
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::object >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::object
+
+using error_type = error_code
Protected Attributes inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::object >SIMDJSON_IMPLEMENTATION::ondemand::object first
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1token__iterator_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1token__iterator_01_4.html
index 1b5505b9c..fb50998bf 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1token__iterator_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1token__iterator_01_4.html
@@ -29,7 +29,7 @@
users should never directly access first and second.

-
@@ -111,6 +111,11 @@ Inheritance diagram for simdjson::simdjson_result< SIMDJSON_IMPLEMENTATION::o
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::token_iterator >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::token_iterator
+
+using error_type = error_code
Public Member Functions inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::token_iterator >
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value_01_4-members.html
index 25bc07b6b..fa9c040b8 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value_01_4-members.html
@@ -29,7 +29,7 @@
simdjson_inline implementation_simdjson_result_base () noexcept=default

-
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value_01_4.html
index 74baff7f3..49c460236 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value_01_4.html
@@ -29,7 +29,7 @@

-
@@ -294,6 +294,11 @@ simdjson_inline implementa
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::value >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::value
+
+using error_type = error_code
Protected Attributes inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::value >SIMDJSON_IMPLEMENTATION::ondemand::value first
diff --git a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value__iterator_01_4.html b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value__iterator_01_4.html
index 1bc7a2ad8..8f99405fd 100644
--- a/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value__iterator_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01_s_i_m_d_j_s_o_n___i_m_p_l_e_m_e_n_t_a_t_i_o_n_1_1ondemand_1_1value__iterator_01_4.html
@@ -29,7 +29,7 @@
users should never directly access first and second.

-
@@ -111,6 +111,11 @@ Inheritance diagram for simdjson::simdjson_result< SIMDJSON_IMPLEMENTATION::o
+
Additional Inherited Members
+
Public Types inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::value_iterator >
+using value_type = SIMDJSON_IMPLEMENTATION::ondemand::value_iterator
+
+using error_type = error_code
Public Member Functions inherited from simdjson::SIMDJSON_IMPLEMENTATION::implementation_simdjson_result_base< SIMDJSON_IMPLEMENTATION::ondemand::value_iterator >
diff --git a/structsimdjson_1_1simdjson__result_3_01dom_1_1array_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01dom_1_1array_01_4-members.html
index 0d9cd72e5..f59bf90ae 100644
--- a/structsimdjson_1_1simdjson__result_3_01dom_1_1array_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01dom_1_1array_01_4-members.html
@@ -29,7 +29,7 @@
simdjson_inline implementation_simdjson_result_base () noexcept=default

-
diff --git a/structsimdjson_1_1simdjson__result_3_01dom_1_1array_01_4.html b/structsimdjson_1_1simdjson__result_3_01dom_1_1array_01_4.html
index 708f2aaef..3861aa75b 100644
--- a/structsimdjson_1_1simdjson__result_3_01dom_1_1array_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01dom_1_1array_01_4.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01dom_1_1document__stream_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01dom_1_1document__stream_01_4-members.html
index e24cb63a0..1157ddaae 100644
--- a/structsimdjson_1_1simdjson__result_3_01dom_1_1document__stream_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01dom_1_1document__stream_01_4-members.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01dom_1_1document__stream_01_4.html b/structsimdjson_1_1simdjson__result_3_01dom_1_1document__stream_01_4.html
index f6fea3ea2..7cea192e1 100644
--- a/structsimdjson_1_1simdjson__result_3_01dom_1_1document__stream_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01dom_1_1document__stream_01_4.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01dom_1_1element_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01dom_1_1element_01_4-members.html
index 953a5e7a4..b374f289b 100644
--- a/structsimdjson_1_1simdjson__result_3_01dom_1_1element_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01dom_1_1element_01_4-members.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01dom_1_1element_01_4.html b/structsimdjson_1_1simdjson__result_3_01dom_1_1element_01_4.html
index 28f1da969..e6b15de51 100644
--- a/structsimdjson_1_1simdjson__result_3_01dom_1_1element_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01dom_1_1element_01_4.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01dom_1_1object_01_4-members.html b/structsimdjson_1_1simdjson__result_3_01dom_1_1object_01_4-members.html
index b9c7f0af3..c0a5a2322 100644
--- a/structsimdjson_1_1simdjson__result_3_01dom_1_1object_01_4-members.html
+++ b/structsimdjson_1_1simdjson__result_3_01dom_1_1object_01_4-members.html
@@ -29,7 +29,7 @@

-
diff --git a/structsimdjson_1_1simdjson__result_3_01dom_1_1object_01_4.html b/structsimdjson_1_1simdjson__result_3_01dom_1_1object_01_4.html
index 911817076..d53f6fcf8 100644
--- a/structsimdjson_1_1simdjson__result_3_01dom_1_1object_01_4.html
+++ b/structsimdjson_1_1simdjson__result_3_01dom_1_1object_01_4.html
@@ -29,7 +29,7 @@

-
diff --git a/tape__ref-inl_8h_source.html b/tape__ref-inl_8h_source.html
index e2d54a585..fc96c9193 100644
--- a/tape__ref-inl_8h_source.html
+++ b/tape__ref-inl_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/tape__ref_8h_source.html b/tape__ref_8h_source.html
index dfc4c7a62..ddd74cd99 100644
--- a/tape__ref_8h_source.html
+++ b/tape__ref_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/tape__type_8h_source.html b/tape__type_8h_source.html
index 20c885213..c50b9b3c4 100644
--- a/tape__type_8h_source.html
+++ b/tape__type_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/token__iterator-inl_8h_source.html b/token__iterator-inl_8h_source.html
index 0cc2adc21..618e14cf7 100644
--- a/token__iterator-inl_8h_source.html
+++ b/token__iterator-inl_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/token__iterator_8h_source.html b/token__iterator_8h_source.html
index d3dd87b6a..634b0b406 100644
--- a/token__iterator_8h_source.html
+++ b/token__iterator_8h_source.html
@@ -29,7 +29,7 @@

-
@@ -187,7 +187,7 @@ $(document).ready(function(){initNavTree('token__iterator_8h_source.html',''); i

-
diff --git a/value-inl_8h_source.html b/value-inl_8h_source.html
index 30a957876..085e6e58e 100644
--- a/value-inl_8h_source.html
+++ b/value-inl_8h_source.html
@@ -29,7 +29,7 @@

-
@@ -836,7 +836,7 @@ $(document).ready(function(){initNavTree('value-inl_8h_source.html',''); initRes
-
+

-
@@ -436,7 +436,7 @@ $(document).ready(function(){initNavTree('value_8h_source.html',''); initResizab

-
@@ -1256,7 +1256,7 @@ $(document).ready(function(){initNavTree('value__iterator-inl_8h_source.html',''

-
@@ -322,7 +322,7 @@ $(document).ready(function(){initNavTree('value__iterator_8h_source.html',''); i

-
diff --git a/westmere_2begin_8h_source.html b/westmere_2begin_8h_source.html
index 6361533c3..061be13b3 100644
--- a/westmere_2begin_8h_source.html
+++ b/westmere_2begin_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2bitmanipulation_8h_source.html b/westmere_2bitmanipulation_8h_source.html
index db9c73f51..d1913fd4e 100644
--- a/westmere_2bitmanipulation_8h_source.html
+++ b/westmere_2bitmanipulation_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2bitmask_8h_source.html b/westmere_2bitmask_8h_source.html
index 12a3f6430..2aba2ef69 100644
--- a/westmere_2bitmask_8h_source.html
+++ b/westmere_2bitmask_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2end_8h_source.html b/westmere_2end_8h_source.html
index 39ee69eb4..76f425334 100644
--- a/westmere_2end_8h_source.html
+++ b/westmere_2end_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2implementation_8h_source.html b/westmere_2implementation_8h_source.html
index 3bbf78104..318d1d2a0 100644
--- a/westmere_2implementation_8h_source.html
+++ b/westmere_2implementation_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2intrinsics_8h_source.html b/westmere_2intrinsics_8h_source.html
index 92edcaf05..15e1d531c 100644
--- a/westmere_2intrinsics_8h_source.html
+++ b/westmere_2intrinsics_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2numberparsing__defs_8h_source.html b/westmere_2numberparsing__defs_8h_source.html
index 0cf7ffe42..429973047 100644
--- a/westmere_2numberparsing__defs_8h_source.html
+++ b/westmere_2numberparsing__defs_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2ondemand_8h_source.html b/westmere_2ondemand_8h_source.html
index 8af21d535..cf4771880 100644
--- a/westmere_2ondemand_8h_source.html
+++ b/westmere_2ondemand_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2simd_8h_source.html b/westmere_2simd_8h_source.html
index 174c7b3e3..7446f4e6d 100644
--- a/westmere_2simd_8h_source.html
+++ b/westmere_2simd_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_2stringparsing__defs_8h_source.html b/westmere_2stringparsing__defs_8h_source.html
index e8eabc0f5..8a5359e9a 100644
--- a/westmere_2stringparsing__defs_8h_source.html
+++ b/westmere_2stringparsing__defs_8h_source.html
@@ -29,7 +29,7 @@

-
diff --git a/westmere_8h_source.html b/westmere_8h_source.html
index 56dcda83d..9a26f91b7 100644
--- a/westmere_8h_source.html
+++ b/westmere_8h_source.html
@@ -29,7 +29,7 @@

-