This commit is contained in:
lemire
2025-11-11 21:18:02 +00:00
parent d503c53850
commit 52d69fa598
427 changed files with 1789 additions and 1525 deletions
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+2 -2
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -206,7 +206,7 @@ $(document).ready(function(){initNavTree('array__iterator-inl_8h_source.html',''
<div class="ttc" id="anamespacesimdjson_html"><div class="ttname"><a href="namespacesimdjson.html">simdjson</a></div><div class="ttdoc">The top level simdjson namespace, containing everything the library provides.</div><div class="ttdef"><b>Definition</b> <a href="arm64_2base_8h_source.html#l00008">base.h:8</a></div></div>
<div class="ttc" id="anamespacesimdjson_html_a7b735a3a50ba79e3f7f14df5f77d8da9"><div class="ttname"><a href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">simdjson::error_code</a></div><div class="ttdeci">error_code</div><div class="ttdoc">All possible errors returned by simdjson.</div><div class="ttdef"><b>Definition</b> <a href="error_8h_source.html#l00019">error.h:19</a></div></div>
<div class="ttc" id="anamespacesimdjson_html_a7b735a3a50ba79e3f7f14df5f77d8da9aa4ffc800804829a88c5b52ac3c4c6681"><div class="ttname"><a href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9aa4ffc800804829a88c5b52ac3c4c6681">simdjson::SUCCESS</a></div><div class="ttdeci">@ SUCCESS</div><div class="ttdoc">No error.</div><div class="ttdef"><b>Definition</b> <a href="error_8h_source.html#l00020">error.h:20</a></div></div>
<div class="ttc" id="astructsimdjson_1_1simdjson__result_html"><div class="ttname"><a href="structsimdjson_1_1simdjson__result.html">simdjson::simdjson_result</a></div><div class="ttdoc">The result of a simdjson operation that could fail.</div><div class="ttdef"><b>Definition</b> <a href="error_8h_source.html#l00278">error.h:278</a></div></div>
<div class="ttc" id="astructsimdjson_1_1simdjson__result_html"><div class="ttname"><a href="structsimdjson_1_1simdjson__result.html">simdjson::simdjson_result</a></div><div class="ttdoc">The result of a simdjson operation that could fail.</div><div class="ttdef"><b>Definition</b> <a href="error_8h_source.html#l00280">error.h:280</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+2 -2
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -178,7 +178,7 @@ $(document).ready(function(){initNavTree('array__iterator_8h_source.html',''); i
<div class="ttc" id="aclasssimdjson_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_1value_html"><div class="ttname"><a href="classsimdjson_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_1value.html">simdjson::SIMDJSON_IMPLEMENTATION::ondemand::value</a></div><div class="ttdoc">An ephemeral JSON value returned during iteration.</div><div class="ttdef"><b>Definition</b> <a href="value_8h_source.html#l00022">value.h:22</a></div></div>
<div class="ttc" id="anamespacesimdjson_html"><div class="ttname"><a href="namespacesimdjson.html">simdjson</a></div><div class="ttdoc">The top level simdjson namespace, containing everything the library provides.</div><div class="ttdef"><b>Definition</b> <a href="arm64_2base_8h_source.html#l00008">base.h:8</a></div></div>
<div class="ttc" id="anamespacesimdjson_html_a7b735a3a50ba79e3f7f14df5f77d8da9"><div class="ttname"><a href="namespacesimdjson.html#a7b735a3a50ba79e3f7f14df5f77d8da9">simdjson::error_code</a></div><div class="ttdeci">error_code</div><div class="ttdoc">All possible errors returned by simdjson.</div><div class="ttdef"><b>Definition</b> <a href="error_8h_source.html#l00019">error.h:19</a></div></div>
<div class="ttc" id="astructsimdjson_1_1simdjson__result_html"><div class="ttname"><a href="structsimdjson_1_1simdjson__result.html">simdjson::simdjson_result</a></div><div class="ttdoc">The result of a simdjson operation that could fail.</div><div class="ttdef"><b>Definition</b> <a href="error_8h_source.html#l00278">error.h:278</a></div></div>
<div class="ttc" id="astructsimdjson_1_1simdjson__result_html"><div class="ttname"><a href="structsimdjson_1_1simdjson__result.html">simdjson::simdjson_result</a></div><div class="ttdoc">The result of a simdjson operation that could fail.</div><div class="ttdef"><b>Definition</b> <a href="error_8h_source.html#l00280">error.h:280</a></div></div>
<div class="ttc" id="astructsimdjson_1_1simdjson__result_html_a23470fcc7f01262019e96d3f3010b4a1"><div class="ttname"><a href="structsimdjson_1_1simdjson__result.html#a23470fcc7f01262019e96d3f3010b4a1">simdjson::simdjson_result::error</a></div><div class="ttdeci">simdjson_inline error_code error() const noexcept</div><div class="ttdoc">The error.</div><div class="ttdef"><b>Definition</b> <a href="error-inl_8h_source.html#l00168">error-inl.h:168</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -548,19 +548,19 @@ Public Attributes</h2></td></tr>
<p>Start iterating an on-demand JSON document. </p>
<p><a class="el" href="classsimdjson_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_1parser.html" title="A JSON fragment iterator.">ondemand::parser</a> parser; document doc = parser.iterate(json);</p>
<p>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.</p>
<h3><a class="anchor" id="autotoc_md186"></a>
<h3><a class="anchor" id="autotoc_md187"></a>
IMPORTANT: Validate what you use</h3>
<p>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.</p>
<h3><a class="anchor" id="autotoc_md187"></a>
<h3><a class="anchor" id="autotoc_md188"></a>
IMPORTANT: Buffer Lifetime</h3>
<p>Because parsing is done while you iterate, you <em>must</em> keep the JSON buffer around at least as long as the document iteration.</p>
<h3><a class="anchor" id="autotoc_md188"></a>
<h3><a class="anchor" id="autotoc_md189"></a>
IMPORTANT: Document Lifetime</h3>
<p>Only one iteration at a time can happen per parser, and the parser <em>must</em> 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.</p>
<h3><a class="anchor" id="autotoc_md189"></a>
<h3><a class="anchor" id="autotoc_md190"></a>
REQUIRED: Buffer Padding</h3>
<p>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.</p>
<h3><a class="anchor" id="autotoc_md190"></a>
<h3><a class="anchor" id="autotoc_md191"></a>
std::string references</h3>
<p>If you pass a mutable std::string reference (std::string&amp;), the parser will seek to extend its capacity to SIMDJSON_PADDING bytes beyond the end of the string.</p>
<p>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 <a class="el" href="namespacesimdjson.html#ac4131fd8cef9c8046d0bc9aee8d44d16" title="Create a padded_string_view from a string.">simdjson::pad(std::string&amp;)</a> 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:</p>
@@ -842,22 +842,22 @@ std::string references</h3>
<p>No copy of the input buffer is made.</p>
<p>The function is lazy: it may be that no more than one JSON document at a time is parsed.</p>
<p>The caller is responsabile to ensure that the input string data remains unchanged and is not deleted during the loop.</p>
<h3><a class="anchor" id="autotoc_md194"></a>
<h3><a class="anchor" id="autotoc_md195"></a>
Format</h3>
<p>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.)</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h3><a class="anchor" id="autotoc_md195"></a>
<h3><a class="anchor" id="autotoc_md196"></a>
Threads</h3>
<p>When compiled with SIMDJSON_THREADS_ENABLED, this method will use a single thread under the hood to do some lookahead.</p>
<h3><a class="anchor" id="autotoc_md196"></a>
<h3><a class="anchor" id="autotoc_md197"></a>
REQUIRED: Buffer Padding</h3>
<p>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.</p>
<p>This is checked automatically with all iterate_many function calls, except for the two that take pointers (const char* or const uint8_t*).</p>
<h3><a class="anchor" id="autotoc_md197"></a>
Threads</h3>
<h3><a class="anchor" id="autotoc_md198"></a>
Threads</h3>
<h3><a class="anchor" id="autotoc_md199"></a>
Parser Capacity</h3>
<p>If the parser's current capacity is less than batch_size, it will allocate enough capacity to handle it (up to max_capacity).</p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -1127,7 +1127,7 @@ Parser Capacity</h3>
with newline, etc. </p>
<p>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.</p>
<p>This unescape function is a low-level function. If you want a more user-friendly approach, you should avoid <a class="el" href="classsimdjson_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_1raw__json__string.html" title="A string escaped per JSON rules, terminated with quote (&quot;).">raw_json_string</a> instances (e.g., by calling unescaped_key() instead of key() or get_string() instead of get_raw_json_string()).</p>
<h2><a class="anchor" id="autotoc_md199"></a>
<h2><a class="anchor" id="autotoc_md200"></a>
IMPORTANT: string_view lifetime</h2>
<p>The string_view is only valid as long as the bytes in dst.</p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -1182,7 +1182,7 @@ IMPORTANT: string_view lifetime</h2>
with newline, etc. </p>
<p>to a user-provided buffer. The result may not be valid UTF-8. See <a href="https://simonsapin.github.io/wtf-8/">https://simonsapin.github.io/wtf-8/</a> 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.</p>
<p>This unescape function is a low-level function. If you want a more user-friendly approach, you should avoid <a class="el" href="classsimdjson_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_1raw__json__string.html" title="A string escaped per JSON rules, terminated with quote (&quot;).">raw_json_string</a> instances (e.g., by calling unescaped_key() instead of key() or get_string() instead of get_raw_json_string()).</p>
<h2><a class="anchor" id="autotoc_md200"></a>
<h2><a class="anchor" id="autotoc_md201"></a>
IMPORTANT: string_view lifetime</h2>
<p>The string_view is only valid as long as the bytes in dst.</p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+19 -19
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -409,14 +409,14 @@ Public Attributes</h2></td></tr>
<p>Load a JSON document from a file and return a reference to it. </p>
<p><a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a> parser; const element doc = <a class="el" href="classsimdjson_1_1dom_1_1parser.html#ac408e4da66b0ac7cf9734aa4973e0093" title="Load a JSON document from a file and return a reference to it.">parser.load</a>("jsonexamples/twitter.json");</p>
<p>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 <code><a class="el" href="classsimdjson_1_1dom_1_1parser.html#ac408e4da66b0ac7cf9734aa4973e0093" title="Load a JSON document from a file and return a reference to it.">parser.load</a></code> call.</p>
<h3><a class="anchor" id="autotoc_md166"></a>
<h3><a class="anchor" id="autotoc_md167"></a>
IMPORTANT: Document Lifetime</h3>
<p>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 <em>must</em> use the document before you destroy the parser or call <a class="el" href="classsimdjson_1_1dom_1_1parser.html#a16c7d1e28125ef7d5703244483f70984" title="Parse a JSON document and return a temporary reference to it.">parse()</a> again.</p>
<p>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 <code>unique_ptr</code> instance like so: <code>std::unique_ptr&lt;<a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a>&gt; parser(new <a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a>{});</code>.</p>
<h3><a class="anchor" id="autotoc_md167"></a>
<h3><a class="anchor" id="autotoc_md168"></a>
Parser Capacity</h3>
<p>If the parser's current capacity is less than the file length, it will allocate enough capacity to handle it (up to max_capacity).</p>
<h2><a class="anchor" id="autotoc_md168"></a>
<h2><a class="anchor" id="autotoc_md169"></a>
Windows and Unicode</h2>
<p>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.</p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -475,7 +475,7 @@ Windows and Unicode</h2>
<p>It is similar to the function <code>load</code> except that instead of parsing into the internal <code>document</code> instance associated with the parser, it allows the user to provide a document instance.</p>
<p><a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a> parser; <a class="el" href="classsimdjson_1_1dom_1_1document.html" title="A parsed JSON document.">dom::document</a> doc; element doc_root = <a class="el" href="classsimdjson_1_1dom_1_1parser.html#aa3fc69c5ff15c98e6b1ff9aa4811b040" title="Load a JSON document from a file into a provide document instance and return a temporary reference to...">parser.load_into_document</a>(doc, "jsonexamples/twitter.json");</p>
<p>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 <code><a class="el" href="classsimdjson_1_1dom_1_1parser.html#aa3fc69c5ff15c98e6b1ff9aa4811b040" title="Load a JSON document from a file into a provide document instance and return a temporary reference to...">parser.load_into_document</a></code> call.</p>
<h3><a class="anchor" id="autotoc_md169"></a>
<h3><a class="anchor" id="autotoc_md170"></a>
IMPORTANT: Document Lifetime</h3>
<p>After the call to load_into_document, the parser is no longer needed.</p>
<p>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:</p>
@@ -539,20 +539,20 @@ IMPORTANT: Document Lifetime</h3>
<p>The file is loaded in memory and can be safely deleted after the <code>parser.load_many(path)</code> function has returned. The memory is held by the <code>parser</code> instance.</p>
<p>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 <code>parser.load_many(path)</code> function returned.</p>
<p>If there is a UTF-8 BOM, the parser skips it.</p>
<h3><a class="anchor" id="autotoc_md175"></a>
<h3><a class="anchor" id="autotoc_md176"></a>
Format</h3>
<p>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.)</p>
<p>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.</p>
<p>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.</p>
<h3><a class="anchor" id="autotoc_md176"></a>
<h3><a class="anchor" id="autotoc_md177"></a>
Error Handling</h3>
<p>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.</p>
<p>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:</p>
<p><a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a> parser; <a class="el" href="classsimdjson_1_1dom_1_1document__stream.html" title="A forward-only stream of documents.">dom::document_stream</a> docs; auto error = parser.load_many(path).get(docs); if (error) { cerr &lt;&lt; error &lt;&lt; endl; exit(1); } for (auto doc : docs) { std::string_view title; if ((error = doc["title"].get(title)) { cerr &lt;&lt; error &lt;&lt; endl; exit(1); } cout &lt;&lt; title &lt;&lt; endl; }</p>
<h3><a class="anchor" id="autotoc_md177"></a>
<h3><a class="anchor" id="autotoc_md178"></a>
Threads</h3>
<p>When compiled with SIMDJSON_THREADS_ENABLED, this method will use a single thread under the hood to do some lookahead.</p>
<h3><a class="anchor" id="autotoc_md178"></a>
<h3><a class="anchor" id="autotoc_md179"></a>
Parser Capacity</h3>
<p>If the parser's current capacity is less than batch_size, it will allocate enough capacity to handle it (up to max_capacity).</p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -840,11 +840,11 @@ Parser Capacity</h3>
<p>Parse a JSON document and return a temporary reference to it. </p>
<p><a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a> parser; element doc_root = parser.parse(buf, len);</p>
<p>The function eagerly parses the input: the input can be modified and discarded after the <code>parser.parse(buf, len)</code> call has completed.</p>
<h3><a class="anchor" id="autotoc_md170"></a>
<h3><a class="anchor" id="autotoc_md171"></a>
IMPORTANT: Document Lifetime</h3>
<p>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 <em>must</em> use the document before you destroy the parser or call <a class="el" href="classsimdjson_1_1dom_1_1parser.html#a16c7d1e28125ef7d5703244483f70984" title="Parse a JSON document and return a temporary reference to it.">parse()</a> again.</p>
<p>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 <code>unique_ptr</code> instance like so: <code>std::unique_ptr&lt;<a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a>&gt; parser(new <a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a>{});</code>.</p>
<h3><a class="anchor" id="autotoc_md171"></a>
<h3><a class="anchor" id="autotoc_md172"></a>
REQUIRED: Buffer Padding</h3>
<p>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.</p>
<p>If realloc_if_needed is true (the default), it is assumed that the buffer does <em>not</em> have enough padding, and it is copied into an enlarged temporary buffer before parsing. Thus the following is safe:</p>
@@ -852,12 +852,12 @@ REQUIRED: Buffer Padding</h3>
<p>If 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.</p>
<p>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:</p>
<p>const char *json = R"({"key":"value"})"; const size_t json_len = std::strlen(json); std::unique_ptr&lt;char[]&gt; 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); <a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">simdjson::dom::parser</a> parser; <a class="el" href="classsimdjson_1_1dom_1_1element.html" title="A JSON element.">simdjson::dom::element</a> element = <a class="el" href="classsimdjson_1_1dom_1_1parser.html#a16c7d1e28125ef7d5703244483f70984" title="Parse a JSON document and return a temporary reference to it.">parser.parse</a>(padded_json_copy.get(), json_len, false);</p>
<h3><a class="anchor" id="autotoc_md172"></a>
<h3><a class="anchor" id="autotoc_md173"></a>
std::string references</h3>
<p>If you pass a mutable std::string reference (std::string&amp;), the parser will seek to extend its capacity to SIMDJSON_PADDING bytes beyond the end of the string.</p>
<p>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 <a class="el" href="namespacesimdjson.html#ac4131fd8cef9c8046d0bc9aee8d44d16" title="Create a padded_string_view from a string.">simdjson::pad(std::string&amp;)</a> 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:</p>
<p>std::string json = R"({ "foo": 1 } { "foo": 2 } { "foo": 3 } )"; element doc = parser.parse(simdjson::pad(json));</p>
<h3><a class="anchor" id="autotoc_md173"></a>
<h3><a class="anchor" id="autotoc_md174"></a>
Parser Capacity</h3>
<p>If the parser's current capacity is less than len, it will allocate enough capacity to handle it (up to max_capacity).</p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -1055,7 +1055,7 @@ Parser Capacity</h3>
<p>It is similar to the function <code>parse</code> except that instead of parsing into the internal <code>document</code> instance associated with the parser, it allows the user to provide a document instance.</p>
<p><a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a> parser; <a class="el" href="classsimdjson_1_1dom_1_1document.html" title="A parsed JSON document.">dom::document</a> doc; element doc_root = parser.parse_into_document(doc, buf, len);</p>
<p>The function eagerly parses the input: the input can be modified and discarded after the <code>parser.parse(buf, len)</code> call has completed.</p>
<h3><a class="anchor" id="autotoc_md174"></a>
<h3><a class="anchor" id="autotoc_md175"></a>
IMPORTANT: Document Lifetime</h3>
<p>After the call to parse_into_document, the parser is no longer needed.</p>
<p>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:</p>
@@ -1250,23 +1250,23 @@ IMPORTANT: Document Lifetime</h3>
<p>The following is safe:</p>
<p>auto json = "[\"temporary data\"]"_padded; auto docs = parser.parse_many(json); for (element doc : docs) { cout &lt;&lt; std::string(doc["title"]) &lt;&lt; endl; }</p>
<p>If there is a UTF-8 BOM, the parser skips it.</p>
<h3><a class="anchor" id="autotoc_md179"></a>
<h3><a class="anchor" id="autotoc_md180"></a>
Format</h3>
<p>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.)</p>
<p>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.</p>
<p>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.</p>
<h3><a class="anchor" id="autotoc_md180"></a>
<h3><a class="anchor" id="autotoc_md181"></a>
Error Handling</h3>
<p>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.</p>
<p>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:</p>
<p><a class="el" href="classsimdjson_1_1dom_1_1parser.html" title="A persistent document parser.">dom::parser</a> parser; <a class="el" href="classsimdjson_1_1dom_1_1document__stream.html" title="A forward-only stream of documents.">dom::document_stream</a> docs; auto error = parser.load_many(path).get(docs); if (error) { cerr &lt;&lt; error &lt;&lt; endl; exit(1); } for (auto doc : docs) { std::string_view title; if ((error = doc["title"].get(title)) { cerr &lt;&lt; error &lt;&lt; endl; exit(1); } cout &lt;&lt; title &lt;&lt; endl; }</p>
<h3><a class="anchor" id="autotoc_md181"></a>
<h3><a class="anchor" id="autotoc_md182"></a>
REQUIRED: Buffer Padding</h3>
<p>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.</p>
<h3><a class="anchor" id="autotoc_md182"></a>
<h3><a class="anchor" id="autotoc_md183"></a>
Threads</h3>
<p>When compiled with SIMDJSON_THREADS_ENABLED, this method will use a single thread under the hood to do some lookahead.</p>
<h3><a class="anchor" id="autotoc_md183"></a>
<h3><a class="anchor" id="autotoc_md184"></a>
Parser Capacity</h3>
<p>If the parser's current capacity is less than batch_size, it will allocate enough capacity to handle it (up to max_capacity).</p>
<dl class="params"><dt>Parameters</dt><dd>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>
+1 -1
View File
@@ -29,7 +29,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="logotiny.png"/></td>
<td id="projectalign">
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.1</span>
<div id="projectname">simdjson<span id="projectnumber">&#160;4.2.2</span>
</div>
<div id="projectbrief">Ridiculously Fast JSON</div>
</td>

Some files were not shown because too many files have changed in this diff Show More