simdjson 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2541) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +1 -1
  3. data/.travis.yml +10 -3
  4. data/README.md +2 -0
  5. data/Rakefile +1 -1
  6. data/benchmark/run_benchmark.rb +4 -0
  7. data/ext/simdjson/extconf.rb +1 -1
  8. data/ext/simdjson/simdjson.cpp +34 -41
  9. data/lib/simdjson/version.rb +1 -1
  10. data/simdjson.gemspec +2 -1
  11. data/vendor/simdjson/AUTHORS +2 -1
  12. data/vendor/simdjson/CMakeFiles/3.16.3/CompilerIdC/a.out +0 -0
  13. data/vendor/simdjson/CMakeFiles/3.16.3/CompilerIdCXX/a.out +0 -0
  14. data/vendor/simdjson/CMakeLists.txt +68 -39
  15. data/vendor/simdjson/CONTRIBUTING.md +92 -0
  16. data/vendor/simdjson/CONTRIBUTORS +12 -0
  17. data/vendor/simdjson/Dockerfile +88 -10
  18. data/vendor/simdjson/Doxyfile +2578 -0
  19. data/vendor/simdjson/HACKING.md +652 -0
  20. data/vendor/simdjson/README.md +156 -547
  21. data/vendor/simdjson/RELEASES.md +50 -0
  22. data/vendor/simdjson/benchmark/CMakeLists.txt +37 -8
  23. data/vendor/simdjson/benchmark/Dockerfile +19 -0
  24. data/vendor/simdjson/benchmark/bench_dom_api.cpp +552 -0
  25. data/vendor/simdjson/benchmark/bench_parse_call.cpp +162 -0
  26. data/vendor/simdjson/benchmark/benchfeatures.cpp +466 -0
  27. data/vendor/simdjson/benchmark/benchmark.h +62 -179
  28. data/vendor/simdjson/benchmark/benchmarker.h +522 -0
  29. data/vendor/simdjson/benchmark/checkperf.cmake +101 -0
  30. data/vendor/simdjson/benchmark/distinctuseridcompetition.cpp +108 -49
  31. data/vendor/simdjson/benchmark/event_counter.h +152 -0
  32. data/vendor/simdjson/benchmark/get_corpus_benchmark.cpp +57 -0
  33. data/vendor/simdjson/benchmark/linux/linux-perf-events.h +24 -16
  34. data/vendor/simdjson/benchmark/minifiercompetition.cpp +47 -44
  35. data/vendor/simdjson/benchmark/parse.cpp +174 -345
  36. data/vendor/simdjson/benchmark/parse_stream.cpp +191 -0
  37. data/vendor/simdjson/benchmark/parseandstatcompetition.cpp +260 -77
  38. data/vendor/simdjson/benchmark/parsingcompetition.cpp +138 -75
  39. data/vendor/simdjson/benchmark/perfdiff.cpp +114 -0
  40. data/vendor/simdjson/benchmark/statisticalmodel.cpp +75 -76
  41. data/vendor/simdjson/cmake/add_cpp_test.cmake +49 -0
  42. data/vendor/simdjson/cmake/simdjson-flags.cmake +155 -0
  43. data/vendor/simdjson/cmake/simdjson-user-cmakecache.cmake +24 -0
  44. data/vendor/simdjson/dependencies/CMakeLists.txt +89 -0
  45. data/vendor/simdjson/dependencies/benchmark/AUTHORS +56 -0
  46. data/vendor/simdjson/dependencies/benchmark/BUILD.bazel +44 -0
  47. data/vendor/simdjson/dependencies/benchmark/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  48. data/vendor/simdjson/dependencies/benchmark/CMakeFiles/progress.marks +1 -0
  49. data/vendor/simdjson/dependencies/benchmark/CMakeLists.txt +279 -0
  50. data/vendor/simdjson/dependencies/benchmark/CONTRIBUTING.md +58 -0
  51. data/vendor/simdjson/dependencies/benchmark/CONTRIBUTORS +78 -0
  52. data/vendor/simdjson/dependencies/benchmark/CTestTestfile.cmake +7 -0
  53. data/vendor/simdjson/dependencies/benchmark/LICENSE +202 -0
  54. data/vendor/simdjson/dependencies/benchmark/Makefile +220 -0
  55. data/vendor/simdjson/dependencies/benchmark/README.md +1290 -0
  56. data/vendor/simdjson/dependencies/benchmark/WORKSPACE +15 -0
  57. data/vendor/simdjson/dependencies/benchmark/_config.yml +1 -0
  58. data/vendor/simdjson/dependencies/benchmark/appveyor.yml +50 -0
  59. data/vendor/simdjson/dependencies/benchmark/cmake/AddCXXCompilerFlag.cmake +74 -0
  60. data/vendor/simdjson/dependencies/benchmark/cmake/CXXFeatureCheck.cmake +64 -0
  61. data/vendor/simdjson/dependencies/benchmark/cmake/Config.cmake.in +1 -0
  62. data/vendor/simdjson/dependencies/benchmark/cmake/GetGitVersion.cmake +54 -0
  63. data/vendor/simdjson/dependencies/benchmark/cmake/GoogleTest.cmake +41 -0
  64. data/vendor/simdjson/dependencies/benchmark/cmake/GoogleTest.cmake.in +58 -0
  65. data/vendor/simdjson/dependencies/benchmark/cmake/Modules/FindLLVMAr.cmake +16 -0
  66. data/vendor/simdjson/dependencies/benchmark/cmake/Modules/FindLLVMNm.cmake +16 -0
  67. data/vendor/simdjson/dependencies/benchmark/cmake/Modules/FindLLVMRanLib.cmake +15 -0
  68. data/vendor/simdjson/dependencies/benchmark/cmake/benchmark.pc.in +12 -0
  69. data/vendor/simdjson/dependencies/benchmark/cmake/gnu_posix_regex.cpp +12 -0
  70. data/vendor/simdjson/dependencies/benchmark/cmake/llvm-toolchain.cmake +8 -0
  71. data/vendor/simdjson/dependencies/benchmark/cmake/posix_regex.cpp +14 -0
  72. data/vendor/simdjson/dependencies/benchmark/cmake/split_list.cmake +3 -0
  73. data/vendor/simdjson/dependencies/benchmark/cmake/std_regex.cpp +10 -0
  74. data/vendor/simdjson/dependencies/benchmark/cmake/steady_clock.cpp +7 -0
  75. data/vendor/simdjson/dependencies/benchmark/cmake/thread_safety_attributes.cpp +4 -0
  76. data/vendor/simdjson/dependencies/benchmark/cmake_install.cmake +45 -0
  77. data/vendor/simdjson/dependencies/benchmark/conan/CMakeLists.txt +7 -0
  78. data/vendor/simdjson/dependencies/benchmark/conan/test_package/CMakeLists.txt +10 -0
  79. data/vendor/simdjson/dependencies/benchmark/conan/test_package/conanfile.py +19 -0
  80. data/vendor/simdjson/dependencies/benchmark/conan/test_package/test_package.cpp +18 -0
  81. data/vendor/simdjson/dependencies/benchmark/conanfile.py +79 -0
  82. data/vendor/simdjson/dependencies/benchmark/dependencies.md +18 -0
  83. data/vendor/simdjson/dependencies/benchmark/docs/AssemblyTests.md +147 -0
  84. data/vendor/simdjson/dependencies/benchmark/docs/_config.yml +1 -0
  85. data/vendor/simdjson/dependencies/benchmark/docs/tools.md +199 -0
  86. data/vendor/simdjson/dependencies/benchmark/include/benchmark/benchmark.h +1586 -0
  87. data/vendor/simdjson/dependencies/benchmark/mingw.py +320 -0
  88. data/vendor/simdjson/dependencies/benchmark/releasing.md +16 -0
  89. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  90. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/CXX.includecache +738 -0
  91. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/DependInfo.cmake +47 -0
  92. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/build.make +354 -0
  93. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/cmake_clean.cmake +27 -0
  94. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/cmake_clean_target.cmake +3 -0
  95. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/depend.internal +157 -0
  96. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/depend.make +157 -0
  97. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/flags.make +10 -0
  98. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/link.txt +2 -0
  99. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark.dir/progress.make +20 -0
  100. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/CXX.includecache +40 -0
  101. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/DependInfo.cmake +31 -0
  102. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/build.make +99 -0
  103. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/cmake_clean.cmake +10 -0
  104. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/cmake_clean_target.cmake +3 -0
  105. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/depend.internal +6 -0
  106. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/depend.make +6 -0
  107. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/flags.make +10 -0
  108. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/link.txt +2 -0
  109. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/benchmark_main.dir/progress.make +3 -0
  110. data/vendor/simdjson/dependencies/benchmark/src/CMakeFiles/progress.marks +1 -0
  111. data/vendor/simdjson/dependencies/benchmark/src/CMakeLists.txt +116 -0
  112. data/vendor/simdjson/dependencies/benchmark/src/CTestTestfile.cmake +6 -0
  113. data/vendor/simdjson/dependencies/benchmark/src/Makefile +822 -0
  114. data/vendor/simdjson/dependencies/benchmark/src/arraysize.h +33 -0
  115. data/vendor/simdjson/dependencies/benchmark/src/benchmark.cc +499 -0
  116. data/vendor/simdjson/dependencies/benchmark/src/benchmark_api_internal.cc +15 -0
  117. data/vendor/simdjson/dependencies/benchmark/src/benchmark_api_internal.h +53 -0
  118. data/vendor/simdjson/dependencies/benchmark/src/benchmark_main.cc +17 -0
  119. data/vendor/simdjson/dependencies/benchmark/src/benchmark_name.cc +58 -0
  120. data/vendor/simdjson/dependencies/benchmark/src/benchmark_register.cc +506 -0
  121. data/vendor/simdjson/dependencies/benchmark/src/benchmark_register.h +107 -0
  122. data/vendor/simdjson/dependencies/benchmark/src/benchmark_runner.cc +361 -0
  123. data/vendor/simdjson/dependencies/benchmark/src/benchmark_runner.h +51 -0
  124. data/vendor/simdjson/dependencies/benchmark/src/check.h +82 -0
  125. data/vendor/simdjson/dependencies/benchmark/src/cmake_install.cmake +39 -0
  126. data/vendor/simdjson/dependencies/benchmark/src/colorprint.cc +188 -0
  127. data/vendor/simdjson/dependencies/benchmark/src/colorprint.h +33 -0
  128. data/vendor/simdjson/dependencies/benchmark/src/commandlineflags.cc +228 -0
  129. data/vendor/simdjson/dependencies/benchmark/src/commandlineflags.h +103 -0
  130. data/vendor/simdjson/dependencies/benchmark/src/complexity.cc +238 -0
  131. data/vendor/simdjson/dependencies/benchmark/src/complexity.h +55 -0
  132. data/vendor/simdjson/dependencies/benchmark/src/console_reporter.cc +177 -0
  133. data/vendor/simdjson/dependencies/benchmark/src/counter.cc +80 -0
  134. data/vendor/simdjson/dependencies/benchmark/src/counter.h +32 -0
  135. data/vendor/simdjson/dependencies/benchmark/src/csv_reporter.cc +154 -0
  136. data/vendor/simdjson/dependencies/benchmark/src/cycleclock.h +192 -0
  137. data/vendor/simdjson/dependencies/benchmark/src/internal_macros.h +94 -0
  138. data/vendor/simdjson/dependencies/benchmark/src/json_reporter.cc +253 -0
  139. data/vendor/simdjson/dependencies/benchmark/src/log.h +74 -0
  140. data/vendor/simdjson/dependencies/benchmark/src/mutex.h +155 -0
  141. data/vendor/simdjson/dependencies/benchmark/src/re.h +158 -0
  142. data/vendor/simdjson/dependencies/benchmark/src/reporter.cc +105 -0
  143. data/vendor/simdjson/dependencies/benchmark/src/sleep.cc +51 -0
  144. data/vendor/simdjson/dependencies/benchmark/src/sleep.h +15 -0
  145. data/vendor/simdjson/dependencies/benchmark/src/statistics.cc +193 -0
  146. data/vendor/simdjson/dependencies/benchmark/src/statistics.h +37 -0
  147. data/vendor/simdjson/dependencies/benchmark/src/string_util.cc +252 -0
  148. data/vendor/simdjson/dependencies/benchmark/src/string_util.h +59 -0
  149. data/vendor/simdjson/dependencies/benchmark/src/sysinfo.cc +708 -0
  150. data/vendor/simdjson/dependencies/benchmark/src/thread_manager.h +64 -0
  151. data/vendor/simdjson/dependencies/benchmark/src/thread_timer.h +86 -0
  152. data/vendor/simdjson/dependencies/benchmark/src/timers.cc +217 -0
  153. data/vendor/simdjson/dependencies/benchmark/src/timers.h +48 -0
  154. data/vendor/simdjson/dependencies/benchmark/test/AssemblyTests.cmake +46 -0
  155. data/vendor/simdjson/dependencies/benchmark/test/BUILD +73 -0
  156. data/vendor/simdjson/dependencies/benchmark/test/CMakeLists.txt +260 -0
  157. data/vendor/simdjson/dependencies/benchmark/test/basic_test.cc +136 -0
  158. data/vendor/simdjson/dependencies/benchmark/test/benchmark_gtest.cc +128 -0
  159. data/vendor/simdjson/dependencies/benchmark/test/benchmark_name_gtest.cc +74 -0
  160. data/vendor/simdjson/dependencies/benchmark/test/benchmark_test.cc +245 -0
  161. data/vendor/simdjson/dependencies/benchmark/test/clobber_memory_assembly_test.cc +64 -0
  162. data/vendor/simdjson/dependencies/benchmark/test/commandlineflags_gtest.cc +201 -0
  163. data/vendor/simdjson/dependencies/benchmark/test/complexity_test.cc +213 -0
  164. data/vendor/simdjson/dependencies/benchmark/test/cxx03_test.cc +63 -0
  165. data/vendor/simdjson/dependencies/benchmark/test/diagnostics_test.cc +80 -0
  166. data/vendor/simdjson/dependencies/benchmark/test/display_aggregates_only_test.cc +43 -0
  167. data/vendor/simdjson/dependencies/benchmark/test/donotoptimize_assembly_test.cc +163 -0
  168. data/vendor/simdjson/dependencies/benchmark/test/donotoptimize_test.cc +52 -0
  169. data/vendor/simdjson/dependencies/benchmark/test/filter_test.cc +104 -0
  170. data/vendor/simdjson/dependencies/benchmark/test/fixture_test.cc +49 -0
  171. data/vendor/simdjson/dependencies/benchmark/test/internal_threading_test.cc +184 -0
  172. data/vendor/simdjson/dependencies/benchmark/test/link_main_test.cc +8 -0
  173. data/vendor/simdjson/dependencies/benchmark/test/map_test.cc +57 -0
  174. data/vendor/simdjson/dependencies/benchmark/test/memory_manager_test.cc +44 -0
  175. data/vendor/simdjson/dependencies/benchmark/test/multiple_ranges_test.cc +96 -0
  176. data/vendor/simdjson/dependencies/benchmark/test/options_test.cc +75 -0
  177. data/vendor/simdjson/dependencies/benchmark/test/output_test.h +213 -0
  178. data/vendor/simdjson/dependencies/benchmark/test/output_test_helper.cc +515 -0
  179. data/vendor/simdjson/dependencies/benchmark/test/register_benchmark_test.cc +184 -0
  180. data/vendor/simdjson/dependencies/benchmark/test/report_aggregates_only_test.cc +39 -0
  181. data/vendor/simdjson/dependencies/benchmark/test/reporter_output_test.cc +748 -0
  182. data/vendor/simdjson/dependencies/benchmark/test/skip_with_error_test.cc +189 -0
  183. data/vendor/simdjson/dependencies/benchmark/test/state_assembly_test.cc +68 -0
  184. data/vendor/simdjson/dependencies/benchmark/test/statistics_gtest.cc +28 -0
  185. data/vendor/simdjson/dependencies/benchmark/test/string_util_gtest.cc +153 -0
  186. data/vendor/simdjson/dependencies/benchmark/test/templated_fixture_test.cc +28 -0
  187. data/vendor/simdjson/dependencies/benchmark/test/user_counters_tabular_test.cc +285 -0
  188. data/vendor/simdjson/dependencies/benchmark/test/user_counters_test.cc +531 -0
  189. data/vendor/simdjson/dependencies/benchmark/test/user_counters_thousands_test.cc +173 -0
  190. data/vendor/simdjson/dependencies/benchmark/tools/compare.py +408 -0
  191. data/vendor/simdjson/dependencies/benchmark/tools/gbench/__init__.py +8 -0
  192. data/vendor/simdjson/dependencies/benchmark/tools/gbench/report.py +541 -0
  193. data/vendor/simdjson/dependencies/benchmark/tools/gbench/util.py +164 -0
  194. data/vendor/simdjson/dependencies/benchmark/tools/strip_asm.py +151 -0
  195. data/vendor/simdjson/dependencies/cJSON/CHANGELOG.md +375 -0
  196. data/vendor/simdjson/dependencies/cJSON/CMakeLists.txt +251 -0
  197. data/vendor/simdjson/dependencies/cJSON/CONTRIBUTORS.md +51 -0
  198. data/vendor/simdjson/dependencies/cJSON/LICENSE +20 -0
  199. data/vendor/simdjson/dependencies/cJSON/Makefile +157 -0
  200. data/vendor/simdjson/dependencies/cJSON/README.md +533 -0
  201. data/vendor/simdjson/dependencies/cJSON/appveyor.yml +86 -0
  202. data/vendor/simdjson/dependencies/cJSON/cJSON.c +2936 -0
  203. data/vendor/simdjson/dependencies/cJSON/cJSON.h +285 -0
  204. data/vendor/simdjson/dependencies/cJSON/cJSON_Utils.c +1450 -0
  205. data/vendor/simdjson/dependencies/cJSON/cJSON_Utils.h +88 -0
  206. data/vendor/simdjson/dependencies/cJSON/fuzzing/CMakeLists.txt +28 -0
  207. data/vendor/simdjson/dependencies/cJSON/fuzzing/afl-prepare-linux.sh +5 -0
  208. data/vendor/simdjson/dependencies/cJSON/fuzzing/afl.c +176 -0
  209. data/vendor/simdjson/dependencies/cJSON/fuzzing/afl.sh +9 -0
  210. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test1 +22 -0
  211. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test10 +1 -0
  212. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test11 +8 -0
  213. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test2 +11 -0
  214. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test3 +26 -0
  215. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test3.bu +26 -0
  216. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test3.uf +26 -0
  217. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test3.uu +26 -0
  218. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test4 +88 -0
  219. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test5 +27 -0
  220. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test6 +16 -0
  221. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test7 +22 -0
  222. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test8 +13 -0
  223. data/vendor/simdjson/dependencies/cJSON/fuzzing/inputs/test9 +5 -0
  224. data/vendor/simdjson/dependencies/cJSON/fuzzing/json.dict +47 -0
  225. data/vendor/simdjson/dependencies/cJSON/library_config/cJSONConfig.cmake.in +29 -0
  226. data/vendor/simdjson/dependencies/cJSON/library_config/cJSONConfigVersion.cmake.in +11 -0
  227. data/vendor/simdjson/dependencies/cJSON/library_config/libcjson.pc.in +10 -0
  228. data/vendor/simdjson/dependencies/cJSON/library_config/libcjson_utils.pc.in +10 -0
  229. data/vendor/simdjson/dependencies/cJSON/test.c +268 -0
  230. data/vendor/simdjson/dependencies/cJSON/tests/CMakeLists.txt +115 -0
  231. data/vendor/simdjson/dependencies/cJSON/tests/cjson_add.c +422 -0
  232. data/vendor/simdjson/dependencies/cJSON/tests/common.h +122 -0
  233. data/vendor/simdjson/dependencies/cJSON/tests/compare_tests.c +205 -0
  234. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test1 +22 -0
  235. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test1.expected +22 -0
  236. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test10 +1 -0
  237. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test10.expected +1 -0
  238. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test11 +8 -0
  239. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test11.expected +10 -0
  240. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test2 +11 -0
  241. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test2.expected +18 -0
  242. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test3 +26 -0
  243. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test3.expected +28 -0
  244. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test4 +88 -0
  245. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test4.expected +94 -0
  246. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test5 +27 -0
  247. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test5.expected +54 -0
  248. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test6 +16 -0
  249. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test7 +22 -0
  250. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test7.expected +19 -0
  251. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test8 +13 -0
  252. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test8.expected +13 -0
  253. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test9 +5 -0
  254. data/vendor/simdjson/dependencies/cJSON/tests/inputs/test9.expected +1 -0
  255. data/vendor/simdjson/dependencies/cJSON/tests/json-patch-tests/README.md +75 -0
  256. data/vendor/simdjson/dependencies/cJSON/tests/json_patch_tests.c +243 -0
  257. data/vendor/simdjson/dependencies/cJSON/tests/misc_tests.c +579 -0
  258. data/vendor/simdjson/dependencies/cJSON/tests/misc_utils_tests.c +80 -0
  259. data/vendor/simdjson/dependencies/cJSON/tests/old_utils_tests.c +205 -0
  260. data/vendor/simdjson/dependencies/cJSON/tests/parse_array.c +166 -0
  261. data/vendor/simdjson/dependencies/cJSON/tests/parse_examples.c +214 -0
  262. data/vendor/simdjson/dependencies/cJSON/tests/parse_hex4.c +73 -0
  263. data/vendor/simdjson/dependencies/cJSON/tests/parse_number.c +110 -0
  264. data/vendor/simdjson/dependencies/cJSON/tests/parse_object.c +176 -0
  265. data/vendor/simdjson/dependencies/cJSON/tests/parse_string.c +135 -0
  266. data/vendor/simdjson/dependencies/cJSON/tests/parse_value.c +112 -0
  267. data/vendor/simdjson/dependencies/cJSON/tests/parse_with_opts.c +112 -0
  268. data/vendor/simdjson/dependencies/cJSON/tests/print_array.c +100 -0
  269. data/vendor/simdjson/dependencies/cJSON/tests/print_number.c +105 -0
  270. data/vendor/simdjson/dependencies/cJSON/tests/print_object.c +101 -0
  271. data/vendor/simdjson/dependencies/cJSON/tests/print_string.c +78 -0
  272. data/vendor/simdjson/dependencies/cJSON/tests/print_value.c +107 -0
  273. data/vendor/simdjson/dependencies/cJSON/tests/readme_examples.c +258 -0
  274. data/vendor/simdjson/dependencies/cJSON/tests/unity/README.md +231 -0
  275. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/colour_prompt.rb +118 -0
  276. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/colour_reporter.rb +39 -0
  277. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/generate_config.yml +36 -0
  278. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/generate_module.rb +308 -0
  279. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/generate_test_runner.rb +454 -0
  280. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/parse_output.rb +220 -0
  281. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/stylize_as_junit.rb +252 -0
  282. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/test_file_filter.rb +25 -0
  283. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/type_sanitizer.rb +6 -0
  284. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/unity_test_summary.py +139 -0
  285. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/unity_test_summary.rb +136 -0
  286. data/vendor/simdjson/dependencies/cJSON/tests/unity/auto/unity_to_junit.py +146 -0
  287. data/vendor/simdjson/dependencies/cJSON/tests/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
  288. data/vendor/simdjson/dependencies/cJSON/tests/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  289. data/vendor/simdjson/dependencies/cJSON/tests/unity/docs/UnityAssertionsReference.md +770 -0
  290. data/vendor/simdjson/dependencies/cJSON/tests/unity/docs/UnityConfigurationGuide.md +435 -0
  291. data/vendor/simdjson/dependencies/cJSON/tests/unity/docs/UnityGettingStartedGuide.md +191 -0
  292. data/vendor/simdjson/dependencies/cJSON/tests/unity/docs/UnityHelperScriptsGuide.md +254 -0
  293. data/vendor/simdjson/dependencies/cJSON/tests/unity/docs/license.txt +21 -0
  294. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/makefile +71 -0
  295. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/readme.txt +5 -0
  296. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/src/ProductionCode.c +24 -0
  297. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/src/ProductionCode.h +3 -0
  298. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/src/ProductionCode2.c +11 -0
  299. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/src/ProductionCode2.h +2 -0
  300. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/test/TestProductionCode.c +62 -0
  301. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/test/TestProductionCode2.c +31 -0
  302. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
  303. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
  304. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/makefile +70 -0
  305. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/readme.txt +5 -0
  306. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/src/ProductionCode.c +24 -0
  307. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/src/ProductionCode.h +3 -0
  308. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/src/ProductionCode2.c +11 -0
  309. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/src/ProductionCode2.h +2 -0
  310. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/test/TestProductionCode.c +64 -0
  311. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/test/TestProductionCode2.c +33 -0
  312. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
  313. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
  314. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
  315. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/helper/UnityHelper.c +10 -0
  316. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/helper/UnityHelper.h +12 -0
  317. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/rakefile.rb +43 -0
  318. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/rakefile_helper.rb +249 -0
  319. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/readme.txt +13 -0
  320. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/src/ProductionCode.c +24 -0
  321. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/src/ProductionCode.h +3 -0
  322. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/src/ProductionCode2.c +11 -0
  323. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/src/ProductionCode2.h +2 -0
  324. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/target_gcc_32.yml +46 -0
  325. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/test/TestProductionCode.c +62 -0
  326. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/example_3/test/TestProductionCode2.c +31 -0
  327. data/vendor/simdjson/dependencies/cJSON/tests/unity/examples/unity_config.h +239 -0
  328. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/eclipse/error_parsers.txt +26 -0
  329. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/rakefile.rb +48 -0
  330. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/rakefile_helper.rb +178 -0
  331. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/readme.txt +9 -0
  332. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/src/unity_fixture.c +432 -0
  333. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/src/unity_fixture.h +83 -0
  334. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/src/unity_fixture_internals.h +51 -0
  335. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +47 -0
  336. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/test/Makefile +75 -0
  337. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/test/main/AllTests.c +22 -0
  338. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/test/template_fixture_tests.c +39 -0
  339. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/test/unity_fixture_Test.c +543 -0
  340. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/test/unity_fixture_TestRunner.c +57 -0
  341. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/test/unity_output_Spy.c +57 -0
  342. data/vendor/simdjson/dependencies/cJSON/tests/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  343. data/vendor/simdjson/dependencies/cJSON/tests/unity/release/build.info +2 -0
  344. data/vendor/simdjson/dependencies/cJSON/tests/unity/release/version.info +2 -0
  345. data/vendor/simdjson/dependencies/cJSON/tests/unity/src/unity.c +1570 -0
  346. data/vendor/simdjson/dependencies/cJSON/tests/unity/src/unity.h +503 -0
  347. data/vendor/simdjson/dependencies/cJSON/tests/unity/src/unity_internals.h +870 -0
  348. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/Makefile +66 -0
  349. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_cmd.c +61 -0
  350. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_def.c +57 -0
  351. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_head1.c +55 -0
  352. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_head1.h +15 -0
  353. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_cmd.c +80 -0
  354. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_def.c +76 -0
  355. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_head1.c +75 -0
  356. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_head1.h +13 -0
  357. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_new1.c +89 -0
  358. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_new2.c +89 -0
  359. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_param.c +77 -0
  360. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_run1.c +89 -0
  361. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_run2.c +89 -0
  362. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_mock_yaml.c +90 -0
  363. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_new1.c +67 -0
  364. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_new2.c +70 -0
  365. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_param.c +58 -0
  366. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_run1.c +67 -0
  367. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_run2.c +70 -0
  368. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/expectdata/testsample_yaml.c +71 -0
  369. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/rakefile +125 -0
  370. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/rakefile_helper.rb +260 -0
  371. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
  372. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/clang_file.yml +78 -0
  373. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/clang_strict.yml +78 -0
  374. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/gcc_32.yml +49 -0
  375. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/gcc_64.yml +50 -0
  376. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/gcc_auto_limits.yml +47 -0
  377. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/gcc_auto_stdint.yml +59 -0
  378. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/gcc_manual_math.yml +47 -0
  379. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/hitech_picc18.yml +101 -0
  380. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/iar_arm_v4.yml +90 -0
  381. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/iar_arm_v5.yml +80 -0
  382. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/iar_arm_v5_3.yml +80 -0
  383. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +94 -0
  384. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/iar_cortexm3_v5.yml +84 -0
  385. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/iar_msp430.yml +95 -0
  386. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/targets/iar_sh2a_v6.yml +86 -0
  387. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/testdata/CException.h +11 -0
  388. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/testdata/Defs.h +8 -0
  389. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/testdata/cmock.h +14 -0
  390. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/testdata/mockMock.h +13 -0
  391. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/testdata/testRunnerGenerator.c +183 -0
  392. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/testdata/testRunnerGeneratorSmall.c +67 -0
  393. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
  394. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/tests/test_generate_test_runner.rb +1252 -0
  395. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/tests/testparameterized.c +110 -0
  396. data/vendor/simdjson/dependencies/cJSON/tests/unity/test/tests/testunity.c +5337 -0
  397. data/vendor/simdjson/dependencies/cJSON/tests/unity_setup.c +3 -0
  398. data/vendor/simdjson/dependencies/cJSON/valgrind.supp +6 -0
  399. data/vendor/simdjson/dependencies/cxxopts/CHANGELOG.md +97 -0
  400. data/vendor/simdjson/dependencies/cxxopts/CMakeLists.txt +108 -0
  401. data/vendor/simdjson/dependencies/cxxopts/INSTALL +23 -0
  402. data/vendor/simdjson/dependencies/cxxopts/LICENSE +19 -0
  403. data/vendor/simdjson/dependencies/cxxopts/README.md +208 -0
  404. data/vendor/simdjson/dependencies/cxxopts/cxxopts-config.cmake.in +4 -0
  405. data/vendor/simdjson/dependencies/cxxopts/include/cxxopts.hpp +2193 -0
  406. data/vendor/simdjson/dependencies/cxxopts/src/CMakeLists.txt +24 -0
  407. data/vendor/simdjson/dependencies/cxxopts/src/example.cpp +167 -0
  408. data/vendor/simdjson/dependencies/cxxopts/test/CMakeLists.txt +35 -0
  409. data/vendor/simdjson/dependencies/cxxopts/test/add-subdirectory-test/CMakeLists.txt +11 -0
  410. data/vendor/simdjson/dependencies/cxxopts/test/catch.hpp +10460 -0
  411. data/vendor/simdjson/dependencies/cxxopts/test/find-package-test/CMakeLists.txt +11 -0
  412. data/vendor/simdjson/dependencies/cxxopts/test/link_a.cpp +6 -0
  413. data/vendor/simdjson/dependencies/cxxopts/test/link_b.cpp +1 -0
  414. data/vendor/simdjson/dependencies/cxxopts/test/main.cpp +2 -0
  415. data/vendor/simdjson/dependencies/cxxopts/test/options.cpp +776 -0
  416. data/vendor/simdjson/dependencies/fastjson/LICENSE.txt +24 -0
  417. data/vendor/simdjson/dependencies/fastjson/Makefile +5 -0
  418. data/vendor/simdjson/dependencies/fastjson/README.md +68 -0
  419. data/vendor/simdjson/dependencies/fastjson/SConstruct +44 -0
  420. data/vendor/simdjson/dependencies/fastjson/examples/address_book/Makefile +2 -0
  421. data/vendor/simdjson/dependencies/fastjson/examples/address_book/README.markdown +5 -0
  422. data/vendor/simdjson/dependencies/fastjson/examples/address_book/address_book.cpp +166 -0
  423. data/vendor/simdjson/dependencies/fastjson/include/fastjson/core.h +146 -0
  424. data/vendor/simdjson/dependencies/fastjson/include/fastjson/dom.h +799 -0
  425. data/vendor/simdjson/dependencies/fastjson/include/fastjson/error.h +64 -0
  426. data/vendor/simdjson/dependencies/fastjson/include/fastjson/fastjson.h +161 -0
  427. data/vendor/simdjson/dependencies/fastjson/include/fastjson/utils.h +62 -0
  428. data/vendor/simdjson/dependencies/fastjson/src/fastjson.cpp +1016 -0
  429. data/vendor/simdjson/dependencies/fastjson/src/fastjson2.cpp +440 -0
  430. data/vendor/simdjson/dependencies/fastjson/src/fastjson_dom.cpp +165 -0
  431. data/vendor/simdjson/dependencies/fastjson/tests/00-bug-00-bad-parse.cpp +59 -0
  432. data/vendor/simdjson/dependencies/fastjson/tests/00-bug-01-string-roundtrip.cpp +88 -0
  433. data/vendor/simdjson/dependencies/fastjson/tests/00-bug-02-unicode-escape.cpp +66 -0
  434. data/vendor/simdjson/dependencies/fastjson/tests/01-dom-00-dict-const-get.cpp +35 -0
  435. data/vendor/simdjson/dependencies/fastjson/tests/01-dom-01-vector-from-json.cpp +36 -0
  436. data/vendor/simdjson/dependencies/fastjson/tests/Makefile +4 -0
  437. data/vendor/simdjson/dependencies/fastjson/tests/clone_token.cpp +49 -0
  438. data/vendor/simdjson/dependencies/fastjson/tests/dom_from_string.cpp +77 -0
  439. data/vendor/simdjson/dependencies/fastjson/tests/misc/dynamic_test.cpp +49 -0
  440. data/vendor/simdjson/dependencies/fastjson/tests/misc/from_file.cpp +57 -0
  441. data/vendor/simdjson/dependencies/fastjson/tests/misc/speed_test.cpp +127 -0
  442. data/vendor/simdjson/dependencies/fastjson/tests/misc/speed_test_boost.cpp +115 -0
  443. data/vendor/simdjson/dependencies/fastjson/tests/saruconf +3 -0
  444. data/vendor/simdjson/dependencies/fastjson/tests/test0.cpp +385 -0
  445. data/vendor/simdjson/dependencies/fastjson/tests/test1.cpp +237 -0
  446. data/vendor/simdjson/dependencies/fastjson/tests/test2.cpp +301 -0
  447. data/vendor/simdjson/dependencies/fastjson/tests/test_permissive_count.cpp +100 -0
  448. data/vendor/simdjson/dependencies/fastjson/tests/test_permissive_parse.cpp +83 -0
  449. data/vendor/simdjson/dependencies/fastjson/tests/test_permissive_roundtrip.cpp +64 -0
  450. data/vendor/simdjson/dependencies/fastjson/tests/test_utils.cpp +176 -0
  451. data/vendor/simdjson/dependencies/gason/CMakeLists.txt +16 -0
  452. data/vendor/simdjson/dependencies/gason/LICENSE +20 -0
  453. data/vendor/simdjson/dependencies/gason/README.md +167 -0
  454. data/vendor/simdjson/dependencies/gason/data/download.sh +5 -0
  455. data/vendor/simdjson/dependencies/gason/ruberoid/AndroidManifest.xml +32 -0
  456. data/vendor/simdjson/dependencies/gason/ruberoid/res/values/strings.xml +4 -0
  457. data/vendor/simdjson/dependencies/gason/src/benchmark.cpp +257 -0
  458. data/vendor/simdjson/dependencies/gason/src/gason.cpp +334 -0
  459. data/vendor/simdjson/dependencies/gason/src/gason.h +135 -0
  460. data/vendor/simdjson/dependencies/gason/src/pretty-print.cpp +192 -0
  461. data/vendor/simdjson/dependencies/gason/src/test-suite.cpp +146 -0
  462. data/vendor/simdjson/dependencies/jsmn/LICENSE +20 -0
  463. data/vendor/simdjson/dependencies/jsmn/Makefile +41 -0
  464. data/vendor/simdjson/dependencies/jsmn/README.md +168 -0
  465. data/vendor/simdjson/dependencies/jsmn/example/jsondump.c +126 -0
  466. data/vendor/simdjson/dependencies/jsmn/example/simple.c +76 -0
  467. data/vendor/simdjson/dependencies/jsmn/jsmn.c +314 -0
  468. data/vendor/simdjson/dependencies/jsmn/jsmn.h +76 -0
  469. data/vendor/simdjson/dependencies/jsmn/test/test.h +27 -0
  470. data/vendor/simdjson/dependencies/jsmn/test/tests.c +407 -0
  471. data/vendor/simdjson/dependencies/jsmn/test/testutil.h +94 -0
  472. data/vendor/simdjson/dependencies/json/CMakeLists.txt +131 -0
  473. data/vendor/simdjson/dependencies/json/CODE_OF_CONDUCT.md +46 -0
  474. data/vendor/simdjson/dependencies/json/ChangeLog.md +1670 -0
  475. data/vendor/simdjson/dependencies/json/LICENSE.MIT +21 -0
  476. data/vendor/simdjson/dependencies/json/Makefile +629 -0
  477. data/vendor/simdjson/dependencies/json/README.md +1370 -0
  478. data/vendor/simdjson/dependencies/json/appveyor.yml +111 -0
  479. data/vendor/simdjson/dependencies/json/benchmarks/CMakeLists.txt +28 -0
  480. data/vendor/simdjson/dependencies/json/benchmarks/src/benchmarks.cpp +109 -0
  481. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/AUTHORS +46 -0
  482. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/BUILD.bazel +42 -0
  483. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/CMakeLists.txt +251 -0
  484. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/CONTRIBUTING.md +58 -0
  485. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/CONTRIBUTORS +65 -0
  486. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/LICENSE +202 -0
  487. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/README.md +950 -0
  488. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/WORKSPACE +7 -0
  489. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/appveyor.yml +56 -0
  490. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/AddCXXCompilerFlag.cmake +74 -0
  491. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/CXXFeatureCheck.cmake +64 -0
  492. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/Config.cmake.in +1 -0
  493. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/GetGitVersion.cmake +54 -0
  494. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/HandleGTest.cmake +113 -0
  495. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/Modules/FindLLVMAr.cmake +16 -0
  496. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/Modules/FindLLVMNm.cmake +16 -0
  497. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/Modules/FindLLVMRanLib.cmake +15 -0
  498. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/benchmark.pc.in +11 -0
  499. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/gnu_posix_regex.cpp +12 -0
  500. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/llvm-toolchain.cmake +8 -0
  501. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/posix_regex.cpp +14 -0
  502. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/split_list.cmake +3 -0
  503. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/std_regex.cpp +10 -0
  504. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/steady_clock.cpp +7 -0
  505. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/cmake/thread_safety_attributes.cpp +4 -0
  506. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/docs/AssemblyTests.md +147 -0
  507. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/docs/tools.md +242 -0
  508. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/include/benchmark/benchmark.h +1456 -0
  509. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/mingw.py +320 -0
  510. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/releasing.md +16 -0
  511. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/CMakeLists.txt +105 -0
  512. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/arraysize.h +33 -0
  513. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/benchmark.cc +630 -0
  514. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/benchmark_api_internal.h +47 -0
  515. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/benchmark_main.cc +17 -0
  516. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/benchmark_register.cc +461 -0
  517. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/benchmark_register.h +33 -0
  518. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/check.h +79 -0
  519. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/colorprint.cc +188 -0
  520. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/colorprint.h +33 -0
  521. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/commandlineflags.cc +218 -0
  522. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/commandlineflags.h +79 -0
  523. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/complexity.cc +220 -0
  524. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/complexity.h +55 -0
  525. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/console_reporter.cc +182 -0
  526. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/counter.cc +68 -0
  527. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/counter.h +26 -0
  528. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/csv_reporter.cc +149 -0
  529. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/cycleclock.h +177 -0
  530. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/internal_macros.h +89 -0
  531. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/json_reporter.cc +205 -0
  532. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/log.h +73 -0
  533. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/mutex.h +155 -0
  534. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/re.h +152 -0
  535. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/reporter.cc +87 -0
  536. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/sleep.cc +51 -0
  537. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/sleep.h +15 -0
  538. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/statistics.cc +178 -0
  539. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/statistics.h +37 -0
  540. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/string_util.cc +172 -0
  541. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/string_util.h +40 -0
  542. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/sysinfo.cc +587 -0
  543. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/thread_manager.h +66 -0
  544. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/thread_timer.h +69 -0
  545. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/timers.cc +217 -0
  546. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/src/timers.h +48 -0
  547. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/tools/compare.py +316 -0
  548. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/tools/compare_bench.py +67 -0
  549. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/tools/gbench/__init__.py +8 -0
  550. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/tools/gbench/report.py +208 -0
  551. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/tools/gbench/util.py +159 -0
  552. data/vendor/simdjson/dependencies/json/benchmarks/thirdparty/benchmark/tools/strip_asm.py +151 -0
  553. data/vendor/simdjson/dependencies/json/cmake/config.cmake.in +15 -0
  554. data/vendor/simdjson/dependencies/json/doc/Doxyfile +335 -0
  555. data/vendor/simdjson/dependencies/json/doc/Makefile +90 -0
  556. data/vendor/simdjson/dependencies/json/doc/avatars.png +0 -0
  557. data/vendor/simdjson/dependencies/json/doc/binary_formats.md +171 -0
  558. data/vendor/simdjson/dependencies/json/doc/css/mylayout.css +26 -0
  559. data/vendor/simdjson/dependencies/json/doc/css/mylayout_docset.css +27 -0
  560. data/vendor/simdjson/dependencies/json/doc/examples/README.cpp +39 -0
  561. data/vendor/simdjson/dependencies/json/doc/examples/README.link +1 -0
  562. data/vendor/simdjson/dependencies/json/doc/examples/README.output +27 -0
  563. data/vendor/simdjson/dependencies/json/doc/examples/array.cpp +19 -0
  564. data/vendor/simdjson/dependencies/json/doc/examples/array.link +1 -0
  565. data/vendor/simdjson/dependencies/json/doc/examples/array.output +4 -0
  566. data/vendor/simdjson/dependencies/json/doc/examples/at__object_t_key_type.cpp +48 -0
  567. data/vendor/simdjson/dependencies/json/doc/examples/at__object_t_key_type.link +1 -0
  568. data/vendor/simdjson/dependencies/json/doc/examples/at__object_t_key_type.output +4 -0
  569. data/vendor/simdjson/dependencies/json/doc/examples/at__object_t_key_type_const.cpp +42 -0
  570. data/vendor/simdjson/dependencies/json/doc/examples/at__object_t_key_type_const.link +1 -0
  571. data/vendor/simdjson/dependencies/json/doc/examples/at__object_t_key_type_const.output +3 -0
  572. data/vendor/simdjson/dependencies/json/doc/examples/at__size_type.cpp +43 -0
  573. data/vendor/simdjson/dependencies/json/doc/examples/at__size_type.link +1 -0
  574. data/vendor/simdjson/dependencies/json/doc/examples/at__size_type.output +4 -0
  575. data/vendor/simdjson/dependencies/json/doc/examples/at__size_type_const.cpp +37 -0
  576. data/vendor/simdjson/dependencies/json/doc/examples/at__size_type_const.link +1 -0
  577. data/vendor/simdjson/dependencies/json/doc/examples/at__size_type_const.output +3 -0
  578. data/vendor/simdjson/dependencies/json/doc/examples/at_json_pointer.cpp +103 -0
  579. data/vendor/simdjson/dependencies/json/doc/examples/at_json_pointer.link +1 -0
  580. data/vendor/simdjson/dependencies/json/doc/examples/at_json_pointer.output +12 -0
  581. data/vendor/simdjson/dependencies/json/doc/examples/at_json_pointer_const.cpp +79 -0
  582. data/vendor/simdjson/dependencies/json/doc/examples/at_json_pointer_const.link +1 -0
  583. data/vendor/simdjson/dependencies/json/doc/examples/at_json_pointer_const.output +9 -0
  584. data/vendor/simdjson/dependencies/json/doc/examples/back.cpp +38 -0
  585. data/vendor/simdjson/dependencies/json/doc/examples/back.link +1 -0
  586. data/vendor/simdjson/dependencies/json/doc/examples/back.output +7 -0
  587. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__CompatibleType.cpp +218 -0
  588. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__CompatibleType.link +1 -0
  589. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__CompatibleType.output +39 -0
  590. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__InputIt_InputIt.cpp +32 -0
  591. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__InputIt_InputIt.link +1 -0
  592. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__InputIt_InputIt.output +4 -0
  593. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__basic_json.cpp +17 -0
  594. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__basic_json.link +1 -0
  595. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__basic_json.output +2 -0
  596. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__copyassignment.cpp +18 -0
  597. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__copyassignment.link +1 -0
  598. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__copyassignment.output +2 -0
  599. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__list_init_t.cpp +21 -0
  600. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__list_init_t.link +1 -0
  601. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__list_init_t.output +5 -0
  602. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__moveconstructor.cpp +17 -0
  603. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__moveconstructor.link +1 -0
  604. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__moveconstructor.output +2 -0
  605. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__nullptr_t.cpp +16 -0
  606. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__nullptr_t.link +1 -0
  607. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__nullptr_t.output +2 -0
  608. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__size_type_basic_json.cpp +18 -0
  609. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__size_type_basic_json.link +1 -0
  610. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__size_type_basic_json.output +3 -0
  611. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value.cpp +30 -0
  612. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value.link +1 -0
  613. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value.output +1 -0
  614. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value_ptr.cpp +30 -0
  615. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value_ptr.link +1 -0
  616. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value_ptr.output +1 -0
  617. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value_t.cpp +25 -0
  618. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value_t.link +1 -0
  619. data/vendor/simdjson/dependencies/json/doc/examples/basic_json__value_t.output +7 -0
  620. data/vendor/simdjson/dependencies/json/doc/examples/begin.cpp +16 -0
  621. data/vendor/simdjson/dependencies/json/doc/examples/begin.link +1 -0
  622. data/vendor/simdjson/dependencies/json/doc/examples/begin.output +1 -0
  623. data/vendor/simdjson/dependencies/json/doc/examples/cbegin.cpp +16 -0
  624. data/vendor/simdjson/dependencies/json/doc/examples/cbegin.link +1 -0
  625. data/vendor/simdjson/dependencies/json/doc/examples/cbegin.output +1 -0
  626. data/vendor/simdjson/dependencies/json/doc/examples/cend.cpp +19 -0
  627. data/vendor/simdjson/dependencies/json/doc/examples/cend.link +1 -0
  628. data/vendor/simdjson/dependencies/json/doc/examples/cend.output +1 -0
  629. data/vendor/simdjson/dependencies/json/doc/examples/clear.cpp +34 -0
  630. data/vendor/simdjson/dependencies/json/doc/examples/clear.link +1 -0
  631. data/vendor/simdjson/dependencies/json/doc/examples/clear.output +7 -0
  632. data/vendor/simdjson/dependencies/json/doc/examples/contains.cpp +17 -0
  633. data/vendor/simdjson/dependencies/json/doc/examples/contains.link +1 -0
  634. data/vendor/simdjson/dependencies/json/doc/examples/contains.output +3 -0
  635. data/vendor/simdjson/dependencies/json/doc/examples/contains_json_pointer.cpp +45 -0
  636. data/vendor/simdjson/dependencies/json/doc/examples/contains_json_pointer.link +1 -0
  637. data/vendor/simdjson/dependencies/json/doc/examples/contains_json_pointer.output +10 -0
  638. data/vendor/simdjson/dependencies/json/doc/examples/count.cpp +18 -0
  639. data/vendor/simdjson/dependencies/json/doc/examples/count.link +1 -0
  640. data/vendor/simdjson/dependencies/json/doc/examples/count.output +2 -0
  641. data/vendor/simdjson/dependencies/json/doc/examples/crbegin.cpp +16 -0
  642. data/vendor/simdjson/dependencies/json/doc/examples/crbegin.link +1 -0
  643. data/vendor/simdjson/dependencies/json/doc/examples/crbegin.output +1 -0
  644. data/vendor/simdjson/dependencies/json/doc/examples/crend.cpp +19 -0
  645. data/vendor/simdjson/dependencies/json/doc/examples/crend.link +1 -0
  646. data/vendor/simdjson/dependencies/json/doc/examples/crend.output +1 -0
  647. data/vendor/simdjson/dependencies/json/doc/examples/diff.cpp +36 -0
  648. data/vendor/simdjson/dependencies/json/doc/examples/diff.link +1 -0
  649. data/vendor/simdjson/dependencies/json/doc/examples/diff.output +25 -0
  650. data/vendor/simdjson/dependencies/json/doc/examples/dump.cpp +48 -0
  651. data/vendor/simdjson/dependencies/json/doc/examples/dump.link +1 -0
  652. data/vendor/simdjson/dependencies/json/doc/examples/dump.output +55 -0
  653. data/vendor/simdjson/dependencies/json/doc/examples/emplace.cpp +31 -0
  654. data/vendor/simdjson/dependencies/json/doc/examples/emplace.link +1 -0
  655. data/vendor/simdjson/dependencies/json/doc/examples/emplace.output +6 -0
  656. data/vendor/simdjson/dependencies/json/doc/examples/emplace_back.cpp +24 -0
  657. data/vendor/simdjson/dependencies/json/doc/examples/emplace_back.link +1 -0
  658. data/vendor/simdjson/dependencies/json/doc/examples/emplace_back.output +4 -0
  659. data/vendor/simdjson/dependencies/json/doc/examples/empty.cpp +30 -0
  660. data/vendor/simdjson/dependencies/json/doc/examples/empty.link +1 -0
  661. data/vendor/simdjson/dependencies/json/doc/examples/empty.output +9 -0
  662. data/vendor/simdjson/dependencies/json/doc/examples/end.cpp +19 -0
  663. data/vendor/simdjson/dependencies/json/doc/examples/end.link +1 -0
  664. data/vendor/simdjson/dependencies/json/doc/examples/end.output +1 -0
  665. data/vendor/simdjson/dependencies/json/doc/examples/erase__IteratorType.cpp +31 -0
  666. data/vendor/simdjson/dependencies/json/doc/examples/erase__IteratorType.link +1 -0
  667. data/vendor/simdjson/dependencies/json/doc/examples/erase__IteratorType.output +6 -0
  668. data/vendor/simdjson/dependencies/json/doc/examples/erase__IteratorType_IteratorType.cpp +31 -0
  669. data/vendor/simdjson/dependencies/json/doc/examples/erase__IteratorType_IteratorType.link +1 -0
  670. data/vendor/simdjson/dependencies/json/doc/examples/erase__IteratorType_IteratorType.output +6 -0
  671. data/vendor/simdjson/dependencies/json/doc/examples/erase__key_type.cpp +18 -0
  672. data/vendor/simdjson/dependencies/json/doc/examples/erase__key_type.link +1 -0
  673. data/vendor/simdjson/dependencies/json/doc/examples/erase__key_type.output +2 -0
  674. data/vendor/simdjson/dependencies/json/doc/examples/erase__size_type.cpp +16 -0
  675. data/vendor/simdjson/dependencies/json/doc/examples/erase__size_type.link +1 -0
  676. data/vendor/simdjson/dependencies/json/doc/examples/erase__size_type.output +1 -0
  677. data/vendor/simdjson/dependencies/json/doc/examples/exception.cpp +20 -0
  678. data/vendor/simdjson/dependencies/json/doc/examples/exception.link +1 -0
  679. data/vendor/simdjson/dependencies/json/doc/examples/exception.output +2 -0
  680. data/vendor/simdjson/dependencies/json/doc/examples/find__key_type.cpp +20 -0
  681. data/vendor/simdjson/dependencies/json/doc/examples/find__key_type.link +1 -0
  682. data/vendor/simdjson/dependencies/json/doc/examples/find__key_type.output +3 -0
  683. data/vendor/simdjson/dependencies/json/doc/examples/flatten.cpp +32 -0
  684. data/vendor/simdjson/dependencies/json/doc/examples/flatten.link +1 -0
  685. data/vendor/simdjson/dependencies/json/doc/examples/flatten.output +12 -0
  686. data/vendor/simdjson/dependencies/json/doc/examples/from_bson.cpp +21 -0
  687. data/vendor/simdjson/dependencies/json/doc/examples/from_bson.link +1 -0
  688. data/vendor/simdjson/dependencies/json/doc/examples/from_bson.output +4 -0
  689. data/vendor/simdjson/dependencies/json/doc/examples/from_cbor.cpp +20 -0
  690. data/vendor/simdjson/dependencies/json/doc/examples/from_cbor.link +1 -0
  691. data/vendor/simdjson/dependencies/json/doc/examples/from_cbor.output +4 -0
  692. data/vendor/simdjson/dependencies/json/doc/examples/from_msgpack.cpp +20 -0
  693. data/vendor/simdjson/dependencies/json/doc/examples/from_msgpack.link +1 -0
  694. data/vendor/simdjson/dependencies/json/doc/examples/from_msgpack.output +4 -0
  695. data/vendor/simdjson/dependencies/json/doc/examples/from_ubjson.cpp +20 -0
  696. data/vendor/simdjson/dependencies/json/doc/examples/from_ubjson.link +1 -0
  697. data/vendor/simdjson/dependencies/json/doc/examples/from_ubjson.output +4 -0
  698. data/vendor/simdjson/dependencies/json/doc/examples/front.cpp +29 -0
  699. data/vendor/simdjson/dependencies/json/doc/examples/front.link +1 -0
  700. data/vendor/simdjson/dependencies/json/doc/examples/front.output +6 -0
  701. data/vendor/simdjson/dependencies/json/doc/examples/get__PointerType.cpp +21 -0
  702. data/vendor/simdjson/dependencies/json/doc/examples/get__PointerType.link +1 -0
  703. data/vendor/simdjson/dependencies/json/doc/examples/get__PointerType.output +2 -0
  704. data/vendor/simdjson/dependencies/json/doc/examples/get__ValueType_const.cpp +50 -0
  705. data/vendor/simdjson/dependencies/json/doc/examples/get__ValueType_const.link +1 -0
  706. data/vendor/simdjson/dependencies/json/doc/examples/get__ValueType_const.output +11 -0
  707. data/vendor/simdjson/dependencies/json/doc/examples/get_ptr.cpp +21 -0
  708. data/vendor/simdjson/dependencies/json/doc/examples/get_ptr.link +1 -0
  709. data/vendor/simdjson/dependencies/json/doc/examples/get_ptr.output +2 -0
  710. data/vendor/simdjson/dependencies/json/doc/examples/get_ref.cpp +27 -0
  711. data/vendor/simdjson/dependencies/json/doc/examples/get_ref.link +1 -0
  712. data/vendor/simdjson/dependencies/json/doc/examples/get_ref.output +2 -0
  713. data/vendor/simdjson/dependencies/json/doc/examples/get_to.cpp +60 -0
  714. data/vendor/simdjson/dependencies/json/doc/examples/get_to.link +1 -0
  715. data/vendor/simdjson/dependencies/json/doc/examples/get_to.output +11 -0
  716. data/vendor/simdjson/dependencies/json/doc/examples/insert.cpp +17 -0
  717. data/vendor/simdjson/dependencies/json/doc/examples/insert.link +1 -0
  718. data/vendor/simdjson/dependencies/json/doc/examples/insert.output +2 -0
  719. data/vendor/simdjson/dependencies/json/doc/examples/insert__count.cpp +17 -0
  720. data/vendor/simdjson/dependencies/json/doc/examples/insert__count.link +1 -0
  721. data/vendor/simdjson/dependencies/json/doc/examples/insert__count.output +2 -0
  722. data/vendor/simdjson/dependencies/json/doc/examples/insert__ilist.cpp +17 -0
  723. data/vendor/simdjson/dependencies/json/doc/examples/insert__ilist.link +1 -0
  724. data/vendor/simdjson/dependencies/json/doc/examples/insert__ilist.output +2 -0
  725. data/vendor/simdjson/dependencies/json/doc/examples/insert__range.cpp +20 -0
  726. data/vendor/simdjson/dependencies/json/doc/examples/insert__range.link +1 -0
  727. data/vendor/simdjson/dependencies/json/doc/examples/insert__range.output +2 -0
  728. data/vendor/simdjson/dependencies/json/doc/examples/insert__range_object.cpp +21 -0
  729. data/vendor/simdjson/dependencies/json/doc/examples/insert__range_object.link +1 -0
  730. data/vendor/simdjson/dependencies/json/doc/examples/insert__range_object.output +3 -0
  731. data/vendor/simdjson/dependencies/json/doc/examples/invalid_iterator.cpp +21 -0
  732. data/vendor/simdjson/dependencies/json/doc/examples/invalid_iterator.link +1 -0
  733. data/vendor/simdjson/dependencies/json/doc/examples/invalid_iterator.output +2 -0
  734. data/vendor/simdjson/dependencies/json/doc/examples/is_array.cpp +28 -0
  735. data/vendor/simdjson/dependencies/json/doc/examples/is_array.link +1 -0
  736. data/vendor/simdjson/dependencies/json/doc/examples/is_array.output +8 -0
  737. data/vendor/simdjson/dependencies/json/doc/examples/is_boolean.cpp +28 -0
  738. data/vendor/simdjson/dependencies/json/doc/examples/is_boolean.link +1 -0
  739. data/vendor/simdjson/dependencies/json/doc/examples/is_boolean.output +8 -0
  740. data/vendor/simdjson/dependencies/json/doc/examples/is_discarded.cpp +28 -0
  741. data/vendor/simdjson/dependencies/json/doc/examples/is_discarded.link +1 -0
  742. data/vendor/simdjson/dependencies/json/doc/examples/is_discarded.output +8 -0
  743. data/vendor/simdjson/dependencies/json/doc/examples/is_null.cpp +28 -0
  744. data/vendor/simdjson/dependencies/json/doc/examples/is_null.link +1 -0
  745. data/vendor/simdjson/dependencies/json/doc/examples/is_null.output +8 -0
  746. data/vendor/simdjson/dependencies/json/doc/examples/is_number.cpp +28 -0
  747. data/vendor/simdjson/dependencies/json/doc/examples/is_number.link +1 -0
  748. data/vendor/simdjson/dependencies/json/doc/examples/is_number.output +8 -0
  749. data/vendor/simdjson/dependencies/json/doc/examples/is_number_float.cpp +28 -0
  750. data/vendor/simdjson/dependencies/json/doc/examples/is_number_float.link +1 -0
  751. data/vendor/simdjson/dependencies/json/doc/examples/is_number_float.output +8 -0
  752. data/vendor/simdjson/dependencies/json/doc/examples/is_number_integer.cpp +28 -0
  753. data/vendor/simdjson/dependencies/json/doc/examples/is_number_integer.link +1 -0
  754. data/vendor/simdjson/dependencies/json/doc/examples/is_number_integer.output +8 -0
  755. data/vendor/simdjson/dependencies/json/doc/examples/is_number_unsigned.cpp +28 -0
  756. data/vendor/simdjson/dependencies/json/doc/examples/is_number_unsigned.link +1 -0
  757. data/vendor/simdjson/dependencies/json/doc/examples/is_number_unsigned.output +8 -0
  758. data/vendor/simdjson/dependencies/json/doc/examples/is_object.cpp +28 -0
  759. data/vendor/simdjson/dependencies/json/doc/examples/is_object.link +1 -0
  760. data/vendor/simdjson/dependencies/json/doc/examples/is_object.output +8 -0
  761. data/vendor/simdjson/dependencies/json/doc/examples/is_primitive.cpp +28 -0
  762. data/vendor/simdjson/dependencies/json/doc/examples/is_primitive.link +1 -0
  763. data/vendor/simdjson/dependencies/json/doc/examples/is_primitive.output +8 -0
  764. data/vendor/simdjson/dependencies/json/doc/examples/is_string.cpp +28 -0
  765. data/vendor/simdjson/dependencies/json/doc/examples/is_string.link +1 -0
  766. data/vendor/simdjson/dependencies/json/doc/examples/is_string.output +8 -0
  767. data/vendor/simdjson/dependencies/json/doc/examples/is_structured.cpp +28 -0
  768. data/vendor/simdjson/dependencies/json/doc/examples/is_structured.link +1 -0
  769. data/vendor/simdjson/dependencies/json/doc/examples/is_structured.output +8 -0
  770. data/vendor/simdjson/dependencies/json/doc/examples/items.cpp +23 -0
  771. data/vendor/simdjson/dependencies/json/doc/examples/items.link +1 -0
  772. data/vendor/simdjson/dependencies/json/doc/examples/items.output +7 -0
  773. data/vendor/simdjson/dependencies/json/doc/examples/iterator_wrapper.cpp +23 -0
  774. data/vendor/simdjson/dependencies/json/doc/examples/iterator_wrapper.link +1 -0
  775. data/vendor/simdjson/dependencies/json/doc/examples/iterator_wrapper.output +7 -0
  776. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer.cpp +47 -0
  777. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer.link +1 -0
  778. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer.output +3 -0
  779. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__back.cpp +15 -0
  780. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__back.link +1 -0
  781. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__back.output +2 -0
  782. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__empty.cpp +20 -0
  783. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__empty.link +1 -0
  784. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__empty.output +4 -0
  785. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__operator_add.cpp +23 -0
  786. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__operator_add.link +1 -0
  787. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__operator_add.output +4 -0
  788. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__operator_add_binary.cpp +19 -0
  789. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__operator_add_binary.link +1 -0
  790. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__operator_add_binary.output +3 -0
  791. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__parent_pointer.cpp +18 -0
  792. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__parent_pointer.link +1 -0
  793. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__parent_pointer.output +3 -0
  794. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__pop_back.cpp +21 -0
  795. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__pop_back.link +1 -0
  796. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__pop_back.output +4 -0
  797. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__push_back.cpp +21 -0
  798. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__push_back.link +1 -0
  799. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__push_back.output +4 -0
  800. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__to_string.cpp +35 -0
  801. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__to_string.link +1 -0
  802. data/vendor/simdjson/dependencies/json/doc/examples/json_pointer__to_string.output +12 -0
  803. data/vendor/simdjson/dependencies/json/doc/examples/max_size.cpp +25 -0
  804. data/vendor/simdjson/dependencies/json/doc/examples/max_size.link +1 -0
  805. data/vendor/simdjson/dependencies/json/doc/examples/max_size.output +7 -0
  806. data/vendor/simdjson/dependencies/json/doc/examples/merge_patch.cpp +40 -0
  807. data/vendor/simdjson/dependencies/json/doc/examples/merge_patch.link +1 -0
  808. data/vendor/simdjson/dependencies/json/doc/examples/merge_patch.output +11 -0
  809. data/vendor/simdjson/dependencies/json/doc/examples/meta.cpp +11 -0
  810. data/vendor/simdjson/dependencies/json/doc/examples/meta.link +1 -0
  811. data/vendor/simdjson/dependencies/json/doc/examples/meta.output +17 -0
  812. data/vendor/simdjson/dependencies/json/doc/examples/object.cpp +28 -0
  813. data/vendor/simdjson/dependencies/json/doc/examples/object.link +1 -0
  814. data/vendor/simdjson/dependencies/json/doc/examples/object.output +4 -0
  815. data/vendor/simdjson/dependencies/json/doc/examples/operator__ValueType.cpp +60 -0
  816. data/vendor/simdjson/dependencies/json/doc/examples/operator__ValueType.link +1 -0
  817. data/vendor/simdjson/dependencies/json/doc/examples/operator__ValueType.output +12 -0
  818. data/vendor/simdjson/dependencies/json/doc/examples/operator__equal.cpp +24 -0
  819. data/vendor/simdjson/dependencies/json/doc/examples/operator__equal.link +1 -0
  820. data/vendor/simdjson/dependencies/json/doc/examples/operator__equal.output +4 -0
  821. data/vendor/simdjson/dependencies/json/doc/examples/operator__equal__nullptr_t.cpp +22 -0
  822. data/vendor/simdjson/dependencies/json/doc/examples/operator__equal__nullptr_t.link +1 -0
  823. data/vendor/simdjson/dependencies/json/doc/examples/operator__equal__nullptr_t.output +5 -0
  824. data/vendor/simdjson/dependencies/json/doc/examples/operator__greater.cpp +24 -0
  825. data/vendor/simdjson/dependencies/json/doc/examples/operator__greater.link +1 -0
  826. data/vendor/simdjson/dependencies/json/doc/examples/operator__greater.output +4 -0
  827. data/vendor/simdjson/dependencies/json/doc/examples/operator__greaterequal.cpp +24 -0
  828. data/vendor/simdjson/dependencies/json/doc/examples/operator__greaterequal.link +1 -0
  829. data/vendor/simdjson/dependencies/json/doc/examples/operator__greaterequal.output +4 -0
  830. data/vendor/simdjson/dependencies/json/doc/examples/operator__less.cpp +24 -0
  831. data/vendor/simdjson/dependencies/json/doc/examples/operator__less.link +1 -0
  832. data/vendor/simdjson/dependencies/json/doc/examples/operator__less.output +4 -0
  833. data/vendor/simdjson/dependencies/json/doc/examples/operator__lessequal.cpp +24 -0
  834. data/vendor/simdjson/dependencies/json/doc/examples/operator__lessequal.link +1 -0
  835. data/vendor/simdjson/dependencies/json/doc/examples/operator__lessequal.output +4 -0
  836. data/vendor/simdjson/dependencies/json/doc/examples/operator__notequal.cpp +24 -0
  837. data/vendor/simdjson/dependencies/json/doc/examples/operator__notequal.link +1 -0
  838. data/vendor/simdjson/dependencies/json/doc/examples/operator__notequal.output +4 -0
  839. data/vendor/simdjson/dependencies/json/doc/examples/operator__notequal__nullptr_t.cpp +22 -0
  840. data/vendor/simdjson/dependencies/json/doc/examples/operator__notequal__nullptr_t.link +1 -0
  841. data/vendor/simdjson/dependencies/json/doc/examples/operator__notequal__nullptr_t.output +5 -0
  842. data/vendor/simdjson/dependencies/json/doc/examples/operator__value_t.cpp +38 -0
  843. data/vendor/simdjson/dependencies/json/doc/examples/operator__value_t.link +1 -0
  844. data/vendor/simdjson/dependencies/json/doc/examples/operator__value_t.output +8 -0
  845. data/vendor/simdjson/dependencies/json/doc/examples/operator_deserialize.cpp +26 -0
  846. data/vendor/simdjson/dependencies/json/doc/examples/operator_deserialize.link +1 -0
  847. data/vendor/simdjson/dependencies/json/doc/examples/operator_deserialize.output +13 -0
  848. data/vendor/simdjson/dependencies/json/doc/examples/operator_serialize.cpp +21 -0
  849. data/vendor/simdjson/dependencies/json/doc/examples/operator_serialize.link +1 -0
  850. data/vendor/simdjson/dependencies/json/doc/examples/operator_serialize.output +22 -0
  851. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__key_type.cpp +32 -0
  852. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__key_type.link +1 -0
  853. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__key_type.output +19 -0
  854. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__key_type_const.cpp +16 -0
  855. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__key_type_const.link +1 -0
  856. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__key_type_const.output +1 -0
  857. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__size_type.cpp +25 -0
  858. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__size_type.link +1 -0
  859. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__size_type.output +3 -0
  860. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__size_type_const.cpp +13 -0
  861. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__size_type_const.link +1 -0
  862. data/vendor/simdjson/dependencies/json/doc/examples/operatorarray__size_type_const.output +1 -0
  863. data/vendor/simdjson/dependencies/json/doc/examples/operatorjson_pointer.cpp +48 -0
  864. data/vendor/simdjson/dependencies/json/doc/examples/operatorjson_pointer.link +1 -0
  865. data/vendor/simdjson/dependencies/json/doc/examples/operatorjson_pointer.output +8 -0
  866. data/vendor/simdjson/dependencies/json/doc/examples/operatorjson_pointer_const.cpp +24 -0
  867. data/vendor/simdjson/dependencies/json/doc/examples/operatorjson_pointer_const.link +1 -0
  868. data/vendor/simdjson/dependencies/json/doc/examples/operatorjson_pointer_const.output +4 -0
  869. data/vendor/simdjson/dependencies/json/doc/examples/other_error.cpp +29 -0
  870. data/vendor/simdjson/dependencies/json/doc/examples/other_error.link +1 -0
  871. data/vendor/simdjson/dependencies/json/doc/examples/other_error.output +2 -0
  872. data/vendor/simdjson/dependencies/json/doc/examples/out_of_range.cpp +20 -0
  873. data/vendor/simdjson/dependencies/json/doc/examples/out_of_range.link +1 -0
  874. data/vendor/simdjson/dependencies/json/doc/examples/out_of_range.output +2 -0
  875. data/vendor/simdjson/dependencies/json/doc/examples/parse__array__parser_callback_t.cpp +30 -0
  876. data/vendor/simdjson/dependencies/json/doc/examples/parse__array__parser_callback_t.link +1 -0
  877. data/vendor/simdjson/dependencies/json/doc/examples/parse__array__parser_callback_t.output +20 -0
  878. data/vendor/simdjson/dependencies/json/doc/examples/parse__contiguouscontainer__parser_callback_t.cpp +15 -0
  879. data/vendor/simdjson/dependencies/json/doc/examples/parse__contiguouscontainer__parser_callback_t.link +1 -0
  880. data/vendor/simdjson/dependencies/json/doc/examples/parse__contiguouscontainer__parser_callback_t.output +6 -0
  881. data/vendor/simdjson/dependencies/json/doc/examples/parse__istream__parser_callback_t.cpp +58 -0
  882. data/vendor/simdjson/dependencies/json/doc/examples/parse__istream__parser_callback_t.link +1 -0
  883. data/vendor/simdjson/dependencies/json/doc/examples/parse__istream__parser_callback_t.output +34 -0
  884. data/vendor/simdjson/dependencies/json/doc/examples/parse__iteratortype__parser_callback_t.cpp +15 -0
  885. data/vendor/simdjson/dependencies/json/doc/examples/parse__iteratortype__parser_callback_t.link +1 -0
  886. data/vendor/simdjson/dependencies/json/doc/examples/parse__iteratortype__parser_callback_t.output +6 -0
  887. data/vendor/simdjson/dependencies/json/doc/examples/parse__string__parser_callback_t.cpp +49 -0
  888. data/vendor/simdjson/dependencies/json/doc/examples/parse__string__parser_callback_t.link +1 -0
  889. data/vendor/simdjson/dependencies/json/doc/examples/parse__string__parser_callback_t.output +34 -0
  890. data/vendor/simdjson/dependencies/json/doc/examples/parse_error.cpp +20 -0
  891. data/vendor/simdjson/dependencies/json/doc/examples/parse_error.link +1 -0
  892. data/vendor/simdjson/dependencies/json/doc/examples/parse_error.output +3 -0
  893. data/vendor/simdjson/dependencies/json/doc/examples/patch.cpp +32 -0
  894. data/vendor/simdjson/dependencies/json/doc/examples/patch.link +1 -0
  895. data/vendor/simdjson/dependencies/json/doc/examples/patch.output +11 -0
  896. data/vendor/simdjson/dependencies/json/doc/examples/push_back.cpp +25 -0
  897. data/vendor/simdjson/dependencies/json/doc/examples/push_back.link +1 -0
  898. data/vendor/simdjson/dependencies/json/doc/examples/push_back.output +4 -0
  899. data/vendor/simdjson/dependencies/json/doc/examples/push_back__initializer_list.cpp +27 -0
  900. data/vendor/simdjson/dependencies/json/doc/examples/push_back__initializer_list.link +1 -0
  901. data/vendor/simdjson/dependencies/json/doc/examples/push_back__initializer_list.output +4 -0
  902. data/vendor/simdjson/dependencies/json/doc/examples/push_back__object_t__value.cpp +25 -0
  903. data/vendor/simdjson/dependencies/json/doc/examples/push_back__object_t__value.link +1 -0
  904. data/vendor/simdjson/dependencies/json/doc/examples/push_back__object_t__value.output +4 -0
  905. data/vendor/simdjson/dependencies/json/doc/examples/rbegin.cpp +16 -0
  906. data/vendor/simdjson/dependencies/json/doc/examples/rbegin.link +1 -0
  907. data/vendor/simdjson/dependencies/json/doc/examples/rbegin.output +1 -0
  908. data/vendor/simdjson/dependencies/json/doc/examples/rend.cpp +19 -0
  909. data/vendor/simdjson/dependencies/json/doc/examples/rend.link +1 -0
  910. data/vendor/simdjson/dependencies/json/doc/examples/rend.output +1 -0
  911. data/vendor/simdjson/dependencies/json/doc/examples/sax_parse.cpp +124 -0
  912. data/vendor/simdjson/dependencies/json/doc/examples/sax_parse.link +1 -0
  913. data/vendor/simdjson/dependencies/json/doc/examples/sax_parse.output +2 -0
  914. data/vendor/simdjson/dependencies/json/doc/examples/size.cpp +29 -0
  915. data/vendor/simdjson/dependencies/json/doc/examples/size.link +1 -0
  916. data/vendor/simdjson/dependencies/json/doc/examples/size.output +9 -0
  917. data/vendor/simdjson/dependencies/json/doc/examples/swap__array_t.cpp +20 -0
  918. data/vendor/simdjson/dependencies/json/doc/examples/swap__array_t.link +1 -0
  919. data/vendor/simdjson/dependencies/json/doc/examples/swap__array_t.output +2 -0
  920. data/vendor/simdjson/dependencies/json/doc/examples/swap__object_t.cpp +20 -0
  921. data/vendor/simdjson/dependencies/json/doc/examples/swap__object_t.link +1 -0
  922. data/vendor/simdjson/dependencies/json/doc/examples/swap__object_t.output +2 -0
  923. data/vendor/simdjson/dependencies/json/doc/examples/swap__reference.cpp +18 -0
  924. data/vendor/simdjson/dependencies/json/doc/examples/swap__reference.link +1 -0
  925. data/vendor/simdjson/dependencies/json/doc/examples/swap__reference.output +2 -0
  926. data/vendor/simdjson/dependencies/json/doc/examples/swap__string_t.cpp +20 -0
  927. data/vendor/simdjson/dependencies/json/doc/examples/swap__string_t.link +1 -0
  928. data/vendor/simdjson/dependencies/json/doc/examples/swap__string_t.output +2 -0
  929. data/vendor/simdjson/dependencies/json/doc/examples/to_bson.cpp +21 -0
  930. data/vendor/simdjson/dependencies/json/doc/examples/to_bson.link +1 -0
  931. data/vendor/simdjson/dependencies/json/doc/examples/to_bson.output +1 -0
  932. data/vendor/simdjson/dependencies/json/doc/examples/to_cbor.cpp +21 -0
  933. data/vendor/simdjson/dependencies/json/doc/examples/to_cbor.link +1 -0
  934. data/vendor/simdjson/dependencies/json/doc/examples/to_cbor.output +1 -0
  935. data/vendor/simdjson/dependencies/json/doc/examples/to_msgpack.cpp +21 -0
  936. data/vendor/simdjson/dependencies/json/doc/examples/to_msgpack.link +1 -0
  937. data/vendor/simdjson/dependencies/json/doc/examples/to_msgpack.output +1 -0
  938. data/vendor/simdjson/dependencies/json/doc/examples/to_ubjson.cpp +63 -0
  939. data/vendor/simdjson/dependencies/json/doc/examples/to_ubjson.link +1 -0
  940. data/vendor/simdjson/dependencies/json/doc/examples/to_ubjson.output +4 -0
  941. data/vendor/simdjson/dependencies/json/doc/examples/type.cpp +28 -0
  942. data/vendor/simdjson/dependencies/json/doc/examples/type.link +1 -0
  943. data/vendor/simdjson/dependencies/json/doc/examples/type.output +8 -0
  944. data/vendor/simdjson/dependencies/json/doc/examples/type_error.cpp +20 -0
  945. data/vendor/simdjson/dependencies/json/doc/examples/type_error.link +1 -0
  946. data/vendor/simdjson/dependencies/json/doc/examples/type_error.output +2 -0
  947. data/vendor/simdjson/dependencies/json/doc/examples/type_name.cpp +27 -0
  948. data/vendor/simdjson/dependencies/json/doc/examples/type_name.link +1 -0
  949. data/vendor/simdjson/dependencies/json/doc/examples/type_name.output +8 -0
  950. data/vendor/simdjson/dependencies/json/doc/examples/unflatten.cpp +26 -0
  951. data/vendor/simdjson/dependencies/json/doc/examples/unflatten.link +1 -0
  952. data/vendor/simdjson/dependencies/json/doc/examples/unflatten.output +18 -0
  953. data/vendor/simdjson/dependencies/json/doc/examples/update.cpp +18 -0
  954. data/vendor/simdjson/dependencies/json/doc/examples/update.link +1 -0
  955. data/vendor/simdjson/dependencies/json/doc/examples/update.output +5 -0
  956. data/vendor/simdjson/dependencies/json/doc/examples/update__range.cpp +18 -0
  957. data/vendor/simdjson/dependencies/json/doc/examples/update__range.link +1 -0
  958. data/vendor/simdjson/dependencies/json/doc/examples/update__range.output +5 -0
  959. data/vendor/simdjson/dependencies/json/doc/faq.md +87 -0
  960. data/vendor/simdjson/dependencies/json/doc/images/binary.png +0 -0
  961. data/vendor/simdjson/dependencies/json/doc/images/callback_events.png +0 -0
  962. data/vendor/simdjson/dependencies/json/doc/images/range-begin-end.svg +435 -0
  963. data/vendor/simdjson/dependencies/json/doc/images/range-rbegin-rend.svg +1232 -0
  964. data/vendor/simdjson/dependencies/json/doc/index.md +332 -0
  965. data/vendor/simdjson/dependencies/json/doc/json.gif +0 -0
  966. data/vendor/simdjson/dependencies/json/doc/scripts/git-update-ghpages +193 -0
  967. data/vendor/simdjson/dependencies/json/doc/scripts/send_to_wandbox.py +120 -0
  968. data/vendor/simdjson/dependencies/json/doc/usages/ios.png +0 -0
  969. data/vendor/simdjson/dependencies/json/doc/usages/macos.png +0 -0
  970. data/vendor/simdjson/dependencies/json/include/nlohmann/adl_serializer.hpp +49 -0
  971. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/conversions/from_json.hpp +389 -0
  972. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/conversions/to_chars.hpp +1106 -0
  973. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/conversions/to_json.hpp +344 -0
  974. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/exceptions.hpp +356 -0
  975. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/input/binary_reader.hpp +1983 -0
  976. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/input/input_adapters.hpp +442 -0
  977. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/input/json_sax.hpp +701 -0
  978. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/input/lexer.hpp +1512 -0
  979. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/input/parser.hpp +498 -0
  980. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/input/position_t.hpp +27 -0
  981. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/iterators/internal_iterator.hpp +25 -0
  982. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/iterators/iter_impl.hpp +638 -0
  983. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/iterators/iteration_proxy.hpp +170 -0
  984. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/iterators/iterator_traits.hpp +51 -0
  985. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +119 -0
  986. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/iterators/primitive_iterator.hpp +120 -0
  987. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/json_pointer.hpp +1011 -0
  988. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/json_ref.hpp +69 -0
  989. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/macro_scope.hpp +121 -0
  990. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/macro_unscope.hpp +21 -0
  991. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/meta/cpp_future.hpp +63 -0
  992. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/meta/detected.hpp +58 -0
  993. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/meta/is_sax.hpp +142 -0
  994. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/meta/type_traits.hpp +361 -0
  995. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/meta/void_t.hpp +13 -0
  996. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/output/binary_writer.hpp +1336 -0
  997. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/output/output_adapters.hpp +123 -0
  998. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/output/serializer.hpp +840 -0
  999. data/vendor/simdjson/dependencies/json/include/nlohmann/detail/value_t.hpp +77 -0
  1000. data/vendor/simdjson/dependencies/json/include/nlohmann/json.hpp +8134 -0
  1001. data/vendor/simdjson/dependencies/json/include/nlohmann/json_fwd.hpp +64 -0
  1002. data/vendor/simdjson/dependencies/json/include/nlohmann/thirdparty/hedley/hedley.hpp +1505 -0
  1003. data/vendor/simdjson/dependencies/json/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +121 -0
  1004. data/vendor/simdjson/dependencies/json/meson.build +23 -0
  1005. data/vendor/simdjson/dependencies/json/nlohmann_json.natvis +32 -0
  1006. data/vendor/simdjson/dependencies/json/single_include/nlohmann/json.hpp +22684 -0
  1007. data/vendor/simdjson/dependencies/json/test/CMakeLists.txt +150 -0
  1008. data/vendor/simdjson/dependencies/json/test/Makefile +110 -0
  1009. data/vendor/simdjson/dependencies/json/test/cmake_add_subdirectory/CMakeLists.txt +15 -0
  1010. data/vendor/simdjson/dependencies/json/test/cmake_add_subdirectory/project/CMakeLists.txt +13 -0
  1011. data/vendor/simdjson/dependencies/json/test/cmake_add_subdirectory/project/main.cpp +8 -0
  1012. data/vendor/simdjson/dependencies/json/test/cmake_import/CMakeLists.txt +15 -0
  1013. data/vendor/simdjson/dependencies/json/test/cmake_import/project/CMakeLists.txt +12 -0
  1014. data/vendor/simdjson/dependencies/json/test/cmake_import/project/main.cpp +8 -0
  1015. data/vendor/simdjson/dependencies/json/test/cmake_import_minver/CMakeLists.txt +15 -0
  1016. data/vendor/simdjson/dependencies/json/test/cmake_import_minver/project/CMakeLists.txt +8 -0
  1017. data/vendor/simdjson/dependencies/json/test/cmake_import_minver/project/main.cpp +8 -0
  1018. data/vendor/simdjson/dependencies/json/test/data/big-list-of-naughty-strings/LICENSE +22 -0
  1019. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test01 +1 -0
  1020. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test02 +0 -0
  1021. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test03 +0 -0
  1022. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test04 +0 -0
  1023. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test05 +0 -0
  1024. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test06 +0 -0
  1025. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test07 +0 -0
  1026. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test08 +0 -0
  1027. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test09 +0 -0
  1028. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test10 +1 -0
  1029. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test11 +0 -0
  1030. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test12 +0 -0
  1031. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test13 +0 -0
  1032. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test14 +0 -0
  1033. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test15 +0 -0
  1034. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test16 +0 -0
  1035. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test17 +0 -0
  1036. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test18 +0 -0
  1037. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test19 +0 -0
  1038. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test20 +0 -0
  1039. data/vendor/simdjson/dependencies/json/test/data/cbor_regression/test21 +0 -0
  1040. data/vendor/simdjson/dependencies/json/test/data/json-patch-tests/README.md +75 -0
  1041. data/vendor/simdjson/dependencies/json/test/data/json.org/1.json.bson +0 -0
  1042. data/vendor/simdjson/dependencies/json/test/data/json.org/1.json.cbor +1 -0
  1043. data/vendor/simdjson/dependencies/json/test/data/json.org/1.json.msgpack +0 -0
  1044. data/vendor/simdjson/dependencies/json/test/data/json.org/2.json.bson +0 -0
  1045. data/vendor/simdjson/dependencies/json/test/data/json.org/2.json.cbor +1 -0
  1046. data/vendor/simdjson/dependencies/json/test/data/json.org/2.json.msgpack +1 -0
  1047. data/vendor/simdjson/dependencies/json/test/data/json.org/3.json.bson +0 -0
  1048. data/vendor/simdjson/dependencies/json/test/data/json.org/3.json.cbor +1 -0
  1049. data/vendor/simdjson/dependencies/json/test/data/json.org/3.json.msgpack +0 -0
  1050. data/vendor/simdjson/dependencies/json/test/data/json.org/4.json.bson +0 -0
  1051. data/vendor/simdjson/dependencies/json/test/data/json.org/4.json.cbor +4 -0
  1052. data/vendor/simdjson/dependencies/json/test/data/json.org/4.json.msgpack +0 -0
  1053. data/vendor/simdjson/dependencies/json/test/data/json.org/5.json.bson +0 -0
  1054. data/vendor/simdjson/dependencies/json/test/data/json.org/5.json.cbor +1 -0
  1055. data/vendor/simdjson/dependencies/json/test/data/json.org/5.json.msgpack +0 -0
  1056. data/vendor/simdjson/dependencies/json/test/data/json_nlohmann_tests/all_unicode.json.cbor +0 -0
  1057. data/vendor/simdjson/dependencies/json/test/data/json_nlohmann_tests/all_unicode.json.msgpack +0 -0
  1058. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip01.json.cbor +1 -0
  1059. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip01.json.msgpack +1 -0
  1060. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip02.json.cbor +1 -0
  1061. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip02.json.msgpack +1 -0
  1062. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip03.json.cbor +1 -0
  1063. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip03.json.msgpack +1 -0
  1064. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip04.json.cbor +0 -0
  1065. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip04.json.msgpack +0 -0
  1066. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip05.json.cbor +1 -0
  1067. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip05.json.msgpack +1 -0
  1068. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip06.json.cbor +1 -0
  1069. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip06.json.msgpack +1 -0
  1070. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip07.json.cbor +1 -0
  1071. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip07.json.msgpack +1 -0
  1072. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip08.json.cbor +0 -0
  1073. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip08.json.msgpack +0 -0
  1074. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip09.json.cbor +1 -0
  1075. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip09.json.msgpack +1 -0
  1076. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip10.json.cbor +1 -0
  1077. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip10.json.msgpack +1 -0
  1078. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip11.json.cbor +1 -0
  1079. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip11.json.msgpack +1 -0
  1080. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip12.json.cbor +1 -0
  1081. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip12.json.msgpack +0 -0
  1082. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip13.json.cbor +1 -0
  1083. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip13.json.msgpack +1 -0
  1084. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip14.json.cbor +1 -0
  1085. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip14.json.msgpack +0 -0
  1086. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip15.json.cbor +1 -0
  1087. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip15.json.msgpack +1 -0
  1088. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip16.json.cbor +1 -0
  1089. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip16.json.msgpack +1 -0
  1090. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip17.json.cbor +1 -0
  1091. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip17.json.msgpack +1 -0
  1092. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip18.json.cbor +1 -0
  1093. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip18.json.msgpack +1 -0
  1094. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip19.json.cbor +1 -0
  1095. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip19.json.msgpack +1 -0
  1096. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip20.json.cbor +0 -0
  1097. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip20.json.msgpack +0 -0
  1098. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip21.json.cbor +0 -0
  1099. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip21.json.msgpack +0 -0
  1100. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip22.json.cbor +1 -0
  1101. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip22.json.msgpack +1 -0
  1102. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip23.json.cbor +1 -0
  1103. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip23.json.msgpack +1 -0
  1104. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip24.json.cbor +0 -0
  1105. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip24.json.msgpack +0 -0
  1106. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip25.json.cbor +0 -0
  1107. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip25.json.msgpack +0 -0
  1108. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip26.json.cbor +0 -0
  1109. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip26.json.msgpack +0 -0
  1110. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip27.json.cbor +1 -0
  1111. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip27.json.msgpack +1 -0
  1112. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip28.json.cbor +0 -0
  1113. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip28.json.msgpack +0 -0
  1114. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip29.json.cbor +0 -0
  1115. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip29.json.msgpack +0 -0
  1116. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip30.json.cbor +1 -0
  1117. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip30.json.msgpack +1 -0
  1118. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip31.json.cbor +1 -0
  1119. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip31.json.msgpack +1 -0
  1120. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip32.json.cbor +1 -0
  1121. data/vendor/simdjson/dependencies/json/test/data/json_roundtrip/roundtrip32.json.msgpack +1 -0
  1122. data/vendor/simdjson/dependencies/json/test/data/json_tests/pass1.json.cbor +0 -0
  1123. data/vendor/simdjson/dependencies/json/test/data/json_tests/pass1.json.msgpack +0 -0
  1124. data/vendor/simdjson/dependencies/json/test/data/json_tests/pass2.json.cbor +1 -0
  1125. data/vendor/simdjson/dependencies/json/test/data/json_tests/pass2.json.msgpack +1 -0
  1126. data/vendor/simdjson/dependencies/json/test/data/json_tests/pass3.json.bson +0 -0
  1127. data/vendor/simdjson/dependencies/json/test/data/json_tests/pass3.json.cbor +1 -0
  1128. data/vendor/simdjson/dependencies/json/test/data/json_tests/pass3.json.msgpack +1 -0
  1129. data/vendor/simdjson/dependencies/json/test/data/json_testsuite/README.md +10 -0
  1130. data/vendor/simdjson/dependencies/json/test/data/json_testsuite/sample.json.cbor +0 -0
  1131. data/vendor/simdjson/dependencies/json/test/data/json_testsuite/sample.json.msgpack +0 -0
  1132. data/vendor/simdjson/dependencies/json/test/data/markus_kuhn/UTF-8-test.txt +0 -0
  1133. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/LICENSE +21 -0
  1134. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_arraysWithSpaces.json.cbor +1 -0
  1135. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_arraysWithSpaces.json.msgpack +1 -0
  1136. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_empty-string.json.cbor +1 -0
  1137. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_empty-string.json.msgpack +1 -0
  1138. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_empty.json.cbor +1 -0
  1139. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_empty.json.msgpack +1 -0
  1140. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_ending_with_newline.json.cbor +1 -0
  1141. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_ending_with_newline.json.msgpack +1 -0
  1142. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_false.json.cbor +1 -0
  1143. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_false.json.msgpack +1 -0
  1144. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_heterogeneous.json.cbor +1 -0
  1145. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_heterogeneous.json.msgpack +1 -0
  1146. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_null.json.cbor +1 -0
  1147. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_null.json.msgpack +1 -0
  1148. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_with_1_and_newline.json.cbor +1 -0
  1149. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_with_1_and_newline.json.msgpack +1 -0
  1150. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_with_leading_space.json.cbor +1 -0
  1151. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_with_leading_space.json.msgpack +1 -0
  1152. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_with_several_null.json.cbor +1 -0
  1153. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_with_several_null.json.msgpack +1 -0
  1154. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_with_trailing_space.json.cbor +1 -0
  1155. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_array_with_trailing_space.json.msgpack +1 -0
  1156. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number.json.cbor +1 -0
  1157. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number.json.msgpack +1 -0
  1158. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_0e+1.json.cbor +0 -0
  1159. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_0e+1.json.msgpack +0 -0
  1160. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_0e1.json.cbor +0 -0
  1161. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_0e1.json.msgpack +0 -0
  1162. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_after_space.json.cbor +1 -0
  1163. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_after_space.json.msgpack +1 -0
  1164. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_double_close_to_zero.json.cbor +1 -0
  1165. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_double_close_to_zero.json.msgpack +1 -0
  1166. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_double_huge_neg_exp.json.cbor +0 -0
  1167. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_double_huge_neg_exp.json.msgpack +0 -0
  1168. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_huge_exp.json.cbor +0 -0
  1169. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_huge_exp.json.msgpack +0 -0
  1170. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_int_with_exp.json.cbor +0 -0
  1171. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_int_with_exp.json.msgpack +0 -0
  1172. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_minus_zero.json.cbor +0 -0
  1173. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_minus_zero.json.msgpack +0 -0
  1174. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_negative_int.json.cbor +1 -0
  1175. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_negative_int.json.msgpack +1 -0
  1176. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_negative_one.json.cbor +1 -0
  1177. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_negative_one.json.msgpack +1 -0
  1178. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_negative_zero.json.cbor +0 -0
  1179. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_negative_zero.json.msgpack +0 -0
  1180. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e.json.cbor +1 -0
  1181. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e.json.msgpack +1 -0
  1182. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e_neg_exp.json.cbor +1 -0
  1183. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e_neg_exp.json.msgpack +1 -0
  1184. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e_pos_exp.json.cbor +0 -0
  1185. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_capital_e_pos_exp.json.msgpack +0 -0
  1186. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_exponent.json.cbor +0 -0
  1187. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_exponent.json.msgpack +0 -0
  1188. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_fraction_exponent.json.cbor +1 -0
  1189. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_fraction_exponent.json.msgpack +1 -0
  1190. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_neg_exp.json.cbor +1 -0
  1191. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_neg_exp.json.msgpack +1 -0
  1192. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_neg_overflow.json.cbor +0 -0
  1193. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_neg_overflow.json.msgpack +0 -0
  1194. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_pos_exponent.json.cbor +0 -0
  1195. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_pos_exponent.json.msgpack +0 -0
  1196. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_pos_overflow.json.cbor +0 -0
  1197. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_pos_overflow.json.msgpack +0 -0
  1198. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_underflow.json.cbor +0 -0
  1199. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_real_underflow.json.msgpack +0 -0
  1200. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_simple_int.json.cbor +1 -0
  1201. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_simple_int.json.msgpack +1 -0
  1202. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_simple_real.json.cbor +1 -0
  1203. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_simple_real.json.msgpack +1 -0
  1204. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_number_too_big_neg_int.json.cbor +1 -0
  1205. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object.json.cbor +1 -0
  1206. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object.json.msgpack +1 -0
  1207. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_basic.json.cbor +1 -0
  1208. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_basic.json.msgpack +1 -0
  1209. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_duplicated_key.json.cbor +1 -0
  1210. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_duplicated_key.json.msgpack +1 -0
  1211. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_duplicated_key_and_value.json.cbor +1 -0
  1212. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_duplicated_key_and_value.json.msgpack +1 -0
  1213. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_empty.json.cbor +1 -0
  1214. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_empty.json.msgpack +1 -0
  1215. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_empty_key.json.cbor +0 -0
  1216. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_empty_key.json.msgpack +0 -0
  1217. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_escaped_null_in_key.json.cbor +0 -0
  1218. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_escaped_null_in_key.json.msgpack +0 -0
  1219. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_extreme_numbers.json.cbor +1 -0
  1220. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_extreme_numbers.json.msgpack +1 -0
  1221. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_long_strings.json.cbor +1 -0
  1222. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_long_strings.json.msgpack +0 -0
  1223. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_simple.json.cbor +1 -0
  1224. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_simple.json.msgpack +1 -0
  1225. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_string_unicode.json.cbor +1 -0
  1226. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_string_unicode.json.msgpack +0 -0
  1227. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_with_newlines.json.cbor +1 -0
  1228. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_object_with_newlines.json.msgpack +1 -0
  1229. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_1_2_3_bytes_UTF-8_sequences.json.cbor +1 -0
  1230. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_1_2_3_bytes_UTF-8_sequences.json.msgpack +1 -0
  1231. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_UTF-16_Surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json.cbor +1 -0
  1232. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_UTF-16_Surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF.json.msgpack +1 -0
  1233. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_accepted_surrogate_pair.json.cbor +1 -0
  1234. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_accepted_surrogate_pair.json.msgpack +1 -0
  1235. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_accepted_surrogate_pairs.json.cbor +1 -0
  1236. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_accepted_surrogate_pairs.json.msgpack +1 -0
  1237. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_allowed_escapes.json.cbor +2 -0
  1238. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_allowed_escapes.json.msgpack +2 -0
  1239. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_backslash_and_u_escaped_zero.json.cbor +1 -0
  1240. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_backslash_and_u_escaped_zero.json.msgpack +1 -0
  1241. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_backslash_doublequotes.json.cbor +1 -0
  1242. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_backslash_doublequotes.json.msgpack +1 -0
  1243. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_comments.json.cbor +1 -0
  1244. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_comments.json.msgpack +1 -0
  1245. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_double_escape_a.json.cbor +1 -0
  1246. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_double_escape_a.json.msgpack +1 -0
  1247. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_double_escape_n.json.cbor +1 -0
  1248. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_double_escape_n.json.msgpack +1 -0
  1249. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_escaped_control_character.json.cbor +1 -0
  1250. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_escaped_control_character.json.msgpack +1 -0
  1251. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_escaped_noncharacter.json.cbor +1 -0
  1252. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_escaped_noncharacter.json.msgpack +1 -0
  1253. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_in_array.json.cbor +1 -0
  1254. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_in_array.json.msgpack +1 -0
  1255. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_in_array_with_leading_space.json.cbor +1 -0
  1256. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_in_array_with_leading_space.json.msgpack +1 -0
  1257. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_last_surrogates_1_and_2.json.cbor +1 -0
  1258. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_last_surrogates_1_and_2.json.msgpack +1 -0
  1259. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_newline_uescaped.json.cbor +1 -0
  1260. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_newline_uescaped.json.msgpack +1 -0
  1261. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+10FFFF.json.cbor +1 -0
  1262. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+10FFFF.json.msgpack +1 -0
  1263. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+1FFFF.json.cbor +1 -0
  1264. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+1FFFF.json.msgpack +1 -0
  1265. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+FFFF.json.cbor +1 -0
  1266. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_nonCharacterInUTF-8_U+FFFF.json.msgpack +1 -0
  1267. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_null_escape.json.cbor +0 -0
  1268. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_null_escape.json.msgpack +0 -0
  1269. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_one-byte-utf-8.json.cbor +1 -0
  1270. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_one-byte-utf-8.json.msgpack +1 -0
  1271. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_pi.json.cbor +1 -0
  1272. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_pi.json.msgpack +1 -0
  1273. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_simple_ascii.json.cbor +1 -0
  1274. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_simple_ascii.json.msgpack +1 -0
  1275. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_space.json.cbor +1 -0
  1276. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_space.json.msgpack +1 -0
  1277. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_three-byte-utf-8.json.cbor +1 -0
  1278. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_three-byte-utf-8.json.msgpack +1 -0
  1279. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_two-byte-utf-8.json.cbor +1 -0
  1280. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_two-byte-utf-8.json.msgpack +1 -0
  1281. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_u+2028_line_sep.json.cbor +1 -0
  1282. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_u+2028_line_sep.json.msgpack +1 -0
  1283. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_u+2029_par_sep.json.cbor +1 -0
  1284. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_u+2029_par_sep.json.msgpack +1 -0
  1285. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_uEscape.json.cbor +1 -0
  1286. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_uEscape.json.msgpack +1 -0
  1287. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unescaped_char_delete.json.cbor +1 -0
  1288. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unescaped_char_delete.json.msgpack +1 -0
  1289. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode.json.cbor +1 -0
  1290. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode.json.msgpack +1 -0
  1291. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicodeEscapedBackslash.json.cbor +1 -0
  1292. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicodeEscapedBackslash.json.msgpack +1 -0
  1293. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode_2.json.cbor +1 -0
  1294. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode_2.json.msgpack +1 -0
  1295. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json.cbor +1 -0
  1296. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode_U+200B_ZERO_WIDTH_SPACE.json.msgpack +1 -0
  1297. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode_U+2064_invisible_plus.json.cbor +1 -0
  1298. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode_U+2064_invisible_plus.json.msgpack +1 -0
  1299. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode_escaped_double_quote.json.cbor +1 -0
  1300. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_unicode_escaped_double_quote.json.msgpack +1 -0
  1301. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_utf8.json.cbor +1 -0
  1302. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_utf8.json.msgpack +1 -0
  1303. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_with_del_character.json.cbor +1 -0
  1304. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_string_with_del_character.json.msgpack +1 -0
  1305. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_false.json.cbor +1 -0
  1306. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_false.json.msgpack +1 -0
  1307. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_int.json.cbor +1 -0
  1308. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_int.json.msgpack +1 -0
  1309. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_negative_real.json.cbor +1 -0
  1310. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_negative_real.json.msgpack +1 -0
  1311. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_null.json.cbor +1 -0
  1312. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_null.json.msgpack +1 -0
  1313. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_string.json.cbor +1 -0
  1314. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_string.json.msgpack +1 -0
  1315. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_true.json.cbor +1 -0
  1316. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_lonely_true.json.msgpack +1 -0
  1317. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_string_empty.json.cbor +1 -0
  1318. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_string_empty.json.msgpack +1 -0
  1319. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_trailing_newline.json.cbor +1 -0
  1320. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_trailing_newline.json.msgpack +1 -0
  1321. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_true_in_array.json.cbor +1 -0
  1322. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_true_in_array.json.msgpack +1 -0
  1323. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_whitespace_array.json.cbor +1 -0
  1324. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite/test_parsing/y_structure_whitespace_array.json.msgpack +1 -0
  1325. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite2/LICENSE +21 -0
  1326. data/vendor/simdjson/dependencies/json/test/data/nst_json_testsuite2/README.md +55 -0
  1327. data/vendor/simdjson/dependencies/json/test/data/regression/floats.json.cbor +0 -0
  1328. data/vendor/simdjson/dependencies/json/test/data/regression/floats.json.msgpack +0 -0
  1329. data/vendor/simdjson/dependencies/json/test/data/regression/signed_ints.json.cbor +0 -0
  1330. data/vendor/simdjson/dependencies/json/test/data/regression/signed_ints.json.msgpack +0 -0
  1331. data/vendor/simdjson/dependencies/json/test/data/regression/unsigned_ints.json.cbor +0 -0
  1332. data/vendor/simdjson/dependencies/json/test/data/regression/unsigned_ints.json.msgpack +0 -0
  1333. data/vendor/simdjson/dependencies/json/test/data/regression/working_file.json.cbor +1 -0
  1334. data/vendor/simdjson/dependencies/json/test/data/regression/working_file.json.msgpack +1 -0
  1335. data/vendor/simdjson/dependencies/json/test/reports/2016-08-29-fuzz/exec_speed.png +0 -0
  1336. data/vendor/simdjson/dependencies/json/test/reports/2016-08-29-fuzz/fuzz.tiff +0 -0
  1337. data/vendor/simdjson/dependencies/json/test/reports/2016-08-29-fuzz/high_freq.png +0 -0
  1338. data/vendor/simdjson/dependencies/json/test/reports/2016-08-29-fuzz/index.html +10 -0
  1339. data/vendor/simdjson/dependencies/json/test/reports/2016-08-29-fuzz/low_freq.png +0 -0
  1340. data/vendor/simdjson/dependencies/json/test/reports/2016-09-09-nativejson_benchmark/README.md +31 -0
  1341. data/vendor/simdjson/dependencies/json/test/reports/2016-09-09-nativejson_benchmark/conformance_Nlohmann (C++11).md +670 -0
  1342. data/vendor/simdjson/dependencies/json/test/reports/2016-09-09-nativejson_benchmark/conformance_overall_Result.png +0 -0
  1343. data/vendor/simdjson/dependencies/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_1._Parse_Memory_(byte).png +0 -0
  1344. data/vendor/simdjson/dependencies/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_1._Parse_Time_(ms).png +0 -0
  1345. data/vendor/simdjson/dependencies/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_2._Stringify_Time_(ms).png +0 -0
  1346. data/vendor/simdjson/dependencies/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_3._Prettify_Time_(ms).png +0 -0
  1347. data/vendor/simdjson/dependencies/json/test/reports/2016-09-09-nativejson_benchmark/performance_Corei7-4980HQ@2.80GHz_mac64_clang7.0_7._Code_size_FileSize_(byte).png +0 -0
  1348. data/vendor/simdjson/dependencies/json/test/reports/2016-10-02-fuzz/exec_speed.png +0 -0
  1349. data/vendor/simdjson/dependencies/json/test/reports/2016-10-02-fuzz/fuzz.tiff +0 -0
  1350. data/vendor/simdjson/dependencies/json/test/reports/2016-10-02-fuzz/high_freq.png +0 -0
  1351. data/vendor/simdjson/dependencies/json/test/reports/2016-10-02-fuzz/index.html +10 -0
  1352. data/vendor/simdjson/dependencies/json/test/reports/2016-10-02-fuzz/low_freq.png +0 -0
  1353. data/vendor/simdjson/dependencies/json/test/src/fuzzer-driver_afl.cpp +38 -0
  1354. data/vendor/simdjson/dependencies/json/test/src/fuzzer-parse_bson.cpp +73 -0
  1355. data/vendor/simdjson/dependencies/json/test/src/fuzzer-parse_cbor.cpp +68 -0
  1356. data/vendor/simdjson/dependencies/json/test/src/fuzzer-parse_json.cpp +69 -0
  1357. data/vendor/simdjson/dependencies/json/test/src/fuzzer-parse_msgpack.cpp +68 -0
  1358. data/vendor/simdjson/dependencies/json/test/src/fuzzer-parse_ubjson.cpp +68 -0
  1359. data/vendor/simdjson/dependencies/json/test/src/unit-algorithms.cpp +320 -0
  1360. data/vendor/simdjson/dependencies/json/test/src/unit-allocator.cpp +236 -0
  1361. data/vendor/simdjson/dependencies/json/test/src/unit-alt-string.cpp +264 -0
  1362. data/vendor/simdjson/dependencies/json/test/src/unit-bson.cpp +1254 -0
  1363. data/vendor/simdjson/dependencies/json/test/src/unit-capacity.cpp +563 -0
  1364. data/vendor/simdjson/dependencies/json/test/src/unit-cbor.cpp +2189 -0
  1365. data/vendor/simdjson/dependencies/json/test/src/unit-class_const_iterator.cpp +419 -0
  1366. data/vendor/simdjson/dependencies/json/test/src/unit-class_iterator.cpp +403 -0
  1367. data/vendor/simdjson/dependencies/json/test/src/unit-class_lexer.cpp +181 -0
  1368. data/vendor/simdjson/dependencies/json/test/src/unit-class_parser.cpp +1770 -0
  1369. data/vendor/simdjson/dependencies/json/test/src/unit-comparison.cpp +263 -0
  1370. data/vendor/simdjson/dependencies/json/test/src/unit-concepts.cpp +171 -0
  1371. data/vendor/simdjson/dependencies/json/test/src/unit-constructor1.cpp +1537 -0
  1372. data/vendor/simdjson/dependencies/json/test/src/unit-constructor2.cpp +192 -0
  1373. data/vendor/simdjson/dependencies/json/test/src/unit-convenience.cpp +117 -0
  1374. data/vendor/simdjson/dependencies/json/test/src/unit-conversions.cpp +1577 -0
  1375. data/vendor/simdjson/dependencies/json/test/src/unit-deserialization.cpp +1026 -0
  1376. data/vendor/simdjson/dependencies/json/test/src/unit-element_access1.cpp +974 -0
  1377. data/vendor/simdjson/dependencies/json/test/src/unit-element_access2.cpp +1109 -0
  1378. data/vendor/simdjson/dependencies/json/test/src/unit-inspection.cpp +442 -0
  1379. data/vendor/simdjson/dependencies/json/test/src/unit-items.cpp +1450 -0
  1380. data/vendor/simdjson/dependencies/json/test/src/unit-iterators1.cpp +1692 -0
  1381. data/vendor/simdjson/dependencies/json/test/src/unit-iterators2.cpp +906 -0
  1382. data/vendor/simdjson/dependencies/json/test/src/unit-json_patch.cpp +1295 -0
  1383. data/vendor/simdjson/dependencies/json/test/src/unit-json_pointer.cpp +646 -0
  1384. data/vendor/simdjson/dependencies/json/test/src/unit-merge_patch.cpp +262 -0
  1385. data/vendor/simdjson/dependencies/json/test/src/unit-meta.cpp +57 -0
  1386. data/vendor/simdjson/dependencies/json/test/src/unit-modifiers.cpp +941 -0
  1387. data/vendor/simdjson/dependencies/json/test/src/unit-msgpack.cpp +1607 -0
  1388. data/vendor/simdjson/dependencies/json/test/src/unit-noexcept.cpp +82 -0
  1389. data/vendor/simdjson/dependencies/json/test/src/unit-pointer_access.cpp +444 -0
  1390. data/vendor/simdjson/dependencies/json/test/src/unit-readme.cpp +327 -0
  1391. data/vendor/simdjson/dependencies/json/test/src/unit-reference_access.cpp +318 -0
  1392. data/vendor/simdjson/dependencies/json/test/src/unit-regression.cpp +1830 -0
  1393. data/vendor/simdjson/dependencies/json/test/src/unit-serialization.cpp +191 -0
  1394. data/vendor/simdjson/dependencies/json/test/src/unit-testsuites.cpp +1415 -0
  1395. data/vendor/simdjson/dependencies/json/test/src/unit-to_chars.cpp +537 -0
  1396. data/vendor/simdjson/dependencies/json/test/src/unit-ubjson.cpp +2295 -0
  1397. data/vendor/simdjson/dependencies/json/test/src/unit-udt.cpp +830 -0
  1398. data/vendor/simdjson/dependencies/json/test/src/unit-unicode.cpp +1610 -0
  1399. data/vendor/simdjson/dependencies/json/test/src/unit-wstring.cpp +117 -0
  1400. data/vendor/simdjson/dependencies/json/test/src/unit.cpp +31 -0
  1401. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/CMakeLists.txt +45 -0
  1402. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerCorpus.h +217 -0
  1403. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerCrossOver.cpp +52 -0
  1404. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerDefs.h +89 -0
  1405. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerDictionary.h +124 -0
  1406. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerDriver.cpp +545 -0
  1407. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerExtFunctions.def +50 -0
  1408. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerExtFunctions.h +35 -0
  1409. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerExtFunctionsDlsym.cpp +52 -0
  1410. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerExtFunctionsWeak.cpp +53 -0
  1411. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerExtFunctionsWeakAlias.cpp +56 -0
  1412. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerFlags.def +115 -0
  1413. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerIO.cpp +117 -0
  1414. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerIO.h +64 -0
  1415. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerIOPosix.cpp +88 -0
  1416. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerIOWindows.cpp +282 -0
  1417. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerInterface.h +67 -0
  1418. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerInternal.h +182 -0
  1419. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerLoop.cpp +792 -0
  1420. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerMain.cpp +21 -0
  1421. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerMerge.cpp +261 -0
  1422. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerMerge.h +70 -0
  1423. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerMutate.cpp +527 -0
  1424. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerMutate.h +145 -0
  1425. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerOptions.h +68 -0
  1426. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerRandom.h +36 -0
  1427. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerSHA1.cpp +222 -0
  1428. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerSHA1.h +33 -0
  1429. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerTracePC.cpp +339 -0
  1430. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerTracePC.h +158 -0
  1431. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerTraceState.cpp +325 -0
  1432. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerUtil.cpp +218 -0
  1433. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerUtil.h +72 -0
  1434. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerUtilDarwin.cpp +152 -0
  1435. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerUtilLinux.cpp +24 -0
  1436. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerUtilPosix.cpp +117 -0
  1437. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerUtilWindows.cpp +182 -0
  1438. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/FuzzerValueBitMap.h +87 -0
  1439. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/README.txt +2 -0
  1440. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/afl/afl_driver.cpp +295 -0
  1441. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/build.sh +10 -0
  1442. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/cxx.dict +122 -0
  1443. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/standalone/StandaloneFuzzTargetMain.c +41 -0
  1444. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/AFLDriverTest.cpp +22 -0
  1445. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/AbsNegAndConstant64Test.cpp +23 -0
  1446. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/AbsNegAndConstantTest.cpp +23 -0
  1447. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/AccumulateAllocationsTest.cpp +17 -0
  1448. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/BufferOverflowOnInput.cpp +23 -0
  1449. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/CMakeLists.txt +217 -0
  1450. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/CallerCalleeTest.cpp +59 -0
  1451. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/CounterTest.cpp +18 -0
  1452. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/CustomCrossOverTest.cpp +63 -0
  1453. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/CustomMutatorTest.cpp +38 -0
  1454. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/DSO1.cpp +12 -0
  1455. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/DSO2.cpp +12 -0
  1456. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/DSOTestExtra.cpp +11 -0
  1457. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/DSOTestMain.cpp +31 -0
  1458. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/DivTest.cpp +20 -0
  1459. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/EmptyTest.cpp +11 -0
  1460. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/FourIndependentBranchesTest.cpp +22 -0
  1461. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/FullCoverageSetTest.cpp +24 -0
  1462. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/FuzzerUnittest.cpp +738 -0
  1463. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/InitializeTest.cpp +28 -0
  1464. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/LeakTest.cpp +17 -0
  1465. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/LeakTimeoutTest.cpp +17 -0
  1466. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/LoadTest.cpp +22 -0
  1467. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/MemcmpTest.cpp +31 -0
  1468. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/NthRunCrashTest.cpp +18 -0
  1469. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/NullDerefOnEmptyTest.cpp +19 -0
  1470. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/NullDerefTest.cpp +26 -0
  1471. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/OneHugeAllocTest.cpp +28 -0
  1472. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/OutOfMemorySingleLargeMallocTest.cpp +27 -0
  1473. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/OutOfMemoryTest.cpp +31 -0
  1474. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/RepeatedBytesTest.cpp +29 -0
  1475. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/RepeatedMemcmp.cpp +22 -0
  1476. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/ShrinkControlFlowTest.cpp +28 -0
  1477. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/ShrinkValueProfileTest.cpp +22 -0
  1478. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SignedIntOverflowTest.cpp +28 -0
  1479. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SimpleCmpTest.cpp +46 -0
  1480. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SimpleDictionaryTest.cpp +29 -0
  1481. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SimpleHashTest.cpp +40 -0
  1482. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SimpleTest.cpp +27 -0
  1483. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SimpleThreadedTest.cpp +25 -0
  1484. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SingleMemcmpTest.cpp +17 -0
  1485. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SingleStrcmpTest.cpp +17 -0
  1486. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SingleStrncmpTest.cpp +17 -0
  1487. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SpamyTest.cpp +21 -0
  1488. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/StrcmpTest.cpp +32 -0
  1489. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/StrncmpOOBTest.cpp +21 -0
  1490. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/StrncmpTest.cpp +28 -0
  1491. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/StrstrTest.cpp +28 -0
  1492. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SwapCmpTest.cpp +34 -0
  1493. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/Switch2Test.cpp +35 -0
  1494. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/SwitchTest.cpp +58 -0
  1495. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/ThreadedLeakTest.cpp +18 -0
  1496. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/ThreadedTest.cpp +26 -0
  1497. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/TimeoutEmptyTest.cpp +14 -0
  1498. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/TimeoutTest.cpp +26 -0
  1499. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/TraceMallocTest.cpp +27 -0
  1500. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/UninstrumentedTest.cpp +11 -0
  1501. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/afl-driver-extra-stats.test +28 -0
  1502. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/afl-driver-stderr.test +10 -0
  1503. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/caller-callee.test +2 -0
  1504. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/coverage.test +19 -0
  1505. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/dict1.txt +4 -0
  1506. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/dump_coverage.test +16 -0
  1507. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-customcrossover.test +10 -0
  1508. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-custommutator.test +4 -0
  1509. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-dict.test +6 -0
  1510. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-dirs.test +15 -0
  1511. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-fdmask.test +30 -0
  1512. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-finalstats.test +11 -0
  1513. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-flags.test +10 -0
  1514. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-jobs.test +29 -0
  1515. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-leak.test +35 -0
  1516. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-oom-with-profile.test +6 -0
  1517. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-oom.test +11 -0
  1518. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-printcovpcs.test +8 -0
  1519. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-runs.test +8 -0
  1520. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-seed.test +3 -0
  1521. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-segv.test +5 -0
  1522. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-singleinputs.test +16 -0
  1523. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-threaded.test +7 -0
  1524. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-timeout.test +19 -0
  1525. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-traces-hooks.test +25 -0
  1526. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer-ubsan.test +4 -0
  1527. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/fuzzer.test +57 -0
  1528. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/hi.txt +1 -0
  1529. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/lit.cfg +29 -0
  1530. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/lit.site.cfg.in +4 -0
  1531. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/merge.test +46 -0
  1532. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/minimize_crash.test +6 -0
  1533. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/no-coverage/CMakeLists.txt +29 -0
  1534. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/repeated-bytes.test +2 -0
  1535. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/shrink.test +7 -0
  1536. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/simple-cmp.test +2 -0
  1537. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/standalone.test +4 -0
  1538. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/swap-cmp.test +2 -0
  1539. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/trace-malloc.test +10 -0
  1540. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/ubsan/CMakeLists.txt +15 -0
  1541. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/ulimit.test +2 -0
  1542. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/uninstrumented/CMakeLists.txt +16 -0
  1543. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/unit/lit.cfg +7 -0
  1544. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/unit/lit.site.cfg.in +2 -0
  1545. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-cmp.test +2 -0
  1546. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-cmp2.test +2 -0
  1547. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-cmp3.test +2 -0
  1548. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-cmp4.test +2 -0
  1549. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-div.test +3 -0
  1550. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-load.test +3 -0
  1551. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-mem.test +2 -0
  1552. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-set.test +3 -0
  1553. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-strcmp.test +2 -0
  1554. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-strncmp.test +2 -0
  1555. data/vendor/simdjson/dependencies/json/test/thirdparty/Fuzzer/test/value-profile-switch.test +3 -0
  1556. data/vendor/simdjson/dependencies/json/test/thirdparty/doctest/LICENSE.txt +21 -0
  1557. data/vendor/simdjson/dependencies/json/test/thirdparty/doctest/doctest.h +6025 -0
  1558. data/vendor/simdjson/dependencies/json/test/thirdparty/doctest/doctest_compatibility.h +37 -0
  1559. data/vendor/simdjson/dependencies/json/test/thirdparty/fastcov/LICENSE +21 -0
  1560. data/vendor/simdjson/dependencies/json/test/thirdparty/fastcov/README.md +46 -0
  1561. data/vendor/simdjson/dependencies/json/test/thirdparty/fastcov/fastcov.py +372 -0
  1562. data/vendor/simdjson/dependencies/json/test/thirdparty/fifo_map/LICENSE.MIT +21 -0
  1563. data/vendor/simdjson/dependencies/json/test/thirdparty/fifo_map/fifo_map.hpp +530 -0
  1564. data/vendor/simdjson/dependencies/json/test/thirdparty/imapdl/filterbr.py +109 -0
  1565. data/vendor/simdjson/dependencies/json/test/thirdparty/imapdl/gpl-3.0.txt +674 -0
  1566. data/vendor/simdjson/dependencies/json/third_party/amalgamate/CHANGES.md +10 -0
  1567. data/vendor/simdjson/dependencies/json/third_party/amalgamate/LICENSE.md +27 -0
  1568. data/vendor/simdjson/dependencies/json/third_party/amalgamate/README.md +66 -0
  1569. data/vendor/simdjson/dependencies/json/third_party/amalgamate/amalgamate.py +299 -0
  1570. data/vendor/simdjson/dependencies/json/third_party/cpplint/LICENSE +27 -0
  1571. data/vendor/simdjson/dependencies/json/third_party/cpplint/README.rst +80 -0
  1572. data/vendor/simdjson/dependencies/json/third_party/cpplint/cpplint.py +6583 -0
  1573. data/vendor/simdjson/dependencies/json/third_party/cpplint/update.sh +5 -0
  1574. data/vendor/simdjson/dependencies/json11/CMakeLists.txt +57 -0
  1575. data/vendor/simdjson/dependencies/json11/LICENSE.txt +19 -0
  1576. data/vendor/simdjson/dependencies/json11/Makefile +15 -0
  1577. data/vendor/simdjson/dependencies/json11/README.md +42 -0
  1578. data/vendor/simdjson/dependencies/json11/json11.cpp +788 -0
  1579. data/vendor/simdjson/dependencies/json11/json11.hpp +232 -0
  1580. data/vendor/simdjson/dependencies/json11/json11.pc.in +9 -0
  1581. data/vendor/simdjson/dependencies/json11/test.cpp +281 -0
  1582. data/vendor/simdjson/dependencies/jsoncpp/AUTHORS +111 -0
  1583. data/vendor/simdjson/dependencies/jsoncpp/CMakeLists.txt +186 -0
  1584. data/vendor/simdjson/dependencies/jsoncpp/CTestConfig.cmake +15 -0
  1585. data/vendor/simdjson/dependencies/jsoncpp/LICENSE +55 -0
  1586. data/vendor/simdjson/dependencies/jsoncpp/README.md +144 -0
  1587. data/vendor/simdjson/dependencies/jsoncpp/amalgamate.py +155 -0
  1588. data/vendor/simdjson/dependencies/jsoncpp/appveyor.yml +26 -0
  1589. data/vendor/simdjson/dependencies/jsoncpp/dev.makefile +35 -0
  1590. data/vendor/simdjson/dependencies/jsoncpp/devtools/__init__.py +6 -0
  1591. data/vendor/simdjson/dependencies/jsoncpp/devtools/antglob.py +205 -0
  1592. data/vendor/simdjson/dependencies/jsoncpp/devtools/batchbuild.py +278 -0
  1593. data/vendor/simdjson/dependencies/jsoncpp/devtools/fixeol.py +70 -0
  1594. data/vendor/simdjson/dependencies/jsoncpp/devtools/licenseupdater.py +94 -0
  1595. data/vendor/simdjson/dependencies/jsoncpp/devtools/tarball.py +52 -0
  1596. data/vendor/simdjson/dependencies/jsoncpp/doc/doxyfile.in +2302 -0
  1597. data/vendor/simdjson/dependencies/jsoncpp/doc/footer.html +21 -0
  1598. data/vendor/simdjson/dependencies/jsoncpp/doc/header.html +64 -0
  1599. data/vendor/simdjson/dependencies/jsoncpp/doc/jsoncpp.dox +164 -0
  1600. data/vendor/simdjson/dependencies/jsoncpp/doc/readme.txt +1 -0
  1601. data/vendor/simdjson/dependencies/jsoncpp/doc/roadmap.dox +3 -0
  1602. data/vendor/simdjson/dependencies/jsoncpp/doc/web_doxyfile.in +2290 -0
  1603. data/vendor/simdjson/dependencies/jsoncpp/doxybuild.py +189 -0
  1604. data/vendor/simdjson/dependencies/jsoncpp/include/CMakeLists.txt +2 -0
  1605. data/vendor/simdjson/dependencies/jsoncpp/include/json/allocator.h +89 -0
  1606. data/vendor/simdjson/dependencies/jsoncpp/include/json/assertions.h +59 -0
  1607. data/vendor/simdjson/dependencies/jsoncpp/include/json/autolink.h +25 -0
  1608. data/vendor/simdjson/dependencies/jsoncpp/include/json/config.h +198 -0
  1609. data/vendor/simdjson/dependencies/jsoncpp/include/json/features.h +61 -0
  1610. data/vendor/simdjson/dependencies/jsoncpp/include/json/forwards.h +37 -0
  1611. data/vendor/simdjson/dependencies/jsoncpp/include/json/json.h +15 -0
  1612. data/vendor/simdjson/dependencies/jsoncpp/include/json/reader.h +417 -0
  1613. data/vendor/simdjson/dependencies/jsoncpp/include/json/value.h +909 -0
  1614. data/vendor/simdjson/dependencies/jsoncpp/include/json/version.h +22 -0
  1615. data/vendor/simdjson/dependencies/jsoncpp/include/json/writer.h +368 -0
  1616. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2010/jsoncpp.sln +42 -0
  1617. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2010/jsontest.vcxproj +96 -0
  1618. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2010/jsontest.vcxproj.filters +13 -0
  1619. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2010/lib_json.vcxproj +143 -0
  1620. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2010/lib_json.vcxproj.filters +33 -0
  1621. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2010/test_lib_json.vcxproj +109 -0
  1622. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2010/test_lib_json.vcxproj.filters +24 -0
  1623. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2017/jsoncpp.sln +64 -0
  1624. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2017/jsontest.vcxproj +168 -0
  1625. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2017/lib_json.vcxproj +258 -0
  1626. data/vendor/simdjson/dependencies/jsoncpp/makefiles/msvc2017/test_lib_json.vcxproj +189 -0
  1627. data/vendor/simdjson/dependencies/jsoncpp/makefiles/vs71/jsoncpp.sln +46 -0
  1628. data/vendor/simdjson/dependencies/jsoncpp/makefiles/vs71/jsontest.vcproj +119 -0
  1629. data/vendor/simdjson/dependencies/jsoncpp/makefiles/vs71/lib_json.vcproj +205 -0
  1630. data/vendor/simdjson/dependencies/jsoncpp/makefiles/vs71/test_lib_json.vcproj +130 -0
  1631. data/vendor/simdjson/dependencies/jsoncpp/makerelease.py +390 -0
  1632. data/vendor/simdjson/dependencies/jsoncpp/meson.build +115 -0
  1633. data/vendor/simdjson/dependencies/jsoncpp/pkg-config/jsoncpp.pc.in +9 -0
  1634. data/vendor/simdjson/dependencies/jsoncpp/src/CMakeLists.txt +5 -0
  1635. data/vendor/simdjson/dependencies/jsoncpp/src/jsontestrunner/CMakeLists.txt +36 -0
  1636. data/vendor/simdjson/dependencies/jsoncpp/src/jsontestrunner/main.cpp +300 -0
  1637. data/vendor/simdjson/dependencies/jsoncpp/src/lib_json/CMakeLists.txt +145 -0
  1638. data/vendor/simdjson/dependencies/jsoncpp/src/lib_json/json_reader.cpp +2008 -0
  1639. data/vendor/simdjson/dependencies/jsoncpp/src/lib_json/json_tool.h +134 -0
  1640. data/vendor/simdjson/dependencies/jsoncpp/src/lib_json/json_value.cpp +1713 -0
  1641. data/vendor/simdjson/dependencies/jsoncpp/src/lib_json/json_valueiterator.inl +159 -0
  1642. data/vendor/simdjson/dependencies/jsoncpp/src/lib_json/json_writer.cpp +1253 -0
  1643. data/vendor/simdjson/dependencies/jsoncpp/src/lib_json/version.h.in +20 -0
  1644. data/vendor/simdjson/dependencies/jsoncpp/src/test_lib_json/CMakeLists.txt +40 -0
  1645. data/vendor/simdjson/dependencies/jsoncpp/src/test_lib_json/jsontest.cpp +435 -0
  1646. data/vendor/simdjson/dependencies/jsoncpp/src/test_lib_json/jsontest.h +276 -0
  1647. data/vendor/simdjson/dependencies/jsoncpp/src/test_lib_json/main.cpp +2597 -0
  1648. data/vendor/simdjson/dependencies/jsoncpp/test/cleantests.py +16 -0
  1649. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_array_01.expected +1 -0
  1650. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_array_02.expected +2 -0
  1651. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_array_03.expected +6 -0
  1652. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_array_04.expected +5 -0
  1653. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_array_05.expected +100 -0
  1654. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_array_06.expected +5 -0
  1655. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_array_07.expected +2122 -0
  1656. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_01.expected +1 -0
  1657. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_02.expected +1 -0
  1658. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_03.expected +3 -0
  1659. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_04.expected +2 -0
  1660. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_05.expected +2 -0
  1661. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_06.expected +2 -0
  1662. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_07.expected +2 -0
  1663. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_08.expected +3 -0
  1664. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_basic_09.expected +4 -0
  1665. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_comment_00.expected +4 -0
  1666. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_comment_01.expected +10 -0
  1667. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_comment_02.expected +23 -0
  1668. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_complex_01.expected +20 -0
  1669. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_integer_01.expected +2 -0
  1670. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_integer_02.expected +2 -0
  1671. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_integer_03.expected +2 -0
  1672. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_integer_04.expected +3 -0
  1673. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_integer_05.expected +2 -0
  1674. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_integer_06_64bits.expected +1 -0
  1675. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_integer_07_64bits.expected +1 -0
  1676. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_integer_08_64bits.expected +1 -0
  1677. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_large_01.expected +2122 -0
  1678. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_object_01.expected +1 -0
  1679. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_object_02.expected +2 -0
  1680. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_object_03.expected +4 -0
  1681. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_object_04.expected +2 -0
  1682. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_preserve_comment_01.expected +11 -0
  1683. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_01.expected +3 -0
  1684. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_02.expected +3 -0
  1685. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_03.expected +3 -0
  1686. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_04.expected +3 -0
  1687. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_05.expected +4 -0
  1688. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_06.expected +4 -0
  1689. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_07.expected +4 -0
  1690. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_08.expected +4 -0
  1691. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_09.expected +4 -0
  1692. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_10.expected +4 -0
  1693. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_11.expected +4 -0
  1694. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_real_12.expected +2 -0
  1695. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_01.expected +1 -0
  1696. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_02.expected +1 -0
  1697. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_03.expected +1 -0
  1698. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_04.expected +2 -0
  1699. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_05.expected +2 -0
  1700. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_unicode_01.expected +1 -0
  1701. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_unicode_02.expected +1 -0
  1702. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_unicode_03.expected +1 -0
  1703. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_unicode_04.expected +1 -0
  1704. data/vendor/simdjson/dependencies/jsoncpp/test/data/test_string_unicode_05.expected +2 -0
  1705. data/vendor/simdjson/dependencies/jsoncpp/test/generate_expected.py +17 -0
  1706. data/vendor/simdjson/dependencies/jsoncpp/test/jsonchecker/readme.txt +3 -0
  1707. data/vendor/simdjson/dependencies/jsoncpp/test/pyjsontestrunner.py +71 -0
  1708. data/vendor/simdjson/dependencies/jsoncpp/test/runjsontests.py +210 -0
  1709. data/vendor/simdjson/dependencies/jsoncpp/test/rununittests.py +84 -0
  1710. data/vendor/simdjson/dependencies/jsoncpp/version +1 -0
  1711. data/vendor/simdjson/dependencies/jsoncpp/version.in +1 -0
  1712. data/vendor/simdjson/dependencies/jsoncppdist/jsoncpp.cpp +8 -0
  1713. data/vendor/simdjson/dependencies/rapidjson/CHANGELOG.md +158 -0
  1714. data/vendor/simdjson/dependencies/rapidjson/CMakeLists.txt +221 -0
  1715. data/vendor/simdjson/dependencies/rapidjson/CMakeModules/FindGTestSrc.cmake +30 -0
  1716. data/vendor/simdjson/dependencies/rapidjson/RapidJSON.pc.in +7 -0
  1717. data/vendor/simdjson/dependencies/rapidjson/RapidJSONConfig.cmake.in +15 -0
  1718. data/vendor/simdjson/dependencies/rapidjson/RapidJSONConfigVersion.cmake.in +10 -0
  1719. data/vendor/simdjson/dependencies/rapidjson/appveyor.yml +41 -0
  1720. data/vendor/simdjson/dependencies/rapidjson/bin/data/readme.txt +1 -0
  1721. data/vendor/simdjson/dependencies/rapidjson/bin/draft-04/schema +150 -0
  1722. data/vendor/simdjson/dependencies/rapidjson/bin/jsonchecker/readme.txt +3 -0
  1723. data/vendor/simdjson/dependencies/rapidjson/bin/jsonschema/LICENSE +19 -0
  1724. data/vendor/simdjson/dependencies/rapidjson/bin/jsonschema/README.md +148 -0
  1725. data/vendor/simdjson/dependencies/rapidjson/bin/jsonschema/bin/jsonschema_suite +283 -0
  1726. data/vendor/simdjson/dependencies/rapidjson/bin/jsonschema/tox.ini +8 -0
  1727. data/vendor/simdjson/dependencies/rapidjson/bin/types/readme.txt +1 -0
  1728. data/vendor/simdjson/dependencies/rapidjson/contrib/natvis/LICENSE +45 -0
  1729. data/vendor/simdjson/dependencies/rapidjson/contrib/natvis/README.md +7 -0
  1730. data/vendor/simdjson/dependencies/rapidjson/contrib/natvis/rapidjson.natvis +38 -0
  1731. data/vendor/simdjson/dependencies/rapidjson/doc/CMakeLists.txt +27 -0
  1732. data/vendor/simdjson/dependencies/rapidjson/doc/Doxyfile.in +2369 -0
  1733. data/vendor/simdjson/dependencies/rapidjson/doc/Doxyfile.zh-cn.in +2369 -0
  1734. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/architecture.dot +50 -0
  1735. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/architecture.png +0 -0
  1736. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/insituparsing.dot +65 -0
  1737. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/insituparsing.png +0 -0
  1738. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +62 -0
  1739. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/iterative-parser-states-diagram.png +0 -0
  1740. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/makefile +8 -0
  1741. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/move1.dot +47 -0
  1742. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/move1.png +0 -0
  1743. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/move2.dot +62 -0
  1744. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/move2.png +0 -0
  1745. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/move3.dot +60 -0
  1746. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/move3.png +0 -0
  1747. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/normalparsing.dot +56 -0
  1748. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/normalparsing.png +0 -0
  1749. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/simpledom.dot +54 -0
  1750. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/simpledom.png +0 -0
  1751. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/tutorial.dot +58 -0
  1752. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/tutorial.png +0 -0
  1753. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/utilityclass.dot +73 -0
  1754. data/vendor/simdjson/dependencies/rapidjson/doc/diagram/utilityclass.png +0 -0
  1755. data/vendor/simdjson/dependencies/rapidjson/doc/dom.md +280 -0
  1756. data/vendor/simdjson/dependencies/rapidjson/doc/dom.zh-cn.md +284 -0
  1757. data/vendor/simdjson/dependencies/rapidjson/doc/encoding.md +146 -0
  1758. data/vendor/simdjson/dependencies/rapidjson/doc/encoding.zh-cn.md +152 -0
  1759. data/vendor/simdjson/dependencies/rapidjson/doc/faq.md +289 -0
  1760. data/vendor/simdjson/dependencies/rapidjson/doc/faq.zh-cn.md +290 -0
  1761. data/vendor/simdjson/dependencies/rapidjson/doc/features.md +104 -0
  1762. data/vendor/simdjson/dependencies/rapidjson/doc/features.zh-cn.md +103 -0
  1763. data/vendor/simdjson/dependencies/rapidjson/doc/internals.md +368 -0
  1764. data/vendor/simdjson/dependencies/rapidjson/doc/internals.zh-cn.md +363 -0
  1765. data/vendor/simdjson/dependencies/rapidjson/doc/logo/rapidjson.png +0 -0
  1766. data/vendor/simdjson/dependencies/rapidjson/doc/logo/rapidjson.svg +119 -0
  1767. data/vendor/simdjson/dependencies/rapidjson/doc/misc/DoxygenLayout.xml +194 -0
  1768. data/vendor/simdjson/dependencies/rapidjson/doc/misc/doxygenextra.css +274 -0
  1769. data/vendor/simdjson/dependencies/rapidjson/doc/misc/footer.html +11 -0
  1770. data/vendor/simdjson/dependencies/rapidjson/doc/misc/header.html +24 -0
  1771. data/vendor/simdjson/dependencies/rapidjson/doc/npm.md +31 -0
  1772. data/vendor/simdjson/dependencies/rapidjson/doc/performance.md +26 -0
  1773. data/vendor/simdjson/dependencies/rapidjson/doc/performance.zh-cn.md +26 -0
  1774. data/vendor/simdjson/dependencies/rapidjson/doc/pointer.md +234 -0
  1775. data/vendor/simdjson/dependencies/rapidjson/doc/pointer.zh-cn.md +234 -0
  1776. data/vendor/simdjson/dependencies/rapidjson/doc/sax.md +509 -0
  1777. data/vendor/simdjson/dependencies/rapidjson/doc/sax.zh-cn.md +487 -0
  1778. data/vendor/simdjson/dependencies/rapidjson/doc/schema.md +505 -0
  1779. data/vendor/simdjson/dependencies/rapidjson/doc/schema.zh-cn.md +237 -0
  1780. data/vendor/simdjson/dependencies/rapidjson/doc/stream.md +429 -0
  1781. data/vendor/simdjson/dependencies/rapidjson/doc/stream.zh-cn.md +429 -0
  1782. data/vendor/simdjson/dependencies/rapidjson/doc/tutorial.md +536 -0
  1783. data/vendor/simdjson/dependencies/rapidjson/doc/tutorial.zh-cn.md +534 -0
  1784. data/vendor/simdjson/dependencies/rapidjson/docker/debian/Dockerfile +8 -0
  1785. data/vendor/simdjson/dependencies/rapidjson/example/CMakeLists.txt +45 -0
  1786. data/vendor/simdjson/dependencies/rapidjson/example/archiver/archiver.cpp +292 -0
  1787. data/vendor/simdjson/dependencies/rapidjson/example/archiver/archiver.h +145 -0
  1788. data/vendor/simdjson/dependencies/rapidjson/example/archiver/archivertest.cpp +287 -0
  1789. data/vendor/simdjson/dependencies/rapidjson/example/capitalize/capitalize.cpp +67 -0
  1790. data/vendor/simdjson/dependencies/rapidjson/example/condense/condense.cpp +32 -0
  1791. data/vendor/simdjson/dependencies/rapidjson/example/filterkey/filterkey.cpp +135 -0
  1792. data/vendor/simdjson/dependencies/rapidjson/example/filterkeydom/filterkeydom.cpp +170 -0
  1793. data/vendor/simdjson/dependencies/rapidjson/example/jsonx/jsonx.cpp +207 -0
  1794. data/vendor/simdjson/dependencies/rapidjson/example/lookaheadparser/lookaheadparser.cpp +350 -0
  1795. data/vendor/simdjson/dependencies/rapidjson/example/messagereader/messagereader.cpp +105 -0
  1796. data/vendor/simdjson/dependencies/rapidjson/example/parsebyparts/parsebyparts.cpp +176 -0
  1797. data/vendor/simdjson/dependencies/rapidjson/example/pretty/pretty.cpp +30 -0
  1798. data/vendor/simdjson/dependencies/rapidjson/example/prettyauto/prettyauto.cpp +56 -0
  1799. data/vendor/simdjson/dependencies/rapidjson/example/schemavalidator/schemavalidator.cpp +78 -0
  1800. data/vendor/simdjson/dependencies/rapidjson/example/serialize/serialize.cpp +173 -0
  1801. data/vendor/simdjson/dependencies/rapidjson/example/simpledom/simpledom.cpp +29 -0
  1802. data/vendor/simdjson/dependencies/rapidjson/example/simplepullreader/simplepullreader.cpp +53 -0
  1803. data/vendor/simdjson/dependencies/rapidjson/example/simplereader/simplereader.cpp +42 -0
  1804. data/vendor/simdjson/dependencies/rapidjson/example/simplewriter/simplewriter.cpp +36 -0
  1805. data/vendor/simdjson/dependencies/rapidjson/example/tutorial/tutorial.cpp +151 -0
  1806. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/allocators.h +284 -0
  1807. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/cursorstreamwrapper.h +78 -0
  1808. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/document.h +2658 -0
  1809. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/encodedstream.h +299 -0
  1810. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/encodings.h +716 -0
  1811. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/error/en.h +74 -0
  1812. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/error/error.h +161 -0
  1813. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/filereadstream.h +99 -0
  1814. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/filewritestream.h +104 -0
  1815. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/fwd.h +151 -0
  1816. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/biginteger.h +290 -0
  1817. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/diyfp.h +258 -0
  1818. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/dtoa.h +245 -0
  1819. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/ieee754.h +78 -0
  1820. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/itoa.h +309 -0
  1821. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/meta.h +186 -0
  1822. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/pow10.h +55 -0
  1823. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/regex.h +732 -0
  1824. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/stack.h +231 -0
  1825. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/strfunc.h +69 -0
  1826. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/strtod.h +269 -0
  1827. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/internal/swap.h +46 -0
  1828. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/istreamwrapper.h +113 -0
  1829. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/memorybuffer.h +70 -0
  1830. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/memorystream.h +71 -0
  1831. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/msinttypes/inttypes.h +316 -0
  1832. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/msinttypes/stdint.h +300 -0
  1833. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/ostreamwrapper.h +81 -0
  1834. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/pointer.h +1357 -0
  1835. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/prettywriter.h +277 -0
  1836. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/rapidjson.h +628 -0
  1837. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/reader.h +2216 -0
  1838. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/schema.h +2483 -0
  1839. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/stream.h +223 -0
  1840. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/stringbuffer.h +121 -0
  1841. data/vendor/simdjson/dependencies/rapidjson/include/rapidjson/writer.h +710 -0
  1842. data/vendor/simdjson/dependencies/rapidjson/include_dirs.js +2 -0
  1843. data/vendor/simdjson/dependencies/rapidjson/license.txt +57 -0
  1844. data/vendor/simdjson/dependencies/rapidjson/rapidjson.autopkg +77 -0
  1845. data/vendor/simdjson/dependencies/rapidjson/readme.md +160 -0
  1846. data/vendor/simdjson/dependencies/rapidjson/readme.zh-cn.md +152 -0
  1847. data/vendor/simdjson/dependencies/rapidjson/test/CMakeLists.txt +20 -0
  1848. data/vendor/simdjson/dependencies/rapidjson/test/perftest/CMakeLists.txt +28 -0
  1849. data/vendor/simdjson/dependencies/rapidjson/test/perftest/misctest.cpp +974 -0
  1850. data/vendor/simdjson/dependencies/rapidjson/test/perftest/perftest.cpp +24 -0
  1851. data/vendor/simdjson/dependencies/rapidjson/test/perftest/perftest.h +185 -0
  1852. data/vendor/simdjson/dependencies/rapidjson/test/perftest/platformtest.cpp +166 -0
  1853. data/vendor/simdjson/dependencies/rapidjson/test/perftest/rapidjsontest.cpp +472 -0
  1854. data/vendor/simdjson/dependencies/rapidjson/test/perftest/schematest.cpp +216 -0
  1855. data/vendor/simdjson/dependencies/rapidjson/test/unittest/CMakeLists.txt +92 -0
  1856. data/vendor/simdjson/dependencies/rapidjson/test/unittest/allocatorstest.cpp +102 -0
  1857. data/vendor/simdjson/dependencies/rapidjson/test/unittest/bigintegertest.cpp +133 -0
  1858. data/vendor/simdjson/dependencies/rapidjson/test/unittest/cursorstreamwrappertest.cpp +115 -0
  1859. data/vendor/simdjson/dependencies/rapidjson/test/unittest/documenttest.cpp +672 -0
  1860. data/vendor/simdjson/dependencies/rapidjson/test/unittest/dtoatest.cpp +98 -0
  1861. data/vendor/simdjson/dependencies/rapidjson/test/unittest/encodedstreamtest.cpp +313 -0
  1862. data/vendor/simdjson/dependencies/rapidjson/test/unittest/encodingstest.cpp +451 -0
  1863. data/vendor/simdjson/dependencies/rapidjson/test/unittest/filestreamtest.cpp +112 -0
  1864. data/vendor/simdjson/dependencies/rapidjson/test/unittest/fwdtest.cpp +230 -0
  1865. data/vendor/simdjson/dependencies/rapidjson/test/unittest/istreamwrappertest.cpp +181 -0
  1866. data/vendor/simdjson/dependencies/rapidjson/test/unittest/itoatest.cpp +160 -0
  1867. data/vendor/simdjson/dependencies/rapidjson/test/unittest/jsoncheckertest.cpp +143 -0
  1868. data/vendor/simdjson/dependencies/rapidjson/test/unittest/namespacetest.cpp +70 -0
  1869. data/vendor/simdjson/dependencies/rapidjson/test/unittest/ostreamwrappertest.cpp +92 -0
  1870. data/vendor/simdjson/dependencies/rapidjson/test/unittest/pointertest.cpp +1529 -0
  1871. data/vendor/simdjson/dependencies/rapidjson/test/unittest/prettywritertest.cpp +344 -0
  1872. data/vendor/simdjson/dependencies/rapidjson/test/unittest/readertest.cpp +1895 -0
  1873. data/vendor/simdjson/dependencies/rapidjson/test/unittest/regextest.cpp +638 -0
  1874. data/vendor/simdjson/dependencies/rapidjson/test/unittest/schematest.cpp +2045 -0
  1875. data/vendor/simdjson/dependencies/rapidjson/test/unittest/simdtest.cpp +219 -0
  1876. data/vendor/simdjson/dependencies/rapidjson/test/unittest/strfunctest.cpp +30 -0
  1877. data/vendor/simdjson/dependencies/rapidjson/test/unittest/stringbuffertest.cpp +192 -0
  1878. data/vendor/simdjson/dependencies/rapidjson/test/unittest/strtodtest.cpp +132 -0
  1879. data/vendor/simdjson/dependencies/rapidjson/test/unittest/unittest.cpp +51 -0
  1880. data/vendor/simdjson/dependencies/rapidjson/test/unittest/unittest.h +140 -0
  1881. data/vendor/simdjson/dependencies/rapidjson/test/unittest/valuetest.cpp +1851 -0
  1882. data/vendor/simdjson/dependencies/rapidjson/test/unittest/writertest.cpp +598 -0
  1883. data/vendor/simdjson/dependencies/rapidjson/test/valgrind.supp +17 -0
  1884. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/CMakeLists.txt +16 -0
  1885. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/README.md +141 -0
  1886. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/CHANGES +126 -0
  1887. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +202 -0
  1888. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/CONTRIBUTORS +40 -0
  1889. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/LICENSE +28 -0
  1890. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/Makefile.am +224 -0
  1891. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/README.md +333 -0
  1892. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/configure.ac +146 -0
  1893. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +562 -0
  1894. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +3675 -0
  1895. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/DesignDoc.md +280 -0
  1896. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/DevGuide.md +132 -0
  1897. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +12 -0
  1898. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +439 -0
  1899. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +628 -0
  1900. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/KnownIssues.md +19 -0
  1901. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CheatSheet.md +525 -0
  1902. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CookBook.md +3250 -0
  1903. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/Documentation.md +11 -0
  1904. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/ForDummies.md +439 -0
  1905. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/FrequentlyAskedQuestions.md +624 -0
  1906. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CheatSheet.md +534 -0
  1907. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CookBook.md +3342 -0
  1908. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/Documentation.md +12 -0
  1909. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/ForDummies.md +439 -0
  1910. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/FrequentlyAskedQuestions.md +628 -0
  1911. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CheatSheet.md +556 -0
  1912. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CookBook.md +3432 -0
  1913. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/Documentation.md +12 -0
  1914. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/ForDummies.md +439 -0
  1915. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/FrequentlyAskedQuestions.md +628 -0
  1916. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +1205 -0
  1917. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-cardinalities.h +147 -0
  1918. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +2377 -0
  1919. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +794 -0
  1920. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +1095 -0
  1921. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +291 -0
  1922. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +2179 -0
  1923. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +672 -0
  1924. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +397 -0
  1925. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +161 -0
  1926. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +4399 -0
  1927. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-actions.h +246 -0
  1928. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +58 -0
  1929. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +1847 -0
  1930. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +94 -0
  1931. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +8 -0
  1932. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +10 -0
  1933. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +39 -0
  1934. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-port.h +46 -0
  1935. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +279 -0
  1936. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +136 -0
  1937. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +511 -0
  1938. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +91 -0
  1939. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/make/Makefile +101 -0
  1940. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.sln +32 -0
  1941. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.vcproj +191 -0
  1942. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_config.vsprops +15 -0
  1943. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_main.vcproj +187 -0
  1944. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_test.vcproj +201 -0
  1945. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +32 -0
  1946. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +82 -0
  1947. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +19 -0
  1948. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +88 -0
  1949. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +101 -0
  1950. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +32 -0
  1951. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +84 -0
  1952. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_config.props +19 -0
  1953. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +90 -0
  1954. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +103 -0
  1955. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +240 -0
  1956. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/LICENSE +203 -0
  1957. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +35 -0
  1958. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README.cppclean +115 -0
  1959. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  1960. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +1733 -0
  1961. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class.py +227 -0
  1962. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class_test.py +448 -0
  1963. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/keywords.py +59 -0
  1964. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/tokenize.py +287 -0
  1965. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/utils.py +41 -0
  1966. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/generator/gmock_gen.py +31 -0
  1967. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/gmock-config.in +303 -0
  1968. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/gmock_doctor.py +640 -0
  1969. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/upload.py +1387 -0
  1970. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/scripts/upload_gmock.py +78 -0
  1971. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/src/gmock-all.cc +47 -0
  1972. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +156 -0
  1973. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +174 -0
  1974. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +498 -0
  1975. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +823 -0
  1976. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +183 -0
  1977. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/src/gmock_main.cc +54 -0
  1978. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +1411 -0
  1979. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +428 -0
  1980. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +1228 -0
  1981. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +622 -0
  1982. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +127 -0
  1983. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +1286 -0
  1984. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +699 -0
  1985. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +5648 -0
  1986. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +708 -0
  1987. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +424 -0
  1988. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-port_test.cc +43 -0
  1989. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +2644 -0
  1990. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_all_test.cc +51 -0
  1991. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_ex_test.cc +81 -0
  1992. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test.py +108 -0
  1993. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test_.cc +100 -0
  1994. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +40 -0
  1995. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +40 -0
  1996. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +669 -0
  1997. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +180 -0
  1998. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +291 -0
  1999. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +310 -0
  2000. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +322 -0
  2001. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +220 -0
  2002. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +112 -0
  2003. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/CHANGES +157 -0
  2004. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +286 -0
  2005. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/CONTRIBUTORS +37 -0
  2006. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/LICENSE +28 -0
  2007. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/Makefile.am +310 -0
  2008. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/README.md +280 -0
  2009. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +242 -0
  2010. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/codegear/gtest.cbproj +138 -0
  2011. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/codegear/gtest.groupproj +54 -0
  2012. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all.cc +38 -0
  2013. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link.cc +40 -0
  2014. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/codegear/gtest_main.cbproj +82 -0
  2015. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/codegear/gtest_unittest.cbproj +88 -0
  2016. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/configure.ac +68 -0
  2017. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/AdvancedGuide.md +2182 -0
  2018. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/DevGuide.md +126 -0
  2019. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/Documentation.md +14 -0
  2020. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/FAQ.md +1087 -0
  2021. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/Primer.md +502 -0
  2022. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +177 -0
  2023. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/Samples.md +14 -0
  2024. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_5_AdvancedGuide.md +2096 -0
  2025. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Documentation.md +12 -0
  2026. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_5_FAQ.md +886 -0
  2027. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Primer.md +497 -0
  2028. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_5_PumpManual.md +177 -0
  2029. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_5_XcodeGuide.md +93 -0
  2030. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_6_AdvancedGuide.md +2178 -0
  2031. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Documentation.md +14 -0
  2032. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_6_FAQ.md +1038 -0
  2033. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Primer.md +501 -0
  2034. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_6_PumpManual.md +177 -0
  2035. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Samples.md +14 -0
  2036. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_6_XcodeGuide.md +93 -0
  2037. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_7_AdvancedGuide.md +2181 -0
  2038. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Documentation.md +14 -0
  2039. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_7_FAQ.md +1082 -0
  2040. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Primer.md +501 -0
  2041. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_7_PumpManual.md +177 -0
  2042. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Samples.md +14 -0
  2043. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/V1_7_XcodeGuide.md +93 -0
  2044. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +93 -0
  2045. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +294 -0
  2046. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +250 -0
  2047. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +1444 -0
  2048. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +510 -0
  2049. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +993 -0
  2050. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +232 -0
  2051. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-test-part.h +179 -0
  2052. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +263 -0
  2053. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +2236 -0
  2054. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +358 -0
  2055. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +58 -0
  2056. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +69 -0
  2057. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  2058. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +41 -0
  2059. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +319 -0
  2060. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +206 -0
  2061. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +1238 -0
  2062. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h +243 -0
  2063. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +5146 -0
  2064. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +286 -0
  2065. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +731 -0
  2066. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +93 -0
  2067. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +2554 -0
  2068. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +167 -0
  2069. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h +1020 -0
  2070. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h.pump +347 -0
  2071. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +3331 -0
  2072. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +297 -0
  2073. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/m4/acx_pthread.m4 +363 -0
  2074. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/m4/gtest.m4 +74 -0
  2075. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/make/Makefile +82 -0
  2076. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.sln +45 -0
  2077. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.vcproj +126 -0
  2078. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest.sln +45 -0
  2079. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest.vcproj +126 -0
  2080. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main-md.vcproj +129 -0
  2081. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main.vcproj +129 -0
  2082. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test-md.vcproj +164 -0
  2083. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test.vcproj +164 -0
  2084. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest-md.vcproj +147 -0
  2085. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest.vcproj +147 -0
  2086. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +123 -0
  2087. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +68 -0
  2088. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample1.h +43 -0
  2089. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +144 -0
  2090. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +153 -0
  2091. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample2.cc +56 -0
  2092. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample2.h +85 -0
  2093. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +109 -0
  2094. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample3-inl.h +172 -0
  2095. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +151 -0
  2096. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample4.cc +46 -0
  2097. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample4.h +53 -0
  2098. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +45 -0
  2099. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +199 -0
  2100. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +224 -0
  2101. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +130 -0
  2102. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +173 -0
  2103. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +160 -0
  2104. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/common.py +83 -0
  2105. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +253 -0
  2106. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +730 -0
  2107. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/gtest-config.in +274 -0
  2108. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/pump.py +855 -0
  2109. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/release_docs.py +158 -0
  2110. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/test/Makefile +59 -0
  2111. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +1387 -0
  2112. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/scripts/upload_gtest.py +78 -0
  2113. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +48 -0
  2114. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +1342 -0
  2115. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +387 -0
  2116. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +1183 -0
  2117. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +1259 -0
  2118. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +373 -0
  2119. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +110 -0
  2120. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +118 -0
  2121. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +5388 -0
  2122. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +38 -0
  2123. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_ex_test.cc +93 -0
  2124. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +1427 -0
  2125. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +662 -0
  2126. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-linked_ptr_test.cc +154 -0
  2127. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +311 -0
  2128. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-message_test.cc +159 -0
  2129. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +215 -0
  2130. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +65 -0
  2131. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +1055 -0
  2132. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +57 -0
  2133. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +1304 -0
  2134. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +1635 -0
  2135. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-test-part_test.cc +208 -0
  2136. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-tuple_test.cc +320 -0
  2137. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +45 -0
  2138. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +380 -0
  2139. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.h +66 -0
  2140. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +341 -0
  2141. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +47 -0
  2142. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +212 -0
  2143. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +88 -0
  2144. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +237 -0
  2145. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +311 -0
  2146. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +130 -0
  2147. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +71 -0
  2148. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +117 -0
  2149. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +126 -0
  2150. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +192 -0
  2151. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +636 -0
  2152. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +140 -0
  2153. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +172 -0
  2154. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test_.cc +46 -0
  2155. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +207 -0
  2156. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest_.cc +157 -0
  2157. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +45 -0
  2158. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_no_test_unittest.cc +56 -0
  2159. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +340 -0
  2160. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +1062 -0
  2161. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +743 -0
  2162. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +2427 -0
  2163. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_premature_exit_test.cc +127 -0
  2164. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +57 -0
  2165. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +253 -0
  2166. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test.py +325 -0
  2167. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test_.cc +103 -0
  2168. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_sole_header_test.cc +57 -0
  2169. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +256 -0
  2170. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +320 -0
  2171. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_ex_test.cc +92 -0
  2172. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +171 -0
  2173. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test_.cc +72 -0
  2174. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +70 -0
  2175. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +43 -0
  2176. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +7706 -0
  2177. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +49 -0
  2178. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +49 -0
  2179. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +132 -0
  2180. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +308 -0
  2181. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +181 -0
  2182. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +194 -0
  2183. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/production.cc +36 -0
  2184. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/test/production.h +55 -0
  2185. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Config/DebugProject.xcconfig +30 -0
  2186. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Config/FrameworkTarget.xcconfig +17 -0
  2187. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Config/General.xcconfig +41 -0
  2188. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Config/ReleaseProject.xcconfig +32 -0
  2189. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +18 -0
  2190. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Config/TestTarget.xcconfig +8 -0
  2191. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Resources/Info.plist +30 -0
  2192. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/Info.plist +28 -0
  2193. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj +457 -0
  2194. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/runtests.sh +62 -0
  2195. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.cc +63 -0
  2196. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.h +59 -0
  2197. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget_test.cc +68 -0
  2198. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/runtests.sh +65 -0
  2199. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +100 -0
  2200. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +1135 -0
  2201. data/vendor/simdjson/dependencies/rapidjson/thirdparty/gtest/travis.sh +15 -0
  2202. data/vendor/simdjson/dependencies/rapidjson/travis-doxygen.sh +121 -0
  2203. data/vendor/simdjson/dependencies/sajson/LICENSE.txt +7 -0
  2204. data/vendor/simdjson/dependencies/sajson/README.md +73 -0
  2205. data/vendor/simdjson/dependencies/sajson/SConscript +41 -0
  2206. data/vendor/simdjson/dependencies/sajson/SConstruct +95 -0
  2207. data/vendor/simdjson/dependencies/sajson/benchmark/benchmark.cpp +92 -0
  2208. data/vendor/simdjson/dependencies/sajson/doc/doxygen.config +2427 -0
  2209. data/vendor/simdjson/dependencies/sajson/example/main.cpp +127 -0
  2210. data/vendor/simdjson/dependencies/sajson/example/zero-allocation.cpp +28 -0
  2211. data/vendor/simdjson/dependencies/sajson/include/sajson.h +2493 -0
  2212. data/vendor/simdjson/dependencies/sajson/include/sajson_ostream.h +20 -0
  2213. data/vendor/simdjson/dependencies/sajson/s/bench +15 -0
  2214. data/vendor/simdjson/dependencies/sajson/s/build +4 -0
  2215. data/vendor/simdjson/dependencies/sajson/s/doxygen +4 -0
  2216. data/vendor/simdjson/dependencies/sajson/s/test +21 -0
  2217. data/vendor/simdjson/dependencies/sajson/sajson-fuzz/build.sh +4 -0
  2218. data/vendor/simdjson/dependencies/sajson/sajson-fuzz/json.dict +44 -0
  2219. data/vendor/simdjson/dependencies/sajson/sajson-fuzz/run-primary.sh +4 -0
  2220. data/vendor/simdjson/dependencies/sajson/sajson-fuzz/run.sh +3 -0
  2221. data/vendor/simdjson/dependencies/sajson/swift/sajson.xcodeproj/project.pbxproj +665 -0
  2222. data/vendor/simdjson/dependencies/sajson/swift/sajson.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  2223. data/vendor/simdjson/dependencies/sajson/swift/sajson.xcodeproj/xcshareddata/xcschemes/sajson-macOS.xcscheme +100 -0
  2224. data/vendor/simdjson/dependencies/sajson/swift/sajson/Info.plist +24 -0
  2225. data/vendor/simdjson/dependencies/sajson/swift/sajson/sajson-ffi.cpp +79 -0
  2226. data/vendor/simdjson/dependencies/sajson/swift/sajson/sajson-swift/sajson-ffi.h +35 -0
  2227. data/vendor/simdjson/dependencies/sajson/swift/sajson/sajson.swift +409 -0
  2228. data/vendor/simdjson/dependencies/sajson/swift/sajson/sajson_swift.h +3 -0
  2229. data/vendor/simdjson/dependencies/sajson/swift/sajsonTests/Info.plist +22 -0
  2230. data/vendor/simdjson/dependencies/sajson/swift/sajsonTests/sajsonTests.swift +122 -0
  2231. data/vendor/simdjson/dependencies/sajson/tests/test.cpp +1049 -0
  2232. data/vendor/simdjson/dependencies/sajson/tests/test_no_stl.cpp +2 -0
  2233. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/COPYING +20 -0
  2234. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/Makefile +96 -0
  2235. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/README +68 -0
  2236. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/TestUnitTest++.vsnet2003.vcproj +174 -0
  2237. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/TestUnitTest++.vsnet2005.vcproj +256 -0
  2238. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/UnitTest++.vsnet2003.sln +30 -0
  2239. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/UnitTest++.vsnet2003.vcproj +226 -0
  2240. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/UnitTest++.vsnet2005.sln +29 -0
  2241. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/UnitTest++.vsnet2005.vcproj +318 -0
  2242. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/docs/UnitTest++.html +260 -0
  2243. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/AssertException.cpp +34 -0
  2244. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/AssertException.h +28 -0
  2245. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/CheckMacros.h +122 -0
  2246. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Checks.cpp +50 -0
  2247. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Checks.h +158 -0
  2248. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Config.h +31 -0
  2249. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/CurrentTest.cpp +18 -0
  2250. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/CurrentTest.h +17 -0
  2251. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/DeferredTestReporter.cpp +29 -0
  2252. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/DeferredTestReporter.h +28 -0
  2253. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/DeferredTestResult.cpp +25 -0
  2254. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/DeferredTestResult.h +29 -0
  2255. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/ExecuteTest.h +46 -0
  2256. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/MemoryOutStream.cpp +149 -0
  2257. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/MemoryOutStream.h +67 -0
  2258. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Posix/SignalTranslator.cpp +46 -0
  2259. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Posix/SignalTranslator.h +42 -0
  2260. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Posix/TimeHelpers.cpp +33 -0
  2261. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Posix/TimeHelpers.h +28 -0
  2262. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/ReportAssert.cpp +10 -0
  2263. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/ReportAssert.h +10 -0
  2264. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Test.cpp +41 -0
  2265. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Test.h +34 -0
  2266. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestDetails.cpp +22 -0
  2267. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestDetails.h +24 -0
  2268. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestList.cpp +39 -0
  2269. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestList.h +32 -0
  2270. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestMacros.h +113 -0
  2271. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestReporter.cpp +10 -0
  2272. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestReporter.h +20 -0
  2273. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestReporterStdout.cpp +41 -0
  2274. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestReporterStdout.h +19 -0
  2275. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestResults.cpp +60 -0
  2276. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestResults.h +36 -0
  2277. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestRunner.cpp +76 -0
  2278. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestRunner.h +61 -0
  2279. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TestSuite.h +14 -0
  2280. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TimeConstraint.cpp +29 -0
  2281. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TimeConstraint.h +33 -0
  2282. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/TimeHelpers.h +7 -0
  2283. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/UnitTest++.h +18 -0
  2284. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Win32/TimeHelpers.cpp +50 -0
  2285. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/Win32/TimeHelpers.h +48 -0
  2286. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/XmlTestReporter.cpp +127 -0
  2287. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/XmlTestReporter.h +34 -0
  2288. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/Main.cpp +8 -0
  2289. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/RecordingReporter.h +98 -0
  2290. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/ScopedCurrentTest.h +37 -0
  2291. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestAssertHandler.cpp +44 -0
  2292. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestCheckMacros.cpp +801 -0
  2293. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestChecks.cpp +293 -0
  2294. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestCurrentTest.cpp +38 -0
  2295. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestDeferredTestReporter.cpp +117 -0
  2296. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestMemoryOutStream.cpp +151 -0
  2297. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestTest.cpp +129 -0
  2298. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestTestList.cpp +50 -0
  2299. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestTestMacros.cpp +212 -0
  2300. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestTestResults.cpp +111 -0
  2301. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestTestRunner.cpp +307 -0
  2302. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestTestSuite.cpp +12 -0
  2303. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestTimeConstraint.cpp +69 -0
  2304. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestTimeConstraintMacro.cpp +35 -0
  2305. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestUnitTest++.cpp +156 -0
  2306. data/vendor/simdjson/dependencies/sajson/third-party/UnitTest++/src/tests/TestXmlTestReporter.cpp +183 -0
  2307. data/vendor/simdjson/dependencies/sajson/tools/genpow10.js +39 -0
  2308. data/vendor/simdjson/dependencies/ujson4c/3rdparty/ultrajson.h +310 -0
  2309. data/vendor/simdjson/dependencies/ujson4c/3rdparty/ultrajsondec.c +891 -0
  2310. data/vendor/simdjson/dependencies/ujson4c/LICENSE.txt +31 -0
  2311. data/vendor/simdjson/dependencies/ujson4c/README.rst +43 -0
  2312. data/vendor/simdjson/dependencies/ujson4c/src/ujdecode.c +836 -0
  2313. data/vendor/simdjson/dependencies/ujson4c/src/ujdecode.h +261 -0
  2314. data/vendor/simdjson/dependencies/ujson4c/tests/benchmark.c +225 -0
  2315. data/vendor/simdjson/dependencies/ujson4c/tests/tests.c +102 -0
  2316. data/vendor/simdjson/doc/Multiline_JSON_Parse_Competition.png +0 -0
  2317. data/vendor/simdjson/doc/basics.md +574 -0
  2318. data/vendor/simdjson/doc/basics_doxygen.md +556 -0
  2319. data/vendor/simdjson/doc/gbps.png +0 -0
  2320. data/vendor/simdjson/doc/growing.png +0 -0
  2321. data/vendor/simdjson/doc/implementation-selection.md +83 -0
  2322. data/vendor/simdjson/doc/parse_many.md +160 -0
  2323. data/vendor/simdjson/doc/performance.md +172 -0
  2324. data/vendor/simdjson/{tape.md → doc/tape.md} +40 -38
  2325. data/vendor/simdjson/examples/CMakeLists.txt +1 -0
  2326. data/vendor/simdjson/examples/quickstart/CMakeLists.txt +60 -0
  2327. data/vendor/simdjson/examples/quickstart/Makefile +32 -0
  2328. data/vendor/simdjson/examples/quickstart/quickstart.cpp +7 -0
  2329. data/vendor/simdjson/examples/quickstart/quickstart_noexceptions.cpp +16 -0
  2330. data/vendor/simdjson/extra/dumpbits.h +19 -0
  2331. data/vendor/simdjson/fuzz/CMakeLists.txt +63 -0
  2332. data/vendor/simdjson/fuzz/Fuzzing.md +86 -0
  2333. data/vendor/simdjson/fuzz/NullBuffer.h +21 -0
  2334. data/vendor/simdjson/fuzz/build_corpus.sh +18 -0
  2335. data/vendor/simdjson/fuzz/build_fuzzer_variants.sh +174 -0
  2336. data/vendor/simdjson/fuzz/build_like_ossfuzz.sh +22 -0
  2337. data/vendor/simdjson/fuzz/fuzz_dump.cpp +60 -0
  2338. data/vendor/simdjson/fuzz/fuzz_dump_raw_tape.cpp +18 -0
  2339. data/vendor/simdjson/fuzz/fuzz_minify.cpp +19 -0
  2340. data/vendor/simdjson/fuzz/fuzz_parser.cpp +10 -0
  2341. data/vendor/simdjson/fuzz/fuzz_print_json.cpp +18 -0
  2342. data/vendor/simdjson/fuzz/main.cpp +26 -0
  2343. data/vendor/simdjson/fuzz/measure_coverage.sh +34 -0
  2344. data/vendor/simdjson/fuzz/ossfuzz.sh +44 -0
  2345. data/vendor/simdjson/images/logotiny.png +0 -0
  2346. data/vendor/simdjson/include/CMakeLists.txt +13 -0
  2347. data/vendor/simdjson/include/simdjson.h +47 -0
  2348. data/vendor/simdjson/include/simdjson/common_defs.h +177 -71
  2349. data/vendor/simdjson/include/simdjson/compiler_check.h +35 -0
  2350. data/vendor/simdjson/include/simdjson/dom/array.h +158 -0
  2351. data/vendor/simdjson/include/simdjson/dom/document.h +78 -0
  2352. data/vendor/simdjson/include/simdjson/dom/document_stream.h +261 -0
  2353. data/vendor/simdjson/include/simdjson/dom/element.h +545 -0
  2354. data/vendor/simdjson/include/simdjson/dom/jsonparser.h +117 -0
  2355. data/vendor/simdjson/include/simdjson/dom/object.h +264 -0
  2356. data/vendor/simdjson/include/simdjson/dom/parsedjson.h +17 -0
  2357. data/vendor/simdjson/include/simdjson/dom/parsedjson_iterator.h +270 -0
  2358. data/vendor/simdjson/include/simdjson/dom/parser.h +434 -0
  2359. data/vendor/simdjson/include/simdjson/error.h +252 -0
  2360. data/vendor/simdjson/include/simdjson/implementation.h +244 -0
  2361. data/vendor/simdjson/include/simdjson/inline/array.h +153 -0
  2362. data/vendor/simdjson/include/simdjson/inline/document.h +141 -0
  2363. data/vendor/simdjson/include/simdjson/inline/document_stream.h +255 -0
  2364. data/vendor/simdjson/include/simdjson/inline/element.h +535 -0
  2365. data/vendor/simdjson/include/simdjson/inline/error.h +155 -0
  2366. data/vendor/simdjson/include/simdjson/inline/object.h +255 -0
  2367. data/vendor/simdjson/include/simdjson/inline/padded_string.h +150 -0
  2368. data/vendor/simdjson/include/simdjson/inline/parsedjson_iterator.h +486 -0
  2369. data/vendor/simdjson/include/simdjson/inline/parser.h +206 -0
  2370. data/vendor/simdjson/include/simdjson/inline/tape_ref.h +105 -0
  2371. data/vendor/simdjson/include/simdjson/internal/dom_parser_implementation.h +181 -0
  2372. data/vendor/simdjson/include/simdjson/internal/jsonformatutils.h +65 -0
  2373. data/vendor/simdjson/include/simdjson/internal/tape_ref.h +51 -0
  2374. data/vendor/simdjson/include/simdjson/internal/tape_type.h +28 -0
  2375. data/vendor/simdjson/include/simdjson/jsonioutil.h +10 -22
  2376. data/vendor/simdjson/include/simdjson/minify.h +75 -0
  2377. data/vendor/simdjson/include/simdjson/nonstd/string_view.hpp +1529 -0
  2378. data/vendor/simdjson/include/simdjson/padded_string.h +144 -58
  2379. data/vendor/simdjson/include/simdjson/portability.h +162 -93
  2380. data/vendor/simdjson/include/simdjson/simdjson.h +9 -43
  2381. data/vendor/simdjson/include/simdjson/simdjson_version.h +20 -7
  2382. data/vendor/simdjson/jsonchecker/CMakeLists.txt +3 -0
  2383. data/vendor/simdjson/jsonexamples/CMakeLists.txt +16 -0
  2384. data/vendor/simdjson/jsonexamples/generated/CMakeLists.txt +18 -0
  2385. data/vendor/simdjson/jsonexamples/generated/genfeaturejson.rb +117 -0
  2386. data/vendor/simdjson/jsonexamples/generated/genfeaturejsonseed.rb +49 -0
  2387. data/vendor/simdjson/jsonexamples/generated/miss-templates/128.txt +10000 -0
  2388. data/vendor/simdjson/jsonexamples/generated/miss-templates/64.txt +10000 -0
  2389. data/vendor/simdjson/jsonexamples/small/jsoniter_scala/README.md +25 -1
  2390. data/vendor/simdjson/scripts/ruby/kostya_large.rb +32 -0
  2391. data/vendor/simdjson/scripts/shootout.sh +32 -0
  2392. data/vendor/simdjson/singleheader/CMakeLists.txt +151 -0
  2393. data/vendor/simdjson/singleheader/README.md +2 -1
  2394. data/vendor/simdjson/singleheader/amalgamate.sh +196 -0
  2395. data/vendor/simdjson/singleheader/amalgamate_demo.cpp +46 -0
  2396. data/vendor/simdjson/singleheader/simdjson.cpp +14045 -1541
  2397. data/vendor/simdjson/singleheader/simdjson.h +7250 -39226
  2398. data/vendor/simdjson/src/CMakeLists.txt +91 -50
  2399. data/vendor/simdjson/src/arm64/bitmanipulation.h +73 -0
  2400. data/vendor/simdjson/src/arm64/bitmask.h +43 -0
  2401. data/vendor/simdjson/src/arm64/dom_parser_implementation.cpp +137 -0
  2402. data/vendor/simdjson/src/arm64/dom_parser_implementation.h +15 -0
  2403. data/vendor/simdjson/src/arm64/implementation.cpp +25 -0
  2404. data/vendor/simdjson/src/arm64/implementation.h +27 -0
  2405. data/vendor/simdjson/src/arm64/intrinsics.h +10 -0
  2406. data/vendor/simdjson/src/arm64/numberparsing.h +39 -0
  2407. data/vendor/simdjson/src/arm64/simd.h +522 -0
  2408. data/vendor/simdjson/src/arm64/stringparsing.h +53 -0
  2409. data/vendor/simdjson/src/error.cpp +34 -0
  2410. data/vendor/simdjson/src/fallback/bitmanipulation.h +77 -0
  2411. data/vendor/simdjson/src/fallback/dom_parser_implementation.cpp +335 -0
  2412. data/vendor/simdjson/src/fallback/dom_parser_implementation.h +15 -0
  2413. data/vendor/simdjson/src/fallback/implementation.cpp +25 -0
  2414. data/vendor/simdjson/src/fallback/implementation.h +32 -0
  2415. data/vendor/simdjson/src/fallback/numberparsing.h +35 -0
  2416. data/vendor/simdjson/src/fallback/stringparsing.h +35 -0
  2417. data/vendor/simdjson/src/generic/dom_parser_implementation.h +59 -0
  2418. data/vendor/simdjson/src/generic/stage1/allocate.h +17 -0
  2419. data/vendor/simdjson/src/generic/stage1/buf_block_reader.h +83 -0
  2420. data/vendor/simdjson/src/generic/stage1/find_next_document_index.h +86 -0
  2421. data/vendor/simdjson/src/generic/stage1/json_minifier.h +77 -0
  2422. data/vendor/simdjson/src/generic/stage1/json_scanner.h +104 -0
  2423. data/vendor/simdjson/src/generic/stage1/json_string_scanner.h +139 -0
  2424. data/vendor/simdjson/src/generic/stage1/json_structural_indexer.h +198 -0
  2425. data/vendor/simdjson/src/generic/stage1/utf8_fastvalidate_algorithm.h +178 -0
  2426. data/vendor/simdjson/src/generic/stage1/utf8_lookup2_algorithm.h +218 -0
  2427. data/vendor/simdjson/src/generic/stage1/utf8_lookup3_algorithm.h +230 -0
  2428. data/vendor/simdjson/src/generic/stage1/utf8_lookup_algorithm.h +299 -0
  2429. data/vendor/simdjson/src/generic/stage1/utf8_range_algorithm.h +180 -0
  2430. data/vendor/simdjson/src/generic/stage1/utf8_validator.h +26 -0
  2431. data/vendor/simdjson/src/generic/stage1/utf8_zwegner_algorithm.h +360 -0
  2432. data/vendor/simdjson/src/generic/stage2/allocate.h +18 -0
  2433. data/vendor/simdjson/src/generic/stage2/atomparsing.h +51 -0
  2434. data/vendor/simdjson/src/generic/stage2/logger.h +64 -0
  2435. data/vendor/simdjson/src/generic/stage2/numberparsing.h +572 -0
  2436. data/vendor/simdjson/src/generic/stage2/streaming_structural_parser.h +168 -0
  2437. data/vendor/simdjson/{include/simdjson → src/generic/stage2}/stringparsing.h +54 -36
  2438. data/vendor/simdjson/src/generic/stage2/structural_iterator.h +70 -0
  2439. data/vendor/simdjson/src/generic/stage2/structural_parser.h +474 -0
  2440. data/vendor/simdjson/src/generic/stage2/tape_writer.h +95 -0
  2441. data/vendor/simdjson/src/haswell/bitmanipulation.h +80 -0
  2442. data/vendor/simdjson/src/haswell/bitmask.h +30 -0
  2443. data/vendor/simdjson/src/haswell/dom_parser_implementation.cpp +127 -0
  2444. data/vendor/simdjson/src/haswell/dom_parser_implementation.h +15 -0
  2445. data/vendor/simdjson/src/haswell/implementation.cpp +25 -0
  2446. data/vendor/simdjson/src/haswell/implementation.h +29 -0
  2447. data/vendor/simdjson/src/haswell/intrinsics.h +54 -0
  2448. data/vendor/simdjson/src/haswell/numberparsing.h +49 -0
  2449. data/vendor/simdjson/src/haswell/simd.h +377 -0
  2450. data/vendor/simdjson/src/haswell/stringparsing.h +50 -0
  2451. data/vendor/simdjson/src/implementation.cpp +155 -0
  2452. data/vendor/simdjson/{include/simdjson → src}/isadetection.h +26 -11
  2453. data/vendor/simdjson/src/jsoncharutils.h +1336 -0
  2454. data/vendor/simdjson/src/simdjson.cpp +30 -28
  2455. data/vendor/simdjson/src/simdprune_tables.h +136 -0
  2456. data/vendor/simdjson/src/westmere/bitmanipulation.h +89 -0
  2457. data/vendor/simdjson/src/westmere/bitmask.h +29 -0
  2458. data/vendor/simdjson/src/westmere/dom_parser_implementation.cpp +128 -0
  2459. data/vendor/simdjson/src/westmere/dom_parser_implementation.h +15 -0
  2460. data/vendor/simdjson/src/westmere/implementation.cpp +25 -0
  2461. data/vendor/simdjson/src/westmere/implementation.h +28 -0
  2462. data/vendor/simdjson/src/westmere/intrinsics.h +27 -0
  2463. data/vendor/simdjson/src/westmere/numberparsing.h +50 -0
  2464. data/vendor/simdjson/src/westmere/simd.h +362 -0
  2465. data/vendor/simdjson/src/westmere/stringparsing.h +52 -0
  2466. data/vendor/simdjson/tests/CMakeLists.txt +182 -11
  2467. data/vendor/simdjson/tests/allparserscheckfile.cpp +24 -28
  2468. data/vendor/simdjson/tests/basictests.cpp +1963 -54
  2469. data/vendor/simdjson/tests/cast_tester.h +271 -0
  2470. data/vendor/simdjson/tests/checkimplementation.cpp +23 -0
  2471. data/vendor/simdjson/tests/compilation_failure_tests/CMakeLists.txt +25 -0
  2472. data/vendor/simdjson/tests/compilation_failure_tests/dangling_parser_load.cpp +15 -0
  2473. data/vendor/simdjson/tests/compilation_failure_tests/dangling_parser_parse_padstring.cpp +16 -0
  2474. data/vendor/simdjson/tests/compilation_failure_tests/dangling_parser_parse_stdstring.cpp +16 -0
  2475. data/vendor/simdjson/tests/compilation_failure_tests/dangling_parser_parse_uchar.cpp +17 -0
  2476. data/vendor/simdjson/tests/compilation_failure_tests/dangling_parser_parse_uint8.cpp +17 -0
  2477. data/vendor/simdjson/tests/compilation_failure_tests/example_compiletest.cpp +20 -0
  2478. data/vendor/simdjson/tests/errortests.cpp +160 -0
  2479. data/vendor/simdjson/tests/extracting_values_example.cpp +12 -0
  2480. data/vendor/simdjson/tests/integer_tests.cpp +95 -0
  2481. data/vendor/simdjson/{scripts → tests}/issue150.sh +1 -2
  2482. data/vendor/simdjson/tests/jsoncheck.cpp +37 -29
  2483. data/vendor/simdjson/tests/numberparsingcheck.cpp +35 -20
  2484. data/vendor/simdjson/tests/parse_many_test.cpp +146 -0
  2485. data/vendor/simdjson/tests/pointercheck.cpp +81 -33
  2486. data/vendor/simdjson/tests/readme_examples.cpp +298 -0
  2487. data/vendor/simdjson/tests/readme_examples_noexceptions.cpp +197 -0
  2488. data/vendor/simdjson/tests/singleheadertest.cpp +8 -12
  2489. data/vendor/simdjson/tests/staticchecks.cpp +29 -0
  2490. data/vendor/simdjson/tests/stringparsingcheck.cpp +29 -30
  2491. data/vendor/simdjson/tests/test_macros.h +55 -0
  2492. data/vendor/simdjson/tests/testjson2json.sh +39 -0
  2493. data/vendor/simdjson/tests/unicode_tests.cpp +246 -0
  2494. data/vendor/simdjson/tools/CMakeLists.txt +9 -3
  2495. data/vendor/simdjson/tools/json2json.cpp +56 -95
  2496. data/vendor/simdjson/tools/jsonpointer.cpp +16 -64
  2497. data/vendor/simdjson/tools/jsonstats.cpp +225 -85
  2498. data/vendor/simdjson/tools/minify.cpp +70 -12
  2499. data/vendor/simdjson/tools/release.py +92 -20
  2500. data/vendor/simdjson/windows/CMakeLists.txt +6 -0
  2501. data/vendor/simdjson/windows/dirent_portable.h +6 -1039
  2502. data/vendor/simdjson/windows/getopt.h +658 -0
  2503. data/vendor/simdjson/windows/toni_ronnko_dirent.h +1075 -0
  2504. data/vendor/simdjson/windows/unistd.h +3 -0
  2505. metadata +2544 -47
  2506. data/vendor/simdjson/Makefile +0 -203
  2507. data/vendor/simdjson/Notes.md +0 -85
  2508. data/vendor/simdjson/amalgamation.sh +0 -158
  2509. data/vendor/simdjson/include/simdjson/jsoncharutils.h +0 -301
  2510. data/vendor/simdjson/include/simdjson/jsonformatutils.h +0 -202
  2511. data/vendor/simdjson/include/simdjson/jsonminifier.h +0 -30
  2512. data/vendor/simdjson/include/simdjson/jsonparser.h +0 -250
  2513. data/vendor/simdjson/include/simdjson/numberparsing.h +0 -587
  2514. data/vendor/simdjson/include/simdjson/parsedjson.h +0 -544
  2515. data/vendor/simdjson/include/simdjson/simdprune_tables.h +0 -35074
  2516. data/vendor/simdjson/include/simdjson/simdutf8check_arm64.h +0 -180
  2517. data/vendor/simdjson/include/simdjson/simdutf8check_haswell.h +0 -198
  2518. data/vendor/simdjson/include/simdjson/simdutf8check_westmere.h +0 -169
  2519. data/vendor/simdjson/include/simdjson/stage1_find_marks.h +0 -121
  2520. data/vendor/simdjson/include/simdjson/stage1_find_marks_arm64.h +0 -210
  2521. data/vendor/simdjson/include/simdjson/stage1_find_marks_flatten.h +0 -93
  2522. data/vendor/simdjson/include/simdjson/stage1_find_marks_flatten_haswell.h +0 -95
  2523. data/vendor/simdjson/include/simdjson/stage1_find_marks_haswell.h +0 -210
  2524. data/vendor/simdjson/include/simdjson/stage1_find_marks_macros.h +0 -239
  2525. data/vendor/simdjson/include/simdjson/stage1_find_marks_westmere.h +0 -194
  2526. data/vendor/simdjson/include/simdjson/stage2_build_tape.h +0 -85
  2527. data/vendor/simdjson/include/simdjson/stringparsing_arm64.h +0 -56
  2528. data/vendor/simdjson/include/simdjson/stringparsing_haswell.h +0 -43
  2529. data/vendor/simdjson/include/simdjson/stringparsing_macros.h +0 -88
  2530. data/vendor/simdjson/include/simdjson/stringparsing_westmere.h +0 -41
  2531. data/vendor/simdjson/scripts/testjson2json.sh +0 -99
  2532. data/vendor/simdjson/singleheader/amalgamation_demo.cpp +0 -20
  2533. data/vendor/simdjson/src/jsonioutil.cpp +0 -35
  2534. data/vendor/simdjson/src/jsonminifier.cpp +0 -285
  2535. data/vendor/simdjson/src/jsonparser.cpp +0 -91
  2536. data/vendor/simdjson/src/parsedjson.cpp +0 -323
  2537. data/vendor/simdjson/src/parsedjsoniterator.cpp +0 -272
  2538. data/vendor/simdjson/src/stage1_find_marks.cpp +0 -41
  2539. data/vendor/simdjson/src/stage2_build_tape.cpp +0 -567
  2540. data/vendor/simdjson/tools/cmake/FindCTargets.cmake +0 -15
  2541. data/vendor/simdjson/tools/cmake/FindOptions.cmake +0 -52
@@ -0,0 +1,284 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_ALLOCATORS_H_
16
+ #define RAPIDJSON_ALLOCATORS_H_
17
+
18
+ #include "rapidjson.h"
19
+
20
+ RAPIDJSON_NAMESPACE_BEGIN
21
+
22
+ ///////////////////////////////////////////////////////////////////////////////
23
+ // Allocator
24
+
25
+ /*! \class rapidjson::Allocator
26
+ \brief Concept for allocating, resizing and freeing memory block.
27
+
28
+ Note that Malloc() and Realloc() are non-static but Free() is static.
29
+
30
+ So if an allocator need to support Free(), it needs to put its pointer in
31
+ the header of memory block.
32
+
33
+ \code
34
+ concept Allocator {
35
+ static const bool kNeedFree; //!< Whether this allocator needs to call Free().
36
+
37
+ // Allocate a memory block.
38
+ // \param size of the memory block in bytes.
39
+ // \returns pointer to the memory block.
40
+ void* Malloc(size_t size);
41
+
42
+ // Resize a memory block.
43
+ // \param originalPtr The pointer to current memory block. Null pointer is permitted.
44
+ // \param originalSize The current size in bytes. (Design issue: since some allocator may not book-keep this, explicitly pass to it can save memory.)
45
+ // \param newSize the new size in bytes.
46
+ void* Realloc(void* originalPtr, size_t originalSize, size_t newSize);
47
+
48
+ // Free a memory block.
49
+ // \param pointer to the memory block. Null pointer is permitted.
50
+ static void Free(void *ptr);
51
+ };
52
+ \endcode
53
+ */
54
+
55
+
56
+ /*! \def RAPIDJSON_ALLOCATOR_DEFUALT_CHUNK_CAPACITY
57
+ \ingroup RAPIDJSON_CONFIG
58
+ \brief User-defined kDefaultChunkCapacity definition.
59
+
60
+ User can define this as any \c size that is a power of 2.
61
+ */
62
+
63
+ #ifndef RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY
64
+ #define RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY (64 * 1024)
65
+ #endif
66
+
67
+
68
+ ///////////////////////////////////////////////////////////////////////////////
69
+ // CrtAllocator
70
+
71
+ //! C-runtime library allocator.
72
+ /*! This class is just wrapper for standard C library memory routines.
73
+ \note implements Allocator concept
74
+ */
75
+ class CrtAllocator {
76
+ public:
77
+ static const bool kNeedFree = true;
78
+ void* Malloc(size_t size) {
79
+ if (size) // behavior of malloc(0) is implementation defined.
80
+ return std::malloc(size);
81
+ else
82
+ return NULL; // standardize to returning NULL.
83
+ }
84
+ void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) {
85
+ (void)originalSize;
86
+ if (newSize == 0) {
87
+ std::free(originalPtr);
88
+ return NULL;
89
+ }
90
+ return std::realloc(originalPtr, newSize);
91
+ }
92
+ static void Free(void *ptr) { std::free(ptr); }
93
+ };
94
+
95
+ ///////////////////////////////////////////////////////////////////////////////
96
+ // MemoryPoolAllocator
97
+
98
+ //! Default memory allocator used by the parser and DOM.
99
+ /*! This allocator allocate memory blocks from pre-allocated memory chunks.
100
+
101
+ It does not free memory blocks. And Realloc() only allocate new memory.
102
+
103
+ The memory chunks are allocated by BaseAllocator, which is CrtAllocator by default.
104
+
105
+ User may also supply a buffer as the first chunk.
106
+
107
+ If the user-buffer is full then additional chunks are allocated by BaseAllocator.
108
+
109
+ The user-buffer is not deallocated by this allocator.
110
+
111
+ \tparam BaseAllocator the allocator type for allocating memory chunks. Default is CrtAllocator.
112
+ \note implements Allocator concept
113
+ */
114
+ template <typename BaseAllocator = CrtAllocator>
115
+ class MemoryPoolAllocator {
116
+ public:
117
+ static const bool kNeedFree = false; //!< Tell users that no need to call Free() with this allocator. (concept Allocator)
118
+
119
+ //! Constructor with chunkSize.
120
+ /*! \param chunkSize The size of memory chunk. The default is kDefaultChunkSize.
121
+ \param baseAllocator The allocator for allocating memory chunks.
122
+ */
123
+ MemoryPoolAllocator(size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) :
124
+ chunkHead_(0), chunk_capacity_(chunkSize), userBuffer_(0), baseAllocator_(baseAllocator), ownBaseAllocator_(0)
125
+ {
126
+ }
127
+
128
+ //! Constructor with user-supplied buffer.
129
+ /*! The user buffer will be used firstly. When it is full, memory pool allocates new chunk with chunk size.
130
+
131
+ The user buffer will not be deallocated when this allocator is destructed.
132
+
133
+ \param buffer User supplied buffer.
134
+ \param size Size of the buffer in bytes. It must at least larger than sizeof(ChunkHeader).
135
+ \param chunkSize The size of memory chunk. The default is kDefaultChunkSize.
136
+ \param baseAllocator The allocator for allocating memory chunks.
137
+ */
138
+ MemoryPoolAllocator(void *buffer, size_t size, size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) :
139
+ chunkHead_(0), chunk_capacity_(chunkSize), userBuffer_(buffer), baseAllocator_(baseAllocator), ownBaseAllocator_(0)
140
+ {
141
+ RAPIDJSON_ASSERT(buffer != 0);
142
+ RAPIDJSON_ASSERT(size > sizeof(ChunkHeader));
143
+ chunkHead_ = reinterpret_cast<ChunkHeader*>(buffer);
144
+ chunkHead_->capacity = size - sizeof(ChunkHeader);
145
+ chunkHead_->size = 0;
146
+ chunkHead_->next = 0;
147
+ }
148
+
149
+ //! Destructor.
150
+ /*! This deallocates all memory chunks, excluding the user-supplied buffer.
151
+ */
152
+ ~MemoryPoolAllocator() {
153
+ Clear();
154
+ RAPIDJSON_DELETE(ownBaseAllocator_);
155
+ }
156
+
157
+ //! Deallocates all memory chunks, excluding the user-supplied buffer.
158
+ void Clear() {
159
+ while (chunkHead_ && chunkHead_ != userBuffer_) {
160
+ ChunkHeader* next = chunkHead_->next;
161
+ baseAllocator_->Free(chunkHead_);
162
+ chunkHead_ = next;
163
+ }
164
+ if (chunkHead_ && chunkHead_ == userBuffer_)
165
+ chunkHead_->size = 0; // Clear user buffer
166
+ }
167
+
168
+ //! Computes the total capacity of allocated memory chunks.
169
+ /*! \return total capacity in bytes.
170
+ */
171
+ size_t Capacity() const {
172
+ size_t capacity = 0;
173
+ for (ChunkHeader* c = chunkHead_; c != 0; c = c->next)
174
+ capacity += c->capacity;
175
+ return capacity;
176
+ }
177
+
178
+ //! Computes the memory blocks allocated.
179
+ /*! \return total used bytes.
180
+ */
181
+ size_t Size() const {
182
+ size_t size = 0;
183
+ for (ChunkHeader* c = chunkHead_; c != 0; c = c->next)
184
+ size += c->size;
185
+ return size;
186
+ }
187
+
188
+ //! Allocates a memory block. (concept Allocator)
189
+ void* Malloc(size_t size) {
190
+ if (!size)
191
+ return NULL;
192
+
193
+ size = RAPIDJSON_ALIGN(size);
194
+ if (chunkHead_ == 0 || chunkHead_->size + size > chunkHead_->capacity)
195
+ if (!AddChunk(chunk_capacity_ > size ? chunk_capacity_ : size))
196
+ return NULL;
197
+
198
+ void *buffer = reinterpret_cast<char *>(chunkHead_) + RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + chunkHead_->size;
199
+ chunkHead_->size += size;
200
+ return buffer;
201
+ }
202
+
203
+ //! Resizes a memory block (concept Allocator)
204
+ void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) {
205
+ if (originalPtr == 0)
206
+ return Malloc(newSize);
207
+
208
+ if (newSize == 0)
209
+ return NULL;
210
+
211
+ originalSize = RAPIDJSON_ALIGN(originalSize);
212
+ newSize = RAPIDJSON_ALIGN(newSize);
213
+
214
+ // Do not shrink if new size is smaller than original
215
+ if (originalSize >= newSize)
216
+ return originalPtr;
217
+
218
+ // Simply expand it if it is the last allocation and there is sufficient space
219
+ if (originalPtr == reinterpret_cast<char *>(chunkHead_) + RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + chunkHead_->size - originalSize) {
220
+ size_t increment = static_cast<size_t>(newSize - originalSize);
221
+ if (chunkHead_->size + increment <= chunkHead_->capacity) {
222
+ chunkHead_->size += increment;
223
+ return originalPtr;
224
+ }
225
+ }
226
+
227
+ // Realloc process: allocate and copy memory, do not free original buffer.
228
+ if (void* newBuffer = Malloc(newSize)) {
229
+ if (originalSize)
230
+ std::memcpy(newBuffer, originalPtr, originalSize);
231
+ return newBuffer;
232
+ }
233
+ else
234
+ return NULL;
235
+ }
236
+
237
+ //! Frees a memory block (concept Allocator)
238
+ static void Free(void *ptr) { (void)ptr; } // Do nothing
239
+
240
+ private:
241
+ //! Copy constructor is not permitted.
242
+ MemoryPoolAllocator(const MemoryPoolAllocator& rhs) /* = delete */;
243
+ //! Copy assignment operator is not permitted.
244
+ MemoryPoolAllocator& operator=(const MemoryPoolAllocator& rhs) /* = delete */;
245
+
246
+ //! Creates a new chunk.
247
+ /*! \param capacity Capacity of the chunk in bytes.
248
+ \return true if success.
249
+ */
250
+ bool AddChunk(size_t capacity) {
251
+ if (!baseAllocator_)
252
+ ownBaseAllocator_ = baseAllocator_ = RAPIDJSON_NEW(BaseAllocator)();
253
+ if (ChunkHeader* chunk = reinterpret_cast<ChunkHeader*>(baseAllocator_->Malloc(RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + capacity))) {
254
+ chunk->capacity = capacity;
255
+ chunk->size = 0;
256
+ chunk->next = chunkHead_;
257
+ chunkHead_ = chunk;
258
+ return true;
259
+ }
260
+ else
261
+ return false;
262
+ }
263
+
264
+ static const int kDefaultChunkCapacity = RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY; //!< Default chunk capacity.
265
+
266
+ //! Chunk header for perpending to each chunk.
267
+ /*! Chunks are stored as a singly linked list.
268
+ */
269
+ struct ChunkHeader {
270
+ size_t capacity; //!< Capacity of the chunk in bytes (excluding the header itself).
271
+ size_t size; //!< Current size of allocated memory in bytes.
272
+ ChunkHeader *next; //!< Next chunk in the linked list.
273
+ };
274
+
275
+ ChunkHeader *chunkHead_; //!< Head of the chunk linked-list. Only the head chunk serves allocation.
276
+ size_t chunk_capacity_; //!< The minimum capacity of chunk when they are allocated.
277
+ void *userBuffer_; //!< User supplied buffer.
278
+ BaseAllocator* baseAllocator_; //!< base allocator for allocating memory chunks.
279
+ BaseAllocator* ownBaseAllocator_; //!< base allocator created by this object.
280
+ };
281
+
282
+ RAPIDJSON_NAMESPACE_END
283
+
284
+ #endif // RAPIDJSON_ENCODINGS_H_
@@ -0,0 +1,78 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_CURSORSTREAMWRAPPER_H_
16
+ #define RAPIDJSON_CURSORSTREAMWRAPPER_H_
17
+
18
+ #include "stream.h"
19
+
20
+ #if defined(__GNUC__)
21
+ RAPIDJSON_DIAG_PUSH
22
+ RAPIDJSON_DIAG_OFF(effc++)
23
+ #endif
24
+
25
+ #if defined(_MSC_VER) && _MSC_VER <= 1800
26
+ RAPIDJSON_DIAG_PUSH
27
+ RAPIDJSON_DIAG_OFF(4702) // unreachable code
28
+ RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated
29
+ #endif
30
+
31
+ RAPIDJSON_NAMESPACE_BEGIN
32
+
33
+
34
+ //! Cursor stream wrapper for counting line and column number if error exists.
35
+ /*!
36
+ \tparam InputStream Any stream that implements Stream Concept
37
+ */
38
+ template <typename InputStream, typename Encoding = UTF8<> >
39
+ class CursorStreamWrapper : public GenericStreamWrapper<InputStream, Encoding> {
40
+ public:
41
+ typedef typename Encoding::Ch Ch;
42
+
43
+ CursorStreamWrapper(InputStream& is):
44
+ GenericStreamWrapper<InputStream, Encoding>(is), line_(1), col_(0) {}
45
+
46
+ // counting line and column number
47
+ Ch Take() {
48
+ Ch ch = this->is_.Take();
49
+ if(ch == '\n') {
50
+ line_ ++;
51
+ col_ = 0;
52
+ } else {
53
+ col_ ++;
54
+ }
55
+ return ch;
56
+ }
57
+
58
+ //! Get the error line number, if error exists.
59
+ size_t GetLine() const { return line_; }
60
+ //! Get the error column number, if error exists.
61
+ size_t GetColumn() const { return col_; }
62
+
63
+ private:
64
+ size_t line_; //!< Current Line
65
+ size_t col_; //!< Current Column
66
+ };
67
+
68
+ #if defined(_MSC_VER) && _MSC_VER <= 1800
69
+ RAPIDJSON_DIAG_POP
70
+ #endif
71
+
72
+ #if defined(__GNUC__)
73
+ RAPIDJSON_DIAG_POP
74
+ #endif
75
+
76
+ RAPIDJSON_NAMESPACE_END
77
+
78
+ #endif // RAPIDJSON_CURSORSTREAMWRAPPER_H_
@@ -0,0 +1,2658 @@
1
+ // Tencent is pleased to support the open source community by making RapidJSON available.
2
+ //
3
+ // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4
+ //
5
+ // Licensed under the MIT License (the "License"); you may not use this file except
6
+ // in compliance with the License. You may obtain a copy of the License at
7
+ //
8
+ // http://opensource.org/licenses/MIT
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software distributed
11
+ // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ // specific language governing permissions and limitations under the License.
14
+
15
+ #ifndef RAPIDJSON_DOCUMENT_H_
16
+ #define RAPIDJSON_DOCUMENT_H_
17
+
18
+ /*! \file document.h */
19
+
20
+ #include "reader.h"
21
+ #include "internal/meta.h"
22
+ #include "internal/strfunc.h"
23
+ #include "memorystream.h"
24
+ #include "encodedstream.h"
25
+ #include <new> // placement new
26
+ #include <limits>
27
+
28
+ RAPIDJSON_DIAG_PUSH
29
+ #ifdef __clang__
30
+ RAPIDJSON_DIAG_OFF(padded)
31
+ RAPIDJSON_DIAG_OFF(switch-enum)
32
+ RAPIDJSON_DIAG_OFF(c++98-compat)
33
+ #elif defined(_MSC_VER)
34
+ RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant
35
+ RAPIDJSON_DIAG_OFF(4244) // conversion from kXxxFlags to 'uint16_t', possible loss of data
36
+ #endif
37
+
38
+ #ifdef __GNUC__
39
+ RAPIDJSON_DIAG_OFF(effc++)
40
+ #if __GNUC__ >= 6
41
+ RAPIDJSON_DIAG_OFF(terminate) // ignore throwing RAPIDJSON_ASSERT in RAPIDJSON_NOEXCEPT functions
42
+ #endif
43
+ #endif // __GNUC__
44
+
45
+ #ifndef RAPIDJSON_NOMEMBERITERATORCLASS
46
+ #include <iterator> // std::random_access_iterator_tag
47
+ #endif
48
+
49
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
50
+ #include <utility> // std::move
51
+ #endif
52
+
53
+ RAPIDJSON_NAMESPACE_BEGIN
54
+
55
+ // Forward declaration.
56
+ template <typename Encoding, typename Allocator>
57
+ class GenericValue;
58
+
59
+ template <typename Encoding, typename Allocator, typename StackAllocator>
60
+ class GenericDocument;
61
+
62
+ //! Name-value pair in a JSON object value.
63
+ /*!
64
+ This class was internal to GenericValue. It used to be a inner struct.
65
+ But a compiler (IBM XL C/C++ for AIX) have reported to have problem with that so it moved as a namespace scope struct.
66
+ https://code.google.com/p/rapidjson/issues/detail?id=64
67
+ */
68
+ template <typename Encoding, typename Allocator>
69
+ struct GenericMember {
70
+ GenericValue<Encoding, Allocator> name; //!< name of member (must be a string)
71
+ GenericValue<Encoding, Allocator> value; //!< value of member.
72
+ };
73
+
74
+ ///////////////////////////////////////////////////////////////////////////////
75
+ // GenericMemberIterator
76
+
77
+ #ifndef RAPIDJSON_NOMEMBERITERATORCLASS
78
+
79
+ //! (Constant) member iterator for a JSON object value
80
+ /*!
81
+ \tparam Const Is this a constant iterator?
82
+ \tparam Encoding Encoding of the value. (Even non-string values need to have the same encoding in a document)
83
+ \tparam Allocator Allocator type for allocating memory of object, array and string.
84
+
85
+ This class implements a Random Access Iterator for GenericMember elements
86
+ of a GenericValue, see ISO/IEC 14882:2003(E) C++ standard, 24.1 [lib.iterator.requirements].
87
+
88
+ \note This iterator implementation is mainly intended to avoid implicit
89
+ conversions from iterator values to \c NULL,
90
+ e.g. from GenericValue::FindMember.
91
+
92
+ \note Define \c RAPIDJSON_NOMEMBERITERATORCLASS to fall back to a
93
+ pointer-based implementation, if your platform doesn't provide
94
+ the C++ <iterator> header.
95
+
96
+ \see GenericMember, GenericValue::MemberIterator, GenericValue::ConstMemberIterator
97
+ */
98
+ template <bool Const, typename Encoding, typename Allocator>
99
+ class GenericMemberIterator {
100
+
101
+ friend class GenericValue<Encoding,Allocator>;
102
+ template <bool, typename, typename> friend class GenericMemberIterator;
103
+
104
+ typedef GenericMember<Encoding,Allocator> PlainType;
105
+ typedef typename internal::MaybeAddConst<Const,PlainType>::Type ValueType;
106
+
107
+ public:
108
+ //! Iterator type itself
109
+ typedef GenericMemberIterator Iterator;
110
+ //! Constant iterator type
111
+ typedef GenericMemberIterator<true,Encoding,Allocator> ConstIterator;
112
+ //! Non-constant iterator type
113
+ typedef GenericMemberIterator<false,Encoding,Allocator> NonConstIterator;
114
+
115
+ /** \name std::iterator_traits support */
116
+ //@{
117
+ typedef ValueType value_type;
118
+ typedef ValueType * pointer;
119
+ typedef ValueType & reference;
120
+ typedef std::ptrdiff_t difference_type;
121
+ typedef std::random_access_iterator_tag iterator_category;
122
+ //@}
123
+
124
+ //! Pointer to (const) GenericMember
125
+ typedef pointer Pointer;
126
+ //! Reference to (const) GenericMember
127
+ typedef reference Reference;
128
+ //! Signed integer type (e.g. \c ptrdiff_t)
129
+ typedef difference_type DifferenceType;
130
+
131
+ //! Default constructor (singular value)
132
+ /*! Creates an iterator pointing to no element.
133
+ \note All operations, except for comparisons, are undefined on such values.
134
+ */
135
+ GenericMemberIterator() : ptr_() {}
136
+
137
+ //! Iterator conversions to more const
138
+ /*!
139
+ \param it (Non-const) iterator to copy from
140
+
141
+ Allows the creation of an iterator from another GenericMemberIterator
142
+ that is "less const". Especially, creating a non-constant iterator
143
+ from a constant iterator are disabled:
144
+ \li const -> non-const (not ok)
145
+ \li const -> const (ok)
146
+ \li non-const -> const (ok)
147
+ \li non-const -> non-const (ok)
148
+
149
+ \note If the \c Const template parameter is already \c false, this
150
+ constructor effectively defines a regular copy-constructor.
151
+ Otherwise, the copy constructor is implicitly defined.
152
+ */
153
+ GenericMemberIterator(const NonConstIterator & it) : ptr_(it.ptr_) {}
154
+ Iterator& operator=(const NonConstIterator & it) { ptr_ = it.ptr_; return *this; }
155
+
156
+ //! @name stepping
157
+ //@{
158
+ Iterator& operator++(){ ++ptr_; return *this; }
159
+ Iterator& operator--(){ --ptr_; return *this; }
160
+ Iterator operator++(int){ Iterator old(*this); ++ptr_; return old; }
161
+ Iterator operator--(int){ Iterator old(*this); --ptr_; return old; }
162
+ //@}
163
+
164
+ //! @name increment/decrement
165
+ //@{
166
+ Iterator operator+(DifferenceType n) const { return Iterator(ptr_+n); }
167
+ Iterator operator-(DifferenceType n) const { return Iterator(ptr_-n); }
168
+
169
+ Iterator& operator+=(DifferenceType n) { ptr_+=n; return *this; }
170
+ Iterator& operator-=(DifferenceType n) { ptr_-=n; return *this; }
171
+ //@}
172
+
173
+ //! @name relations
174
+ //@{
175
+ bool operator==(ConstIterator that) const { return ptr_ == that.ptr_; }
176
+ bool operator!=(ConstIterator that) const { return ptr_ != that.ptr_; }
177
+ bool operator<=(ConstIterator that) const { return ptr_ <= that.ptr_; }
178
+ bool operator>=(ConstIterator that) const { return ptr_ >= that.ptr_; }
179
+ bool operator< (ConstIterator that) const { return ptr_ < that.ptr_; }
180
+ bool operator> (ConstIterator that) const { return ptr_ > that.ptr_; }
181
+ //@}
182
+
183
+ //! @name dereference
184
+ //@{
185
+ Reference operator*() const { return *ptr_; }
186
+ Pointer operator->() const { return ptr_; }
187
+ Reference operator[](DifferenceType n) const { return ptr_[n]; }
188
+ //@}
189
+
190
+ //! Distance
191
+ DifferenceType operator-(ConstIterator that) const { return ptr_-that.ptr_; }
192
+
193
+ private:
194
+ //! Internal constructor from plain pointer
195
+ explicit GenericMemberIterator(Pointer p) : ptr_(p) {}
196
+
197
+ Pointer ptr_; //!< raw pointer
198
+ };
199
+
200
+ #else // RAPIDJSON_NOMEMBERITERATORCLASS
201
+
202
+ // class-based member iterator implementation disabled, use plain pointers
203
+
204
+ template <bool Const, typename Encoding, typename Allocator>
205
+ struct GenericMemberIterator;
206
+
207
+ //! non-const GenericMemberIterator
208
+ template <typename Encoding, typename Allocator>
209
+ struct GenericMemberIterator<false,Encoding,Allocator> {
210
+ //! use plain pointer as iterator type
211
+ typedef GenericMember<Encoding,Allocator>* Iterator;
212
+ };
213
+ //! const GenericMemberIterator
214
+ template <typename Encoding, typename Allocator>
215
+ struct GenericMemberIterator<true,Encoding,Allocator> {
216
+ //! use plain const pointer as iterator type
217
+ typedef const GenericMember<Encoding,Allocator>* Iterator;
218
+ };
219
+
220
+ #endif // RAPIDJSON_NOMEMBERITERATORCLASS
221
+
222
+ ///////////////////////////////////////////////////////////////////////////////
223
+ // GenericStringRef
224
+
225
+ //! Reference to a constant string (not taking a copy)
226
+ /*!
227
+ \tparam CharType character type of the string
228
+
229
+ This helper class is used to automatically infer constant string
230
+ references for string literals, especially from \c const \b (!)
231
+ character arrays.
232
+
233
+ The main use is for creating JSON string values without copying the
234
+ source string via an \ref Allocator. This requires that the referenced
235
+ string pointers have a sufficient lifetime, which exceeds the lifetime
236
+ of the associated GenericValue.
237
+
238
+ \b Example
239
+ \code
240
+ Value v("foo"); // ok, no need to copy & calculate length
241
+ const char foo[] = "foo";
242
+ v.SetString(foo); // ok
243
+
244
+ const char* bar = foo;
245
+ // Value x(bar); // not ok, can't rely on bar's lifetime
246
+ Value x(StringRef(bar)); // lifetime explicitly guaranteed by user
247
+ Value y(StringRef(bar, 3)); // ok, explicitly pass length
248
+ \endcode
249
+
250
+ \see StringRef, GenericValue::SetString
251
+ */
252
+ template<typename CharType>
253
+ struct GenericStringRef {
254
+ typedef CharType Ch; //!< character type of the string
255
+
256
+ //! Create string reference from \c const character array
257
+ #ifndef __clang__ // -Wdocumentation
258
+ /*!
259
+ This constructor implicitly creates a constant string reference from
260
+ a \c const character array. It has better performance than
261
+ \ref StringRef(const CharType*) by inferring the string \ref length
262
+ from the array length, and also supports strings containing null
263
+ characters.
264
+
265
+ \tparam N length of the string, automatically inferred
266
+
267
+ \param str Constant character array, lifetime assumed to be longer
268
+ than the use of the string in e.g. a GenericValue
269
+
270
+ \post \ref s == str
271
+
272
+ \note Constant complexity.
273
+ \note There is a hidden, private overload to disallow references to
274
+ non-const character arrays to be created via this constructor.
275
+ By this, e.g. function-scope arrays used to be filled via
276
+ \c snprintf are excluded from consideration.
277
+ In such cases, the referenced string should be \b copied to the
278
+ GenericValue instead.
279
+ */
280
+ #endif
281
+ template<SizeType N>
282
+ GenericStringRef(const CharType (&str)[N]) RAPIDJSON_NOEXCEPT
283
+ : s(str), length(N-1) {}
284
+
285
+ //! Explicitly create string reference from \c const character pointer
286
+ #ifndef __clang__ // -Wdocumentation
287
+ /*!
288
+ This constructor can be used to \b explicitly create a reference to
289
+ a constant string pointer.
290
+
291
+ \see StringRef(const CharType*)
292
+
293
+ \param str Constant character pointer, lifetime assumed to be longer
294
+ than the use of the string in e.g. a GenericValue
295
+
296
+ \post \ref s == str
297
+
298
+ \note There is a hidden, private overload to disallow references to
299
+ non-const character arrays to be created via this constructor.
300
+ By this, e.g. function-scope arrays used to be filled via
301
+ \c snprintf are excluded from consideration.
302
+ In such cases, the referenced string should be \b copied to the
303
+ GenericValue instead.
304
+ */
305
+ #endif
306
+ explicit GenericStringRef(const CharType* str)
307
+ : s(str), length(NotNullStrLen(str)) {}
308
+
309
+ //! Create constant string reference from pointer and length
310
+ #ifndef __clang__ // -Wdocumentation
311
+ /*! \param str constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
312
+ \param len length of the string, excluding the trailing NULL terminator
313
+
314
+ \post \ref s == str && \ref length == len
315
+ \note Constant complexity.
316
+ */
317
+ #endif
318
+ GenericStringRef(const CharType* str, SizeType len)
319
+ : s(RAPIDJSON_LIKELY(str) ? str : emptyString), length(len) { RAPIDJSON_ASSERT(str != 0 || len == 0u); }
320
+
321
+ GenericStringRef(const GenericStringRef& rhs) : s(rhs.s), length(rhs.length) {}
322
+
323
+ //! implicit conversion to plain CharType pointer
324
+ operator const Ch *() const { return s; }
325
+
326
+ const Ch* const s; //!< plain CharType pointer
327
+ const SizeType length; //!< length of the string (excluding the trailing NULL terminator)
328
+
329
+ private:
330
+ SizeType NotNullStrLen(const CharType* str) {
331
+ RAPIDJSON_ASSERT(str != 0);
332
+ return internal::StrLen(str);
333
+ }
334
+
335
+ /// Empty string - used when passing in a NULL pointer
336
+ static const Ch emptyString[];
337
+
338
+ //! Disallow construction from non-const array
339
+ template<SizeType N>
340
+ GenericStringRef(CharType (&str)[N]) /* = delete */;
341
+ //! Copy assignment operator not permitted - immutable type
342
+ GenericStringRef& operator=(const GenericStringRef& rhs) /* = delete */;
343
+ };
344
+
345
+ template<typename CharType>
346
+ const CharType GenericStringRef<CharType>::emptyString[] = { CharType() };
347
+
348
+ //! Mark a character pointer as constant string
349
+ /*! Mark a plain character pointer as a "string literal". This function
350
+ can be used to avoid copying a character string to be referenced as a
351
+ value in a JSON GenericValue object, if the string's lifetime is known
352
+ to be valid long enough.
353
+ \tparam CharType Character type of the string
354
+ \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
355
+ \return GenericStringRef string reference object
356
+ \relatesalso GenericStringRef
357
+
358
+ \see GenericValue::GenericValue(StringRefType), GenericValue::operator=(StringRefType), GenericValue::SetString(StringRefType), GenericValue::PushBack(StringRefType, Allocator&), GenericValue::AddMember
359
+ */
360
+ template<typename CharType>
361
+ inline GenericStringRef<CharType> StringRef(const CharType* str) {
362
+ return GenericStringRef<CharType>(str);
363
+ }
364
+
365
+ //! Mark a character pointer as constant string
366
+ /*! Mark a plain character pointer as a "string literal". This function
367
+ can be used to avoid copying a character string to be referenced as a
368
+ value in a JSON GenericValue object, if the string's lifetime is known
369
+ to be valid long enough.
370
+
371
+ This version has better performance with supplied length, and also
372
+ supports string containing null characters.
373
+
374
+ \tparam CharType character type of the string
375
+ \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
376
+ \param length The length of source string.
377
+ \return GenericStringRef string reference object
378
+ \relatesalso GenericStringRef
379
+ */
380
+ template<typename CharType>
381
+ inline GenericStringRef<CharType> StringRef(const CharType* str, size_t length) {
382
+ return GenericStringRef<CharType>(str, SizeType(length));
383
+ }
384
+
385
+ #if RAPIDJSON_HAS_STDSTRING
386
+ //! Mark a string object as constant string
387
+ /*! Mark a string object (e.g. \c std::string) as a "string literal".
388
+ This function can be used to avoid copying a string to be referenced as a
389
+ value in a JSON GenericValue object, if the string's lifetime is known
390
+ to be valid long enough.
391
+
392
+ \tparam CharType character type of the string
393
+ \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue
394
+ \return GenericStringRef string reference object
395
+ \relatesalso GenericStringRef
396
+ \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING.
397
+ */
398
+ template<typename CharType>
399
+ inline GenericStringRef<CharType> StringRef(const std::basic_string<CharType>& str) {
400
+ return GenericStringRef<CharType>(str.data(), SizeType(str.size()));
401
+ }
402
+ #endif
403
+
404
+ ///////////////////////////////////////////////////////////////////////////////
405
+ // GenericValue type traits
406
+ namespace internal {
407
+
408
+ template <typename T, typename Encoding = void, typename Allocator = void>
409
+ struct IsGenericValueImpl : FalseType {};
410
+
411
+ // select candidates according to nested encoding and allocator types
412
+ template <typename T> struct IsGenericValueImpl<T, typename Void<typename T::EncodingType>::Type, typename Void<typename T::AllocatorType>::Type>
413
+ : IsBaseOf<GenericValue<typename T::EncodingType, typename T::AllocatorType>, T>::Type {};
414
+
415
+ // helper to match arbitrary GenericValue instantiations, including derived classes
416
+ template <typename T> struct IsGenericValue : IsGenericValueImpl<T>::Type {};
417
+
418
+ } // namespace internal
419
+
420
+ ///////////////////////////////////////////////////////////////////////////////
421
+ // TypeHelper
422
+
423
+ namespace internal {
424
+
425
+ template <typename ValueType, typename T>
426
+ struct TypeHelper {};
427
+
428
+ template<typename ValueType>
429
+ struct TypeHelper<ValueType, bool> {
430
+ static bool Is(const ValueType& v) { return v.IsBool(); }
431
+ static bool Get(const ValueType& v) { return v.GetBool(); }
432
+ static ValueType& Set(ValueType& v, bool data) { return v.SetBool(data); }
433
+ static ValueType& Set(ValueType& v, bool data, typename ValueType::AllocatorType&) { return v.SetBool(data); }
434
+ };
435
+
436
+ template<typename ValueType>
437
+ struct TypeHelper<ValueType, int> {
438
+ static bool Is(const ValueType& v) { return v.IsInt(); }
439
+ static int Get(const ValueType& v) { return v.GetInt(); }
440
+ static ValueType& Set(ValueType& v, int data) { return v.SetInt(data); }
441
+ static ValueType& Set(ValueType& v, int data, typename ValueType::AllocatorType&) { return v.SetInt(data); }
442
+ };
443
+
444
+ template<typename ValueType>
445
+ struct TypeHelper<ValueType, unsigned> {
446
+ static bool Is(const ValueType& v) { return v.IsUint(); }
447
+ static unsigned Get(const ValueType& v) { return v.GetUint(); }
448
+ static ValueType& Set(ValueType& v, unsigned data) { return v.SetUint(data); }
449
+ static ValueType& Set(ValueType& v, unsigned data, typename ValueType::AllocatorType&) { return v.SetUint(data); }
450
+ };
451
+
452
+ #ifdef _MSC_VER
453
+ RAPIDJSON_STATIC_ASSERT(sizeof(long) == sizeof(int));
454
+ template<typename ValueType>
455
+ struct TypeHelper<ValueType, long> {
456
+ static bool Is(const ValueType& v) { return v.IsInt(); }
457
+ static long Get(const ValueType& v) { return v.GetInt(); }
458
+ static ValueType& Set(ValueType& v, long data) { return v.SetInt(data); }
459
+ static ValueType& Set(ValueType& v, long data, typename ValueType::AllocatorType&) { return v.SetInt(data); }
460
+ };
461
+
462
+ RAPIDJSON_STATIC_ASSERT(sizeof(unsigned long) == sizeof(unsigned));
463
+ template<typename ValueType>
464
+ struct TypeHelper<ValueType, unsigned long> {
465
+ static bool Is(const ValueType& v) { return v.IsUint(); }
466
+ static unsigned long Get(const ValueType& v) { return v.GetUint(); }
467
+ static ValueType& Set(ValueType& v, unsigned long data) { return v.SetUint(data); }
468
+ static ValueType& Set(ValueType& v, unsigned long data, typename ValueType::AllocatorType&) { return v.SetUint(data); }
469
+ };
470
+ #endif
471
+
472
+ template<typename ValueType>
473
+ struct TypeHelper<ValueType, int64_t> {
474
+ static bool Is(const ValueType& v) { return v.IsInt64(); }
475
+ static int64_t Get(const ValueType& v) { return v.GetInt64(); }
476
+ static ValueType& Set(ValueType& v, int64_t data) { return v.SetInt64(data); }
477
+ static ValueType& Set(ValueType& v, int64_t data, typename ValueType::AllocatorType&) { return v.SetInt64(data); }
478
+ };
479
+
480
+ template<typename ValueType>
481
+ struct TypeHelper<ValueType, uint64_t> {
482
+ static bool Is(const ValueType& v) { return v.IsUint64(); }
483
+ static uint64_t Get(const ValueType& v) { return v.GetUint64(); }
484
+ static ValueType& Set(ValueType& v, uint64_t data) { return v.SetUint64(data); }
485
+ static ValueType& Set(ValueType& v, uint64_t data, typename ValueType::AllocatorType&) { return v.SetUint64(data); }
486
+ };
487
+
488
+ template<typename ValueType>
489
+ struct TypeHelper<ValueType, double> {
490
+ static bool Is(const ValueType& v) { return v.IsDouble(); }
491
+ static double Get(const ValueType& v) { return v.GetDouble(); }
492
+ static ValueType& Set(ValueType& v, double data) { return v.SetDouble(data); }
493
+ static ValueType& Set(ValueType& v, double data, typename ValueType::AllocatorType&) { return v.SetDouble(data); }
494
+ };
495
+
496
+ template<typename ValueType>
497
+ struct TypeHelper<ValueType, float> {
498
+ static bool Is(const ValueType& v) { return v.IsFloat(); }
499
+ static float Get(const ValueType& v) { return v.GetFloat(); }
500
+ static ValueType& Set(ValueType& v, float data) { return v.SetFloat(data); }
501
+ static ValueType& Set(ValueType& v, float data, typename ValueType::AllocatorType&) { return v.SetFloat(data); }
502
+ };
503
+
504
+ template<typename ValueType>
505
+ struct TypeHelper<ValueType, const typename ValueType::Ch*> {
506
+ typedef const typename ValueType::Ch* StringType;
507
+ static bool Is(const ValueType& v) { return v.IsString(); }
508
+ static StringType Get(const ValueType& v) { return v.GetString(); }
509
+ static ValueType& Set(ValueType& v, const StringType data) { return v.SetString(typename ValueType::StringRefType(data)); }
510
+ static ValueType& Set(ValueType& v, const StringType data, typename ValueType::AllocatorType& a) { return v.SetString(data, a); }
511
+ };
512
+
513
+ #if RAPIDJSON_HAS_STDSTRING
514
+ template<typename ValueType>
515
+ struct TypeHelper<ValueType, std::basic_string<typename ValueType::Ch> > {
516
+ typedef std::basic_string<typename ValueType::Ch> StringType;
517
+ static bool Is(const ValueType& v) { return v.IsString(); }
518
+ static StringType Get(const ValueType& v) { return StringType(v.GetString(), v.GetStringLength()); }
519
+ static ValueType& Set(ValueType& v, const StringType& data, typename ValueType::AllocatorType& a) { return v.SetString(data, a); }
520
+ };
521
+ #endif
522
+
523
+ template<typename ValueType>
524
+ struct TypeHelper<ValueType, typename ValueType::Array> {
525
+ typedef typename ValueType::Array ArrayType;
526
+ static bool Is(const ValueType& v) { return v.IsArray(); }
527
+ static ArrayType Get(ValueType& v) { return v.GetArray(); }
528
+ static ValueType& Set(ValueType& v, ArrayType data) { return v = data; }
529
+ static ValueType& Set(ValueType& v, ArrayType data, typename ValueType::AllocatorType&) { return v = data; }
530
+ };
531
+
532
+ template<typename ValueType>
533
+ struct TypeHelper<ValueType, typename ValueType::ConstArray> {
534
+ typedef typename ValueType::ConstArray ArrayType;
535
+ static bool Is(const ValueType& v) { return v.IsArray(); }
536
+ static ArrayType Get(const ValueType& v) { return v.GetArray(); }
537
+ };
538
+
539
+ template<typename ValueType>
540
+ struct TypeHelper<ValueType, typename ValueType::Object> {
541
+ typedef typename ValueType::Object ObjectType;
542
+ static bool Is(const ValueType& v) { return v.IsObject(); }
543
+ static ObjectType Get(ValueType& v) { return v.GetObject(); }
544
+ static ValueType& Set(ValueType& v, ObjectType data) { return v = data; }
545
+ static ValueType& Set(ValueType& v, ObjectType data, typename ValueType::AllocatorType&) { return v = data; }
546
+ };
547
+
548
+ template<typename ValueType>
549
+ struct TypeHelper<ValueType, typename ValueType::ConstObject> {
550
+ typedef typename ValueType::ConstObject ObjectType;
551
+ static bool Is(const ValueType& v) { return v.IsObject(); }
552
+ static ObjectType Get(const ValueType& v) { return v.GetObject(); }
553
+ };
554
+
555
+ } // namespace internal
556
+
557
+ // Forward declarations
558
+ template <bool, typename> class GenericArray;
559
+ template <bool, typename> class GenericObject;
560
+
561
+ ///////////////////////////////////////////////////////////////////////////////
562
+ // GenericValue
563
+
564
+ //! Represents a JSON value. Use Value for UTF8 encoding and default allocator.
565
+ /*!
566
+ A JSON value can be one of 7 types. This class is a variant type supporting
567
+ these types.
568
+
569
+ Use the Value if UTF8 and default allocator
570
+
571
+ \tparam Encoding Encoding of the value. (Even non-string values need to have the same encoding in a document)
572
+ \tparam Allocator Allocator type for allocating memory of object, array and string.
573
+ */
574
+ template <typename Encoding, typename Allocator = MemoryPoolAllocator<> >
575
+ class GenericValue {
576
+ public:
577
+ //! Name-value pair in an object.
578
+ typedef GenericMember<Encoding, Allocator> Member;
579
+ typedef Encoding EncodingType; //!< Encoding type from template parameter.
580
+ typedef Allocator AllocatorType; //!< Allocator type from template parameter.
581
+ typedef typename Encoding::Ch Ch; //!< Character type derived from Encoding.
582
+ typedef GenericStringRef<Ch> StringRefType; //!< Reference to a constant string
583
+ typedef typename GenericMemberIterator<false,Encoding,Allocator>::Iterator MemberIterator; //!< Member iterator for iterating in object.
584
+ typedef typename GenericMemberIterator<true,Encoding,Allocator>::Iterator ConstMemberIterator; //!< Constant member iterator for iterating in object.
585
+ typedef GenericValue* ValueIterator; //!< Value iterator for iterating in array.
586
+ typedef const GenericValue* ConstValueIterator; //!< Constant value iterator for iterating in array.
587
+ typedef GenericValue<Encoding, Allocator> ValueType; //!< Value type of itself.
588
+ typedef GenericArray<false, ValueType> Array;
589
+ typedef GenericArray<true, ValueType> ConstArray;
590
+ typedef GenericObject<false, ValueType> Object;
591
+ typedef GenericObject<true, ValueType> ConstObject;
592
+
593
+ //!@name Constructors and destructor.
594
+ //@{
595
+
596
+ //! Default constructor creates a null value.
597
+ GenericValue() RAPIDJSON_NOEXCEPT : data_() { data_.f.flags = kNullFlag; }
598
+
599
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
600
+ //! Move constructor in C++11
601
+ GenericValue(GenericValue&& rhs) RAPIDJSON_NOEXCEPT : data_(rhs.data_) {
602
+ rhs.data_.f.flags = kNullFlag; // give up contents
603
+ }
604
+ #endif
605
+
606
+ private:
607
+ //! Copy constructor is not permitted.
608
+ GenericValue(const GenericValue& rhs);
609
+
610
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
611
+ //! Moving from a GenericDocument is not permitted.
612
+ template <typename StackAllocator>
613
+ GenericValue(GenericDocument<Encoding,Allocator,StackAllocator>&& rhs);
614
+
615
+ //! Move assignment from a GenericDocument is not permitted.
616
+ template <typename StackAllocator>
617
+ GenericValue& operator=(GenericDocument<Encoding,Allocator,StackAllocator>&& rhs);
618
+ #endif
619
+
620
+ public:
621
+
622
+ //! Constructor with JSON value type.
623
+ /*! This creates a Value of specified type with default content.
624
+ \param type Type of the value.
625
+ \note Default content for number is zero.
626
+ */
627
+ explicit GenericValue(Type type) RAPIDJSON_NOEXCEPT : data_() {
628
+ static const uint16_t defaultFlags[7] = {
629
+ kNullFlag, kFalseFlag, kTrueFlag, kObjectFlag, kArrayFlag, kShortStringFlag,
630
+ kNumberAnyFlag
631
+ };
632
+ RAPIDJSON_ASSERT(type >= kNullType && type <= kNumberType);
633
+ data_.f.flags = defaultFlags[type];
634
+
635
+ // Use ShortString to store empty string.
636
+ if (type == kStringType)
637
+ data_.ss.SetLength(0);
638
+ }
639
+
640
+ //! Explicit copy constructor (with allocator)
641
+ /*! Creates a copy of a Value by using the given Allocator
642
+ \tparam SourceAllocator allocator of \c rhs
643
+ \param rhs Value to copy from (read-only)
644
+ \param allocator Allocator for allocating copied elements and buffers. Commonly use GenericDocument::GetAllocator().
645
+ \param copyConstStrings Force copying of constant strings (e.g. referencing an in-situ buffer)
646
+ \see CopyFrom()
647
+ */
648
+ template <typename SourceAllocator>
649
+ GenericValue(const GenericValue<Encoding,SourceAllocator>& rhs, Allocator& allocator, bool copyConstStrings = false) {
650
+ switch (rhs.GetType()) {
651
+ case kObjectType: {
652
+ SizeType count = rhs.data_.o.size;
653
+ Member* lm = reinterpret_cast<Member*>(allocator.Malloc(count * sizeof(Member)));
654
+ const typename GenericValue<Encoding,SourceAllocator>::Member* rm = rhs.GetMembersPointer();
655
+ for (SizeType i = 0; i < count; i++) {
656
+ new (&lm[i].name) GenericValue(rm[i].name, allocator, copyConstStrings);
657
+ new (&lm[i].value) GenericValue(rm[i].value, allocator, copyConstStrings);
658
+ }
659
+ data_.f.flags = kObjectFlag;
660
+ data_.o.size = data_.o.capacity = count;
661
+ SetMembersPointer(lm);
662
+ }
663
+ break;
664
+ case kArrayType: {
665
+ SizeType count = rhs.data_.a.size;
666
+ GenericValue* le = reinterpret_cast<GenericValue*>(allocator.Malloc(count * sizeof(GenericValue)));
667
+ const GenericValue<Encoding,SourceAllocator>* re = rhs.GetElementsPointer();
668
+ for (SizeType i = 0; i < count; i++)
669
+ new (&le[i]) GenericValue(re[i], allocator, copyConstStrings);
670
+ data_.f.flags = kArrayFlag;
671
+ data_.a.size = data_.a.capacity = count;
672
+ SetElementsPointer(le);
673
+ }
674
+ break;
675
+ case kStringType:
676
+ if (rhs.data_.f.flags == kConstStringFlag && !copyConstStrings) {
677
+ data_.f.flags = rhs.data_.f.flags;
678
+ data_ = *reinterpret_cast<const Data*>(&rhs.data_);
679
+ }
680
+ else
681
+ SetStringRaw(StringRef(rhs.GetString(), rhs.GetStringLength()), allocator);
682
+ break;
683
+ default:
684
+ data_.f.flags = rhs.data_.f.flags;
685
+ data_ = *reinterpret_cast<const Data*>(&rhs.data_);
686
+ break;
687
+ }
688
+ }
689
+
690
+ //! Constructor for boolean value.
691
+ /*! \param b Boolean value
692
+ \note This constructor is limited to \em real boolean values and rejects
693
+ implicitly converted types like arbitrary pointers. Use an explicit cast
694
+ to \c bool, if you want to construct a boolean JSON value in such cases.
695
+ */
696
+ #ifndef RAPIDJSON_DOXYGEN_RUNNING // hide SFINAE from Doxygen
697
+ template <typename T>
698
+ explicit GenericValue(T b, RAPIDJSON_ENABLEIF((internal::IsSame<bool, T>))) RAPIDJSON_NOEXCEPT // See #472
699
+ #else
700
+ explicit GenericValue(bool b) RAPIDJSON_NOEXCEPT
701
+ #endif
702
+ : data_() {
703
+ // safe-guard against failing SFINAE
704
+ RAPIDJSON_STATIC_ASSERT((internal::IsSame<bool,T>::Value));
705
+ data_.f.flags = b ? kTrueFlag : kFalseFlag;
706
+ }
707
+
708
+ //! Constructor for int value.
709
+ explicit GenericValue(int i) RAPIDJSON_NOEXCEPT : data_() {
710
+ data_.n.i64 = i;
711
+ data_.f.flags = (i >= 0) ? (kNumberIntFlag | kUintFlag | kUint64Flag) : kNumberIntFlag;
712
+ }
713
+
714
+ //! Constructor for unsigned value.
715
+ explicit GenericValue(unsigned u) RAPIDJSON_NOEXCEPT : data_() {
716
+ data_.n.u64 = u;
717
+ data_.f.flags = (u & 0x80000000) ? kNumberUintFlag : (kNumberUintFlag | kIntFlag | kInt64Flag);
718
+ }
719
+
720
+ //! Constructor for int64_t value.
721
+ explicit GenericValue(int64_t i64) RAPIDJSON_NOEXCEPT : data_() {
722
+ data_.n.i64 = i64;
723
+ data_.f.flags = kNumberInt64Flag;
724
+ if (i64 >= 0) {
725
+ data_.f.flags |= kNumberUint64Flag;
726
+ if (!(static_cast<uint64_t>(i64) & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x00000000)))
727
+ data_.f.flags |= kUintFlag;
728
+ if (!(static_cast<uint64_t>(i64) & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000)))
729
+ data_.f.flags |= kIntFlag;
730
+ }
731
+ else if (i64 >= static_cast<int64_t>(RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000)))
732
+ data_.f.flags |= kIntFlag;
733
+ }
734
+
735
+ //! Constructor for uint64_t value.
736
+ explicit GenericValue(uint64_t u64) RAPIDJSON_NOEXCEPT : data_() {
737
+ data_.n.u64 = u64;
738
+ data_.f.flags = kNumberUint64Flag;
739
+ if (!(u64 & RAPIDJSON_UINT64_C2(0x80000000, 0x00000000)))
740
+ data_.f.flags |= kInt64Flag;
741
+ if (!(u64 & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x00000000)))
742
+ data_.f.flags |= kUintFlag;
743
+ if (!(u64 & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000)))
744
+ data_.f.flags |= kIntFlag;
745
+ }
746
+
747
+ //! Constructor for double value.
748
+ explicit GenericValue(double d) RAPIDJSON_NOEXCEPT : data_() { data_.n.d = d; data_.f.flags = kNumberDoubleFlag; }
749
+
750
+ //! Constructor for float value.
751
+ explicit GenericValue(float f) RAPIDJSON_NOEXCEPT : data_() { data_.n.d = static_cast<double>(f); data_.f.flags = kNumberDoubleFlag; }
752
+
753
+ //! Constructor for constant string (i.e. do not make a copy of string)
754
+ GenericValue(const Ch* s, SizeType length) RAPIDJSON_NOEXCEPT : data_() { SetStringRaw(StringRef(s, length)); }
755
+
756
+ //! Constructor for constant string (i.e. do not make a copy of string)
757
+ explicit GenericValue(StringRefType s) RAPIDJSON_NOEXCEPT : data_() { SetStringRaw(s); }
758
+
759
+ //! Constructor for copy-string (i.e. do make a copy of string)
760
+ GenericValue(const Ch* s, SizeType length, Allocator& allocator) : data_() { SetStringRaw(StringRef(s, length), allocator); }
761
+
762
+ //! Constructor for copy-string (i.e. do make a copy of string)
763
+ GenericValue(const Ch*s, Allocator& allocator) : data_() { SetStringRaw(StringRef(s), allocator); }
764
+
765
+ #if RAPIDJSON_HAS_STDSTRING
766
+ //! Constructor for copy-string from a string object (i.e. do make a copy of string)
767
+ /*! \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING.
768
+ */
769
+ GenericValue(const std::basic_string<Ch>& s, Allocator& allocator) : data_() { SetStringRaw(StringRef(s), allocator); }
770
+ #endif
771
+
772
+ //! Constructor for Array.
773
+ /*!
774
+ \param a An array obtained by \c GetArray().
775
+ \note \c Array is always pass-by-value.
776
+ \note the source array is moved into this value and the sourec array becomes empty.
777
+ */
778
+ GenericValue(Array a) RAPIDJSON_NOEXCEPT : data_(a.value_.data_) {
779
+ a.value_.data_ = Data();
780
+ a.value_.data_.f.flags = kArrayFlag;
781
+ }
782
+
783
+ //! Constructor for Object.
784
+ /*!
785
+ \param o An object obtained by \c GetObject().
786
+ \note \c Object is always pass-by-value.
787
+ \note the source object is moved into this value and the sourec object becomes empty.
788
+ */
789
+ GenericValue(Object o) RAPIDJSON_NOEXCEPT : data_(o.value_.data_) {
790
+ o.value_.data_ = Data();
791
+ o.value_.data_.f.flags = kObjectFlag;
792
+ }
793
+
794
+ //! Destructor.
795
+ /*! Need to destruct elements of array, members of object, or copy-string.
796
+ */
797
+ ~GenericValue() {
798
+ if (Allocator::kNeedFree) { // Shortcut by Allocator's trait
799
+ switch(data_.f.flags) {
800
+ case kArrayFlag:
801
+ {
802
+ GenericValue* e = GetElementsPointer();
803
+ for (GenericValue* v = e; v != e + data_.a.size; ++v)
804
+ v->~GenericValue();
805
+ Allocator::Free(e);
806
+ }
807
+ break;
808
+
809
+ case kObjectFlag:
810
+ for (MemberIterator m = MemberBegin(); m != MemberEnd(); ++m)
811
+ m->~Member();
812
+ Allocator::Free(GetMembersPointer());
813
+ break;
814
+
815
+ case kCopyStringFlag:
816
+ Allocator::Free(const_cast<Ch*>(GetStringPointer()));
817
+ break;
818
+
819
+ default:
820
+ break; // Do nothing for other types.
821
+ }
822
+ }
823
+ }
824
+
825
+ //@}
826
+
827
+ //!@name Assignment operators
828
+ //@{
829
+
830
+ //! Assignment with move semantics.
831
+ /*! \param rhs Source of the assignment. It will become a null value after assignment.
832
+ */
833
+ GenericValue& operator=(GenericValue& rhs) RAPIDJSON_NOEXCEPT {
834
+ RAPIDJSON_ASSERT(this != &rhs);
835
+ this->~GenericValue();
836
+ RawAssign(rhs);
837
+ return *this;
838
+ }
839
+
840
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
841
+ //! Move assignment in C++11
842
+ GenericValue& operator=(GenericValue&& rhs) RAPIDJSON_NOEXCEPT {
843
+ return *this = rhs.Move();
844
+ }
845
+ #endif
846
+
847
+ //! Assignment of constant string reference (no copy)
848
+ /*! \param str Constant string reference to be assigned
849
+ \note This overload is needed to avoid clashes with the generic primitive type assignment overload below.
850
+ \see GenericStringRef, operator=(T)
851
+ */
852
+ GenericValue& operator=(StringRefType str) RAPIDJSON_NOEXCEPT {
853
+ GenericValue s(str);
854
+ return *this = s;
855
+ }
856
+
857
+ //! Assignment with primitive types.
858
+ /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t
859
+ \param value The value to be assigned.
860
+
861
+ \note The source type \c T explicitly disallows all pointer types,
862
+ especially (\c const) \ref Ch*. This helps avoiding implicitly
863
+ referencing character strings with insufficient lifetime, use
864
+ \ref SetString(const Ch*, Allocator&) (for copying) or
865
+ \ref StringRef() (to explicitly mark the pointer as constant) instead.
866
+ All other pointer types would implicitly convert to \c bool,
867
+ use \ref SetBool() instead.
868
+ */
869
+ template <typename T>
870
+ RAPIDJSON_DISABLEIF_RETURN((internal::IsPointer<T>), (GenericValue&))
871
+ operator=(T value) {
872
+ GenericValue v(value);
873
+ return *this = v;
874
+ }
875
+
876
+ //! Deep-copy assignment from Value
877
+ /*! Assigns a \b copy of the Value to the current Value object
878
+ \tparam SourceAllocator Allocator type of \c rhs
879
+ \param rhs Value to copy from (read-only)
880
+ \param allocator Allocator to use for copying
881
+ \param copyConstStrings Force copying of constant strings (e.g. referencing an in-situ buffer)
882
+ */
883
+ template <typename SourceAllocator>
884
+ GenericValue& CopyFrom(const GenericValue<Encoding, SourceAllocator>& rhs, Allocator& allocator, bool copyConstStrings = false) {
885
+ RAPIDJSON_ASSERT(static_cast<void*>(this) != static_cast<void const*>(&rhs));
886
+ this->~GenericValue();
887
+ new (this) GenericValue(rhs, allocator, copyConstStrings);
888
+ return *this;
889
+ }
890
+
891
+ //! Exchange the contents of this value with those of other.
892
+ /*!
893
+ \param other Another value.
894
+ \note Constant complexity.
895
+ */
896
+ GenericValue& Swap(GenericValue& other) RAPIDJSON_NOEXCEPT {
897
+ GenericValue temp;
898
+ temp.RawAssign(*this);
899
+ RawAssign(other);
900
+ other.RawAssign(temp);
901
+ return *this;
902
+ }
903
+
904
+ //! free-standing swap function helper
905
+ /*!
906
+ Helper function to enable support for common swap implementation pattern based on \c std::swap:
907
+ \code
908
+ void swap(MyClass& a, MyClass& b) {
909
+ using std::swap;
910
+ swap(a.value, b.value);
911
+ // ...
912
+ }
913
+ \endcode
914
+ \see Swap()
915
+ */
916
+ friend inline void swap(GenericValue& a, GenericValue& b) RAPIDJSON_NOEXCEPT { a.Swap(b); }
917
+
918
+ //! Prepare Value for move semantics
919
+ /*! \return *this */
920
+ GenericValue& Move() RAPIDJSON_NOEXCEPT { return *this; }
921
+ //@}
922
+
923
+ //!@name Equal-to and not-equal-to operators
924
+ //@{
925
+ //! Equal-to operator
926
+ /*!
927
+ \note If an object contains duplicated named member, comparing equality with any object is always \c false.
928
+ \note Linear time complexity (number of all values in the subtree and total lengths of all strings).
929
+ */
930
+ template <typename SourceAllocator>
931
+ bool operator==(const GenericValue<Encoding, SourceAllocator>& rhs) const {
932
+ typedef GenericValue<Encoding, SourceAllocator> RhsType;
933
+ if (GetType() != rhs.GetType())
934
+ return false;
935
+
936
+ switch (GetType()) {
937
+ case kObjectType: // Warning: O(n^2) inner-loop
938
+ if (data_.o.size != rhs.data_.o.size)
939
+ return false;
940
+ for (ConstMemberIterator lhsMemberItr = MemberBegin(); lhsMemberItr != MemberEnd(); ++lhsMemberItr) {
941
+ typename RhsType::ConstMemberIterator rhsMemberItr = rhs.FindMember(lhsMemberItr->name);
942
+ if (rhsMemberItr == rhs.MemberEnd() || lhsMemberItr->value != rhsMemberItr->value)
943
+ return false;
944
+ }
945
+ return true;
946
+
947
+ case kArrayType:
948
+ if (data_.a.size != rhs.data_.a.size)
949
+ return false;
950
+ for (SizeType i = 0; i < data_.a.size; i++)
951
+ if ((*this)[i] != rhs[i])
952
+ return false;
953
+ return true;
954
+
955
+ case kStringType:
956
+ return StringEqual(rhs);
957
+
958
+ case kNumberType:
959
+ if (IsDouble() || rhs.IsDouble()) {
960
+ double a = GetDouble(); // May convert from integer to double.
961
+ double b = rhs.GetDouble(); // Ditto
962
+ return a >= b && a <= b; // Prevent -Wfloat-equal
963
+ }
964
+ else
965
+ return data_.n.u64 == rhs.data_.n.u64;
966
+
967
+ default:
968
+ return true;
969
+ }
970
+ }
971
+
972
+ //! Equal-to operator with const C-string pointer
973
+ bool operator==(const Ch* rhs) const { return *this == GenericValue(StringRef(rhs)); }
974
+
975
+ #if RAPIDJSON_HAS_STDSTRING
976
+ //! Equal-to operator with string object
977
+ /*! \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING.
978
+ */
979
+ bool operator==(const std::basic_string<Ch>& rhs) const { return *this == GenericValue(StringRef(rhs)); }
980
+ #endif
981
+
982
+ //! Equal-to operator with primitive types
983
+ /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c double, \c true, \c false
984
+ */
985
+ template <typename T> RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr<internal::IsPointer<T>,internal::IsGenericValue<T> >), (bool)) operator==(const T& rhs) const { return *this == GenericValue(rhs); }
986
+
987
+ //! Not-equal-to operator
988
+ /*! \return !(*this == rhs)
989
+ */
990
+ template <typename SourceAllocator>
991
+ bool operator!=(const GenericValue<Encoding, SourceAllocator>& rhs) const { return !(*this == rhs); }
992
+
993
+ //! Not-equal-to operator with const C-string pointer
994
+ bool operator!=(const Ch* rhs) const { return !(*this == rhs); }
995
+
996
+ //! Not-equal-to operator with arbitrary types
997
+ /*! \return !(*this == rhs)
998
+ */
999
+ template <typename T> RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue<T>), (bool)) operator!=(const T& rhs) const { return !(*this == rhs); }
1000
+
1001
+ //! Equal-to operator with arbitrary types (symmetric version)
1002
+ /*! \return (rhs == lhs)
1003
+ */
1004
+ template <typename T> friend RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue<T>), (bool)) operator==(const T& lhs, const GenericValue& rhs) { return rhs == lhs; }
1005
+
1006
+ //! Not-Equal-to operator with arbitrary types (symmetric version)
1007
+ /*! \return !(rhs == lhs)
1008
+ */
1009
+ template <typename T> friend RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue<T>), (bool)) operator!=(const T& lhs, const GenericValue& rhs) { return !(rhs == lhs); }
1010
+ //@}
1011
+
1012
+ //!@name Type
1013
+ //@{
1014
+
1015
+ Type GetType() const { return static_cast<Type>(data_.f.flags & kTypeMask); }
1016
+ bool IsNull() const { return data_.f.flags == kNullFlag; }
1017
+ bool IsFalse() const { return data_.f.flags == kFalseFlag; }
1018
+ bool IsTrue() const { return data_.f.flags == kTrueFlag; }
1019
+ bool IsBool() const { return (data_.f.flags & kBoolFlag) != 0; }
1020
+ bool IsObject() const { return data_.f.flags == kObjectFlag; }
1021
+ bool IsArray() const { return data_.f.flags == kArrayFlag; }
1022
+ bool IsNumber() const { return (data_.f.flags & kNumberFlag) != 0; }
1023
+ bool IsInt() const { return (data_.f.flags & kIntFlag) != 0; }
1024
+ bool IsUint() const { return (data_.f.flags & kUintFlag) != 0; }
1025
+ bool IsInt64() const { return (data_.f.flags & kInt64Flag) != 0; }
1026
+ bool IsUint64() const { return (data_.f.flags & kUint64Flag) != 0; }
1027
+ bool IsDouble() const { return (data_.f.flags & kDoubleFlag) != 0; }
1028
+ bool IsString() const { return (data_.f.flags & kStringFlag) != 0; }
1029
+
1030
+ // Checks whether a number can be losslessly converted to a double.
1031
+ bool IsLosslessDouble() const {
1032
+ if (!IsNumber()) return false;
1033
+ if (IsUint64()) {
1034
+ uint64_t u = GetUint64();
1035
+ volatile double d = static_cast<double>(u);
1036
+ return (d >= 0.0)
1037
+ && (d < static_cast<double>((std::numeric_limits<uint64_t>::max)()))
1038
+ && (u == static_cast<uint64_t>(d));
1039
+ }
1040
+ if (IsInt64()) {
1041
+ int64_t i = GetInt64();
1042
+ volatile double d = static_cast<double>(i);
1043
+ return (d >= static_cast<double>((std::numeric_limits<int64_t>::min)()))
1044
+ && (d < static_cast<double>((std::numeric_limits<int64_t>::max)()))
1045
+ && (i == static_cast<int64_t>(d));
1046
+ }
1047
+ return true; // double, int, uint are always lossless
1048
+ }
1049
+
1050
+ // Checks whether a number is a float (possible lossy).
1051
+ bool IsFloat() const {
1052
+ if ((data_.f.flags & kDoubleFlag) == 0)
1053
+ return false;
1054
+ double d = GetDouble();
1055
+ return d >= -3.4028234e38 && d <= 3.4028234e38;
1056
+ }
1057
+ // Checks whether a number can be losslessly converted to a float.
1058
+ bool IsLosslessFloat() const {
1059
+ if (!IsNumber()) return false;
1060
+ double a = GetDouble();
1061
+ if (a < static_cast<double>(-(std::numeric_limits<float>::max)())
1062
+ || a > static_cast<double>((std::numeric_limits<float>::max)()))
1063
+ return false;
1064
+ double b = static_cast<double>(static_cast<float>(a));
1065
+ return a >= b && a <= b; // Prevent -Wfloat-equal
1066
+ }
1067
+
1068
+ //@}
1069
+
1070
+ //!@name Null
1071
+ //@{
1072
+
1073
+ GenericValue& SetNull() { this->~GenericValue(); new (this) GenericValue(); return *this; }
1074
+
1075
+ //@}
1076
+
1077
+ //!@name Bool
1078
+ //@{
1079
+
1080
+ bool GetBool() const { RAPIDJSON_ASSERT(IsBool()); return data_.f.flags == kTrueFlag; }
1081
+ //!< Set boolean value
1082
+ /*! \post IsBool() == true */
1083
+ GenericValue& SetBool(bool b) { this->~GenericValue(); new (this) GenericValue(b); return *this; }
1084
+
1085
+ //@}
1086
+
1087
+ //!@name Object
1088
+ //@{
1089
+
1090
+ //! Set this value as an empty object.
1091
+ /*! \post IsObject() == true */
1092
+ GenericValue& SetObject() { this->~GenericValue(); new (this) GenericValue(kObjectType); return *this; }
1093
+
1094
+ //! Get the number of members in the object.
1095
+ SizeType MemberCount() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.size; }
1096
+
1097
+ //! Get the capacity of object.
1098
+ SizeType MemberCapacity() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.capacity; }
1099
+
1100
+ //! Check whether the object is empty.
1101
+ bool ObjectEmpty() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.size == 0; }
1102
+
1103
+ //! Get a value from an object associated with the name.
1104
+ /*! \pre IsObject() == true
1105
+ \tparam T Either \c Ch or \c const \c Ch (template used for disambiguation with \ref operator[](SizeType))
1106
+ \note In version 0.1x, if the member is not found, this function returns a null value. This makes issue 7.
1107
+ Since 0.2, if the name is not correct, it will assert.
1108
+ If user is unsure whether a member exists, user should use HasMember() first.
1109
+ A better approach is to use FindMember().
1110
+ \note Linear time complexity.
1111
+ */
1112
+ template <typename T>
1113
+ RAPIDJSON_DISABLEIF_RETURN((internal::NotExpr<internal::IsSame<typename internal::RemoveConst<T>::Type, Ch> >),(GenericValue&)) operator[](T* name) {
1114
+ GenericValue n(StringRef(name));
1115
+ return (*this)[n];
1116
+ }
1117
+ template <typename T>
1118
+ RAPIDJSON_DISABLEIF_RETURN((internal::NotExpr<internal::IsSame<typename internal::RemoveConst<T>::Type, Ch> >),(const GenericValue&)) operator[](T* name) const { return const_cast<GenericValue&>(*this)[name]; }
1119
+
1120
+ //! Get a value from an object associated with the name.
1121
+ /*! \pre IsObject() == true
1122
+ \tparam SourceAllocator Allocator of the \c name value
1123
+
1124
+ \note Compared to \ref operator[](T*), this version is faster because it does not need a StrLen().
1125
+ And it can also handle strings with embedded null characters.
1126
+
1127
+ \note Linear time complexity.
1128
+ */
1129
+ template <typename SourceAllocator>
1130
+ GenericValue& operator[](const GenericValue<Encoding, SourceAllocator>& name) {
1131
+ MemberIterator member = FindMember(name);
1132
+ if (member != MemberEnd())
1133
+ return member->value;
1134
+ else {
1135
+ RAPIDJSON_ASSERT(false); // see above note
1136
+
1137
+ // This will generate -Wexit-time-destructors in clang
1138
+ // static GenericValue NullValue;
1139
+ // return NullValue;
1140
+
1141
+ // Use static buffer and placement-new to prevent destruction
1142
+ static char buffer[sizeof(GenericValue)];
1143
+ return *new (buffer) GenericValue();
1144
+ }
1145
+ }
1146
+ template <typename SourceAllocator>
1147
+ const GenericValue& operator[](const GenericValue<Encoding, SourceAllocator>& name) const { return const_cast<GenericValue&>(*this)[name]; }
1148
+
1149
+ #if RAPIDJSON_HAS_STDSTRING
1150
+ //! Get a value from an object associated with name (string object).
1151
+ GenericValue& operator[](const std::basic_string<Ch>& name) { return (*this)[GenericValue(StringRef(name))]; }
1152
+ const GenericValue& operator[](const std::basic_string<Ch>& name) const { return (*this)[GenericValue(StringRef(name))]; }
1153
+ #endif
1154
+
1155
+ //! Const member iterator
1156
+ /*! \pre IsObject() == true */
1157
+ ConstMemberIterator MemberBegin() const { RAPIDJSON_ASSERT(IsObject()); return ConstMemberIterator(GetMembersPointer()); }
1158
+ //! Const \em past-the-end member iterator
1159
+ /*! \pre IsObject() == true */
1160
+ ConstMemberIterator MemberEnd() const { RAPIDJSON_ASSERT(IsObject()); return ConstMemberIterator(GetMembersPointer() + data_.o.size); }
1161
+ //! Member iterator
1162
+ /*! \pre IsObject() == true */
1163
+ MemberIterator MemberBegin() { RAPIDJSON_ASSERT(IsObject()); return MemberIterator(GetMembersPointer()); }
1164
+ //! \em Past-the-end member iterator
1165
+ /*! \pre IsObject() == true */
1166
+ MemberIterator MemberEnd() { RAPIDJSON_ASSERT(IsObject()); return MemberIterator(GetMembersPointer() + data_.o.size); }
1167
+
1168
+ //! Request the object to have enough capacity to store members.
1169
+ /*! \param newCapacity The capacity that the object at least need to have.
1170
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1171
+ \return The value itself for fluent API.
1172
+ \note Linear time complexity.
1173
+ */
1174
+ GenericValue& MemberReserve(SizeType newCapacity, Allocator &allocator) {
1175
+ RAPIDJSON_ASSERT(IsObject());
1176
+ if (newCapacity > data_.o.capacity) {
1177
+ SetMembersPointer(reinterpret_cast<Member*>(allocator.Realloc(GetMembersPointer(), data_.o.capacity * sizeof(Member), newCapacity * sizeof(Member))));
1178
+ data_.o.capacity = newCapacity;
1179
+ }
1180
+ return *this;
1181
+ }
1182
+
1183
+ //! Check whether a member exists in the object.
1184
+ /*!
1185
+ \param name Member name to be searched.
1186
+ \pre IsObject() == true
1187
+ \return Whether a member with that name exists.
1188
+ \note It is better to use FindMember() directly if you need the obtain the value as well.
1189
+ \note Linear time complexity.
1190
+ */
1191
+ bool HasMember(const Ch* name) const { return FindMember(name) != MemberEnd(); }
1192
+
1193
+ #if RAPIDJSON_HAS_STDSTRING
1194
+ //! Check whether a member exists in the object with string object.
1195
+ /*!
1196
+ \param name Member name to be searched.
1197
+ \pre IsObject() == true
1198
+ \return Whether a member with that name exists.
1199
+ \note It is better to use FindMember() directly if you need the obtain the value as well.
1200
+ \note Linear time complexity.
1201
+ */
1202
+ bool HasMember(const std::basic_string<Ch>& name) const { return FindMember(name) != MemberEnd(); }
1203
+ #endif
1204
+
1205
+ //! Check whether a member exists in the object with GenericValue name.
1206
+ /*!
1207
+ This version is faster because it does not need a StrLen(). It can also handle string with null character.
1208
+ \param name Member name to be searched.
1209
+ \pre IsObject() == true
1210
+ \return Whether a member with that name exists.
1211
+ \note It is better to use FindMember() directly if you need the obtain the value as well.
1212
+ \note Linear time complexity.
1213
+ */
1214
+ template <typename SourceAllocator>
1215
+ bool HasMember(const GenericValue<Encoding, SourceAllocator>& name) const { return FindMember(name) != MemberEnd(); }
1216
+
1217
+ //! Find member by name.
1218
+ /*!
1219
+ \param name Member name to be searched.
1220
+ \pre IsObject() == true
1221
+ \return Iterator to member, if it exists.
1222
+ Otherwise returns \ref MemberEnd().
1223
+
1224
+ \note Earlier versions of Rapidjson returned a \c NULL pointer, in case
1225
+ the requested member doesn't exist. For consistency with e.g.
1226
+ \c std::map, this has been changed to MemberEnd() now.
1227
+ \note Linear time complexity.
1228
+ */
1229
+ MemberIterator FindMember(const Ch* name) {
1230
+ GenericValue n(StringRef(name));
1231
+ return FindMember(n);
1232
+ }
1233
+
1234
+ ConstMemberIterator FindMember(const Ch* name) const { return const_cast<GenericValue&>(*this).FindMember(name); }
1235
+
1236
+ //! Find member by name.
1237
+ /*!
1238
+ This version is faster because it does not need a StrLen(). It can also handle string with null character.
1239
+ \param name Member name to be searched.
1240
+ \pre IsObject() == true
1241
+ \return Iterator to member, if it exists.
1242
+ Otherwise returns \ref MemberEnd().
1243
+
1244
+ \note Earlier versions of Rapidjson returned a \c NULL pointer, in case
1245
+ the requested member doesn't exist. For consistency with e.g.
1246
+ \c std::map, this has been changed to MemberEnd() now.
1247
+ \note Linear time complexity.
1248
+ */
1249
+ template <typename SourceAllocator>
1250
+ MemberIterator FindMember(const GenericValue<Encoding, SourceAllocator>& name) {
1251
+ RAPIDJSON_ASSERT(IsObject());
1252
+ RAPIDJSON_ASSERT(name.IsString());
1253
+ MemberIterator member = MemberBegin();
1254
+ for ( ; member != MemberEnd(); ++member)
1255
+ if (name.StringEqual(member->name))
1256
+ break;
1257
+ return member;
1258
+ }
1259
+ template <typename SourceAllocator> ConstMemberIterator FindMember(const GenericValue<Encoding, SourceAllocator>& name) const { return const_cast<GenericValue&>(*this).FindMember(name); }
1260
+
1261
+ #if RAPIDJSON_HAS_STDSTRING
1262
+ //! Find member by string object name.
1263
+ /*!
1264
+ \param name Member name to be searched.
1265
+ \pre IsObject() == true
1266
+ \return Iterator to member, if it exists.
1267
+ Otherwise returns \ref MemberEnd().
1268
+ */
1269
+ MemberIterator FindMember(const std::basic_string<Ch>& name) { return FindMember(GenericValue(StringRef(name))); }
1270
+ ConstMemberIterator FindMember(const std::basic_string<Ch>& name) const { return FindMember(GenericValue(StringRef(name))); }
1271
+ #endif
1272
+
1273
+ //! Add a member (name-value pair) to the object.
1274
+ /*! \param name A string value as name of member.
1275
+ \param value Value of any type.
1276
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1277
+ \return The value itself for fluent API.
1278
+ \note The ownership of \c name and \c value will be transferred to this object on success.
1279
+ \pre IsObject() && name.IsString()
1280
+ \post name.IsNull() && value.IsNull()
1281
+ \note Amortized Constant time complexity.
1282
+ */
1283
+ GenericValue& AddMember(GenericValue& name, GenericValue& value, Allocator& allocator) {
1284
+ RAPIDJSON_ASSERT(IsObject());
1285
+ RAPIDJSON_ASSERT(name.IsString());
1286
+
1287
+ ObjectData& o = data_.o;
1288
+ if (o.size >= o.capacity)
1289
+ MemberReserve(o.capacity == 0 ? kDefaultObjectCapacity : (o.capacity + (o.capacity + 1) / 2), allocator);
1290
+ Member* members = GetMembersPointer();
1291
+ members[o.size].name.RawAssign(name);
1292
+ members[o.size].value.RawAssign(value);
1293
+ o.size++;
1294
+ return *this;
1295
+ }
1296
+
1297
+ //! Add a constant string value as member (name-value pair) to the object.
1298
+ /*! \param name A string value as name of member.
1299
+ \param value constant string reference as value of member.
1300
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1301
+ \return The value itself for fluent API.
1302
+ \pre IsObject()
1303
+ \note This overload is needed to avoid clashes with the generic primitive type AddMember(GenericValue&,T,Allocator&) overload below.
1304
+ \note Amortized Constant time complexity.
1305
+ */
1306
+ GenericValue& AddMember(GenericValue& name, StringRefType value, Allocator& allocator) {
1307
+ GenericValue v(value);
1308
+ return AddMember(name, v, allocator);
1309
+ }
1310
+
1311
+ #if RAPIDJSON_HAS_STDSTRING
1312
+ //! Add a string object as member (name-value pair) to the object.
1313
+ /*! \param name A string value as name of member.
1314
+ \param value constant string reference as value of member.
1315
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1316
+ \return The value itself for fluent API.
1317
+ \pre IsObject()
1318
+ \note This overload is needed to avoid clashes with the generic primitive type AddMember(GenericValue&,T,Allocator&) overload below.
1319
+ \note Amortized Constant time complexity.
1320
+ */
1321
+ GenericValue& AddMember(GenericValue& name, std::basic_string<Ch>& value, Allocator& allocator) {
1322
+ GenericValue v(value, allocator);
1323
+ return AddMember(name, v, allocator);
1324
+ }
1325
+ #endif
1326
+
1327
+ //! Add any primitive value as member (name-value pair) to the object.
1328
+ /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t
1329
+ \param name A string value as name of member.
1330
+ \param value Value of primitive type \c T as value of member
1331
+ \param allocator Allocator for reallocating memory. Commonly use GenericDocument::GetAllocator().
1332
+ \return The value itself for fluent API.
1333
+ \pre IsObject()
1334
+
1335
+ \note The source type \c T explicitly disallows all pointer types,
1336
+ especially (\c const) \ref Ch*. This helps avoiding implicitly
1337
+ referencing character strings with insufficient lifetime, use
1338
+ \ref AddMember(StringRefType, GenericValue&, Allocator&) or \ref
1339
+ AddMember(StringRefType, StringRefType, Allocator&).
1340
+ All other pointer types would implicitly convert to \c bool,
1341
+ use an explicit cast instead, if needed.
1342
+ \note Amortized Constant time complexity.
1343
+ */
1344
+ template <typename T>
1345
+ RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr<internal::IsPointer<T>, internal::IsGenericValue<T> >), (GenericValue&))
1346
+ AddMember(GenericValue& name, T value, Allocator& allocator) {
1347
+ GenericValue v(value);
1348
+ return AddMember(name, v, allocator);
1349
+ }
1350
+
1351
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
1352
+ GenericValue& AddMember(GenericValue&& name, GenericValue&& value, Allocator& allocator) {
1353
+ return AddMember(name, value, allocator);
1354
+ }
1355
+ GenericValue& AddMember(GenericValue&& name, GenericValue& value, Allocator& allocator) {
1356
+ return AddMember(name, value, allocator);
1357
+ }
1358
+ GenericValue& AddMember(GenericValue& name, GenericValue&& value, Allocator& allocator) {
1359
+ return AddMember(name, value, allocator);
1360
+ }
1361
+ GenericValue& AddMember(StringRefType name, GenericValue&& value, Allocator& allocator) {
1362
+ GenericValue n(name);
1363
+ return AddMember(n, value, allocator);
1364
+ }
1365
+ #endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
1366
+
1367
+
1368
+ //! Add a member (name-value pair) to the object.
1369
+ /*! \param name A constant string reference as name of member.
1370
+ \param value Value of any type.
1371
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1372
+ \return The value itself for fluent API.
1373
+ \note The ownership of \c value will be transferred to this object on success.
1374
+ \pre IsObject()
1375
+ \post value.IsNull()
1376
+ \note Amortized Constant time complexity.
1377
+ */
1378
+ GenericValue& AddMember(StringRefType name, GenericValue& value, Allocator& allocator) {
1379
+ GenericValue n(name);
1380
+ return AddMember(n, value, allocator);
1381
+ }
1382
+
1383
+ //! Add a constant string value as member (name-value pair) to the object.
1384
+ /*! \param name A constant string reference as name of member.
1385
+ \param value constant string reference as value of member.
1386
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1387
+ \return The value itself for fluent API.
1388
+ \pre IsObject()
1389
+ \note This overload is needed to avoid clashes with the generic primitive type AddMember(StringRefType,T,Allocator&) overload below.
1390
+ \note Amortized Constant time complexity.
1391
+ */
1392
+ GenericValue& AddMember(StringRefType name, StringRefType value, Allocator& allocator) {
1393
+ GenericValue v(value);
1394
+ return AddMember(name, v, allocator);
1395
+ }
1396
+
1397
+ //! Add any primitive value as member (name-value pair) to the object.
1398
+ /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t
1399
+ \param name A constant string reference as name of member.
1400
+ \param value Value of primitive type \c T as value of member
1401
+ \param allocator Allocator for reallocating memory. Commonly use GenericDocument::GetAllocator().
1402
+ \return The value itself for fluent API.
1403
+ \pre IsObject()
1404
+
1405
+ \note The source type \c T explicitly disallows all pointer types,
1406
+ especially (\c const) \ref Ch*. This helps avoiding implicitly
1407
+ referencing character strings with insufficient lifetime, use
1408
+ \ref AddMember(StringRefType, GenericValue&, Allocator&) or \ref
1409
+ AddMember(StringRefType, StringRefType, Allocator&).
1410
+ All other pointer types would implicitly convert to \c bool,
1411
+ use an explicit cast instead, if needed.
1412
+ \note Amortized Constant time complexity.
1413
+ */
1414
+ template <typename T>
1415
+ RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr<internal::IsPointer<T>, internal::IsGenericValue<T> >), (GenericValue&))
1416
+ AddMember(StringRefType name, T value, Allocator& allocator) {
1417
+ GenericValue n(name);
1418
+ return AddMember(n, value, allocator);
1419
+ }
1420
+
1421
+ //! Remove all members in the object.
1422
+ /*! This function do not deallocate memory in the object, i.e. the capacity is unchanged.
1423
+ \note Linear time complexity.
1424
+ */
1425
+ void RemoveAllMembers() {
1426
+ RAPIDJSON_ASSERT(IsObject());
1427
+ for (MemberIterator m = MemberBegin(); m != MemberEnd(); ++m)
1428
+ m->~Member();
1429
+ data_.o.size = 0;
1430
+ }
1431
+
1432
+ //! Remove a member in object by its name.
1433
+ /*! \param name Name of member to be removed.
1434
+ \return Whether the member existed.
1435
+ \note This function may reorder the object members. Use \ref
1436
+ EraseMember(ConstMemberIterator) if you need to preserve the
1437
+ relative order of the remaining members.
1438
+ \note Linear time complexity.
1439
+ */
1440
+ bool RemoveMember(const Ch* name) {
1441
+ GenericValue n(StringRef(name));
1442
+ return RemoveMember(n);
1443
+ }
1444
+
1445
+ #if RAPIDJSON_HAS_STDSTRING
1446
+ bool RemoveMember(const std::basic_string<Ch>& name) { return RemoveMember(GenericValue(StringRef(name))); }
1447
+ #endif
1448
+
1449
+ template <typename SourceAllocator>
1450
+ bool RemoveMember(const GenericValue<Encoding, SourceAllocator>& name) {
1451
+ MemberIterator m = FindMember(name);
1452
+ if (m != MemberEnd()) {
1453
+ RemoveMember(m);
1454
+ return true;
1455
+ }
1456
+ else
1457
+ return false;
1458
+ }
1459
+
1460
+ //! Remove a member in object by iterator.
1461
+ /*! \param m member iterator (obtained by FindMember() or MemberBegin()).
1462
+ \return the new iterator after removal.
1463
+ \note This function may reorder the object members. Use \ref
1464
+ EraseMember(ConstMemberIterator) if you need to preserve the
1465
+ relative order of the remaining members.
1466
+ \note Constant time complexity.
1467
+ */
1468
+ MemberIterator RemoveMember(MemberIterator m) {
1469
+ RAPIDJSON_ASSERT(IsObject());
1470
+ RAPIDJSON_ASSERT(data_.o.size > 0);
1471
+ RAPIDJSON_ASSERT(GetMembersPointer() != 0);
1472
+ RAPIDJSON_ASSERT(m >= MemberBegin() && m < MemberEnd());
1473
+
1474
+ MemberIterator last(GetMembersPointer() + (data_.o.size - 1));
1475
+ if (data_.o.size > 1 && m != last)
1476
+ *m = *last; // Move the last one to this place
1477
+ else
1478
+ m->~Member(); // Only one left, just destroy
1479
+ --data_.o.size;
1480
+ return m;
1481
+ }
1482
+
1483
+ //! Remove a member from an object by iterator.
1484
+ /*! \param pos iterator to the member to remove
1485
+ \pre IsObject() == true && \ref MemberBegin() <= \c pos < \ref MemberEnd()
1486
+ \return Iterator following the removed element.
1487
+ If the iterator \c pos refers to the last element, the \ref MemberEnd() iterator is returned.
1488
+ \note This function preserves the relative order of the remaining object
1489
+ members. If you do not need this, use the more efficient \ref RemoveMember(MemberIterator).
1490
+ \note Linear time complexity.
1491
+ */
1492
+ MemberIterator EraseMember(ConstMemberIterator pos) {
1493
+ return EraseMember(pos, pos +1);
1494
+ }
1495
+
1496
+ //! Remove members in the range [first, last) from an object.
1497
+ /*! \param first iterator to the first member to remove
1498
+ \param last iterator following the last member to remove
1499
+ \pre IsObject() == true && \ref MemberBegin() <= \c first <= \c last <= \ref MemberEnd()
1500
+ \return Iterator following the last removed element.
1501
+ \note This function preserves the relative order of the remaining object
1502
+ members.
1503
+ \note Linear time complexity.
1504
+ */
1505
+ MemberIterator EraseMember(ConstMemberIterator first, ConstMemberIterator last) {
1506
+ RAPIDJSON_ASSERT(IsObject());
1507
+ RAPIDJSON_ASSERT(data_.o.size > 0);
1508
+ RAPIDJSON_ASSERT(GetMembersPointer() != 0);
1509
+ RAPIDJSON_ASSERT(first >= MemberBegin());
1510
+ RAPIDJSON_ASSERT(first <= last);
1511
+ RAPIDJSON_ASSERT(last <= MemberEnd());
1512
+
1513
+ MemberIterator pos = MemberBegin() + (first - MemberBegin());
1514
+ for (MemberIterator itr = pos; itr != last; ++itr)
1515
+ itr->~Member();
1516
+ std::memmove(&*pos, &*last, static_cast<size_t>(MemberEnd() - last) * sizeof(Member));
1517
+ data_.o.size -= static_cast<SizeType>(last - first);
1518
+ return pos;
1519
+ }
1520
+
1521
+ //! Erase a member in object by its name.
1522
+ /*! \param name Name of member to be removed.
1523
+ \return Whether the member existed.
1524
+ \note Linear time complexity.
1525
+ */
1526
+ bool EraseMember(const Ch* name) {
1527
+ GenericValue n(StringRef(name));
1528
+ return EraseMember(n);
1529
+ }
1530
+
1531
+ #if RAPIDJSON_HAS_STDSTRING
1532
+ bool EraseMember(const std::basic_string<Ch>& name) { return EraseMember(GenericValue(StringRef(name))); }
1533
+ #endif
1534
+
1535
+ template <typename SourceAllocator>
1536
+ bool EraseMember(const GenericValue<Encoding, SourceAllocator>& name) {
1537
+ MemberIterator m = FindMember(name);
1538
+ if (m != MemberEnd()) {
1539
+ EraseMember(m);
1540
+ return true;
1541
+ }
1542
+ else
1543
+ return false;
1544
+ }
1545
+
1546
+ Object GetObject() { RAPIDJSON_ASSERT(IsObject()); return Object(*this); }
1547
+ ConstObject GetObject() const { RAPIDJSON_ASSERT(IsObject()); return ConstObject(*this); }
1548
+
1549
+ //@}
1550
+
1551
+ //!@name Array
1552
+ //@{
1553
+
1554
+ //! Set this value as an empty array.
1555
+ /*! \post IsArray == true */
1556
+ GenericValue& SetArray() { this->~GenericValue(); new (this) GenericValue(kArrayType); return *this; }
1557
+
1558
+ //! Get the number of elements in array.
1559
+ SizeType Size() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.size; }
1560
+
1561
+ //! Get the capacity of array.
1562
+ SizeType Capacity() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.capacity; }
1563
+
1564
+ //! Check whether the array is empty.
1565
+ bool Empty() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.size == 0; }
1566
+
1567
+ //! Remove all elements in the array.
1568
+ /*! This function do not deallocate memory in the array, i.e. the capacity is unchanged.
1569
+ \note Linear time complexity.
1570
+ */
1571
+ void Clear() {
1572
+ RAPIDJSON_ASSERT(IsArray());
1573
+ GenericValue* e = GetElementsPointer();
1574
+ for (GenericValue* v = e; v != e + data_.a.size; ++v)
1575
+ v->~GenericValue();
1576
+ data_.a.size = 0;
1577
+ }
1578
+
1579
+ //! Get an element from array by index.
1580
+ /*! \pre IsArray() == true
1581
+ \param index Zero-based index of element.
1582
+ \see operator[](T*)
1583
+ */
1584
+ GenericValue& operator[](SizeType index) {
1585
+ RAPIDJSON_ASSERT(IsArray());
1586
+ RAPIDJSON_ASSERT(index < data_.a.size);
1587
+ return GetElementsPointer()[index];
1588
+ }
1589
+ const GenericValue& operator[](SizeType index) const { return const_cast<GenericValue&>(*this)[index]; }
1590
+
1591
+ //! Element iterator
1592
+ /*! \pre IsArray() == true */
1593
+ ValueIterator Begin() { RAPIDJSON_ASSERT(IsArray()); return GetElementsPointer(); }
1594
+ //! \em Past-the-end element iterator
1595
+ /*! \pre IsArray() == true */
1596
+ ValueIterator End() { RAPIDJSON_ASSERT(IsArray()); return GetElementsPointer() + data_.a.size; }
1597
+ //! Constant element iterator
1598
+ /*! \pre IsArray() == true */
1599
+ ConstValueIterator Begin() const { return const_cast<GenericValue&>(*this).Begin(); }
1600
+ //! Constant \em past-the-end element iterator
1601
+ /*! \pre IsArray() == true */
1602
+ ConstValueIterator End() const { return const_cast<GenericValue&>(*this).End(); }
1603
+
1604
+ //! Request the array to have enough capacity to store elements.
1605
+ /*! \param newCapacity The capacity that the array at least need to have.
1606
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1607
+ \return The value itself for fluent API.
1608
+ \note Linear time complexity.
1609
+ */
1610
+ GenericValue& Reserve(SizeType newCapacity, Allocator &allocator) {
1611
+ RAPIDJSON_ASSERT(IsArray());
1612
+ if (newCapacity > data_.a.capacity) {
1613
+ SetElementsPointer(reinterpret_cast<GenericValue*>(allocator.Realloc(GetElementsPointer(), data_.a.capacity * sizeof(GenericValue), newCapacity * sizeof(GenericValue))));
1614
+ data_.a.capacity = newCapacity;
1615
+ }
1616
+ return *this;
1617
+ }
1618
+
1619
+ //! Append a GenericValue at the end of the array.
1620
+ /*! \param value Value to be appended.
1621
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1622
+ \pre IsArray() == true
1623
+ \post value.IsNull() == true
1624
+ \return The value itself for fluent API.
1625
+ \note The ownership of \c value will be transferred to this array on success.
1626
+ \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient.
1627
+ \note Amortized constant time complexity.
1628
+ */
1629
+ GenericValue& PushBack(GenericValue& value, Allocator& allocator) {
1630
+ RAPIDJSON_ASSERT(IsArray());
1631
+ if (data_.a.size >= data_.a.capacity)
1632
+ Reserve(data_.a.capacity == 0 ? kDefaultArrayCapacity : (data_.a.capacity + (data_.a.capacity + 1) / 2), allocator);
1633
+ GetElementsPointer()[data_.a.size++].RawAssign(value);
1634
+ return *this;
1635
+ }
1636
+
1637
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
1638
+ GenericValue& PushBack(GenericValue&& value, Allocator& allocator) {
1639
+ return PushBack(value, allocator);
1640
+ }
1641
+ #endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
1642
+
1643
+ //! Append a constant string reference at the end of the array.
1644
+ /*! \param value Constant string reference to be appended.
1645
+ \param allocator Allocator for reallocating memory. It must be the same one used previously. Commonly use GenericDocument::GetAllocator().
1646
+ \pre IsArray() == true
1647
+ \return The value itself for fluent API.
1648
+ \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient.
1649
+ \note Amortized constant time complexity.
1650
+ \see GenericStringRef
1651
+ */
1652
+ GenericValue& PushBack(StringRefType value, Allocator& allocator) {
1653
+ return (*this).template PushBack<StringRefType>(value, allocator);
1654
+ }
1655
+
1656
+ //! Append a primitive value at the end of the array.
1657
+ /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t
1658
+ \param value Value of primitive type T to be appended.
1659
+ \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator().
1660
+ \pre IsArray() == true
1661
+ \return The value itself for fluent API.
1662
+ \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient.
1663
+
1664
+ \note The source type \c T explicitly disallows all pointer types,
1665
+ especially (\c const) \ref Ch*. This helps avoiding implicitly
1666
+ referencing character strings with insufficient lifetime, use
1667
+ \ref PushBack(GenericValue&, Allocator&) or \ref
1668
+ PushBack(StringRefType, Allocator&).
1669
+ All other pointer types would implicitly convert to \c bool,
1670
+ use an explicit cast instead, if needed.
1671
+ \note Amortized constant time complexity.
1672
+ */
1673
+ template <typename T>
1674
+ RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr<internal::IsPointer<T>, internal::IsGenericValue<T> >), (GenericValue&))
1675
+ PushBack(T value, Allocator& allocator) {
1676
+ GenericValue v(value);
1677
+ return PushBack(v, allocator);
1678
+ }
1679
+
1680
+ //! Remove the last element in the array.
1681
+ /*!
1682
+ \note Constant time complexity.
1683
+ */
1684
+ GenericValue& PopBack() {
1685
+ RAPIDJSON_ASSERT(IsArray());
1686
+ RAPIDJSON_ASSERT(!Empty());
1687
+ GetElementsPointer()[--data_.a.size].~GenericValue();
1688
+ return *this;
1689
+ }
1690
+
1691
+ //! Remove an element of array by iterator.
1692
+ /*!
1693
+ \param pos iterator to the element to remove
1694
+ \pre IsArray() == true && \ref Begin() <= \c pos < \ref End()
1695
+ \return Iterator following the removed element. If the iterator pos refers to the last element, the End() iterator is returned.
1696
+ \note Linear time complexity.
1697
+ */
1698
+ ValueIterator Erase(ConstValueIterator pos) {
1699
+ return Erase(pos, pos + 1);
1700
+ }
1701
+
1702
+ //! Remove elements in the range [first, last) of the array.
1703
+ /*!
1704
+ \param first iterator to the first element to remove
1705
+ \param last iterator following the last element to remove
1706
+ \pre IsArray() == true && \ref Begin() <= \c first <= \c last <= \ref End()
1707
+ \return Iterator following the last removed element.
1708
+ \note Linear time complexity.
1709
+ */
1710
+ ValueIterator Erase(ConstValueIterator first, ConstValueIterator last) {
1711
+ RAPIDJSON_ASSERT(IsArray());
1712
+ RAPIDJSON_ASSERT(data_.a.size > 0);
1713
+ RAPIDJSON_ASSERT(GetElementsPointer() != 0);
1714
+ RAPIDJSON_ASSERT(first >= Begin());
1715
+ RAPIDJSON_ASSERT(first <= last);
1716
+ RAPIDJSON_ASSERT(last <= End());
1717
+ ValueIterator pos = Begin() + (first - Begin());
1718
+ for (ValueIterator itr = pos; itr != last; ++itr)
1719
+ itr->~GenericValue();
1720
+ std::memmove(pos, last, static_cast<size_t>(End() - last) * sizeof(GenericValue));
1721
+ data_.a.size -= static_cast<SizeType>(last - first);
1722
+ return pos;
1723
+ }
1724
+
1725
+ Array GetArray() { RAPIDJSON_ASSERT(IsArray()); return Array(*this); }
1726
+ ConstArray GetArray() const { RAPIDJSON_ASSERT(IsArray()); return ConstArray(*this); }
1727
+
1728
+ //@}
1729
+
1730
+ //!@name Number
1731
+ //@{
1732
+
1733
+ int GetInt() const { RAPIDJSON_ASSERT(data_.f.flags & kIntFlag); return data_.n.i.i; }
1734
+ unsigned GetUint() const { RAPIDJSON_ASSERT(data_.f.flags & kUintFlag); return data_.n.u.u; }
1735
+ int64_t GetInt64() const { RAPIDJSON_ASSERT(data_.f.flags & kInt64Flag); return data_.n.i64; }
1736
+ uint64_t GetUint64() const { RAPIDJSON_ASSERT(data_.f.flags & kUint64Flag); return data_.n.u64; }
1737
+
1738
+ //! Get the value as double type.
1739
+ /*! \note If the value is 64-bit integer type, it may lose precision. Use \c IsLosslessDouble() to check whether the converison is lossless.
1740
+ */
1741
+ double GetDouble() const {
1742
+ RAPIDJSON_ASSERT(IsNumber());
1743
+ if ((data_.f.flags & kDoubleFlag) != 0) return data_.n.d; // exact type, no conversion.
1744
+ if ((data_.f.flags & kIntFlag) != 0) return data_.n.i.i; // int -> double
1745
+ if ((data_.f.flags & kUintFlag) != 0) return data_.n.u.u; // unsigned -> double
1746
+ if ((data_.f.flags & kInt64Flag) != 0) return static_cast<double>(data_.n.i64); // int64_t -> double (may lose precision)
1747
+ RAPIDJSON_ASSERT((data_.f.flags & kUint64Flag) != 0); return static_cast<double>(data_.n.u64); // uint64_t -> double (may lose precision)
1748
+ }
1749
+
1750
+ //! Get the value as float type.
1751
+ /*! \note If the value is 64-bit integer type, it may lose precision. Use \c IsLosslessFloat() to check whether the converison is lossless.
1752
+ */
1753
+ float GetFloat() const {
1754
+ return static_cast<float>(GetDouble());
1755
+ }
1756
+
1757
+ GenericValue& SetInt(int i) { this->~GenericValue(); new (this) GenericValue(i); return *this; }
1758
+ GenericValue& SetUint(unsigned u) { this->~GenericValue(); new (this) GenericValue(u); return *this; }
1759
+ GenericValue& SetInt64(int64_t i64) { this->~GenericValue(); new (this) GenericValue(i64); return *this; }
1760
+ GenericValue& SetUint64(uint64_t u64) { this->~GenericValue(); new (this) GenericValue(u64); return *this; }
1761
+ GenericValue& SetDouble(double d) { this->~GenericValue(); new (this) GenericValue(d); return *this; }
1762
+ GenericValue& SetFloat(float f) { this->~GenericValue(); new (this) GenericValue(static_cast<double>(f)); return *this; }
1763
+
1764
+ //@}
1765
+
1766
+ //!@name String
1767
+ //@{
1768
+
1769
+ const Ch* GetString() const { RAPIDJSON_ASSERT(IsString()); return (data_.f.flags & kInlineStrFlag) ? data_.ss.str : GetStringPointer(); }
1770
+
1771
+ //! Get the length of string.
1772
+ /*! Since rapidjson permits "\\u0000" in the json string, strlen(v.GetString()) may not equal to v.GetStringLength().
1773
+ */
1774
+ SizeType GetStringLength() const { RAPIDJSON_ASSERT(IsString()); return ((data_.f.flags & kInlineStrFlag) ? (data_.ss.GetLength()) : data_.s.length); }
1775
+
1776
+ //! Set this value as a string without copying source string.
1777
+ /*! This version has better performance with supplied length, and also support string containing null character.
1778
+ \param s source string pointer.
1779
+ \param length The length of source string, excluding the trailing null terminator.
1780
+ \return The value itself for fluent API.
1781
+ \post IsString() == true && GetString() == s && GetStringLength() == length
1782
+ \see SetString(StringRefType)
1783
+ */
1784
+ GenericValue& SetString(const Ch* s, SizeType length) { return SetString(StringRef(s, length)); }
1785
+
1786
+ //! Set this value as a string without copying source string.
1787
+ /*! \param s source string reference
1788
+ \return The value itself for fluent API.
1789
+ \post IsString() == true && GetString() == s && GetStringLength() == s.length
1790
+ */
1791
+ GenericValue& SetString(StringRefType s) { this->~GenericValue(); SetStringRaw(s); return *this; }
1792
+
1793
+ //! Set this value as a string by copying from source string.
1794
+ /*! This version has better performance with supplied length, and also support string containing null character.
1795
+ \param s source string.
1796
+ \param length The length of source string, excluding the trailing null terminator.
1797
+ \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
1798
+ \return The value itself for fluent API.
1799
+ \post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length
1800
+ */
1801
+ GenericValue& SetString(const Ch* s, SizeType length, Allocator& allocator) { return SetString(StringRef(s, length), allocator); }
1802
+
1803
+ //! Set this value as a string by copying from source string.
1804
+ /*! \param s source string.
1805
+ \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
1806
+ \return The value itself for fluent API.
1807
+ \post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length
1808
+ */
1809
+ GenericValue& SetString(const Ch* s, Allocator& allocator) { return SetString(StringRef(s), allocator); }
1810
+
1811
+ //! Set this value as a string by copying from source string.
1812
+ /*! \param s source string reference
1813
+ \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
1814
+ \return The value itself for fluent API.
1815
+ \post IsString() == true && GetString() != s.s && strcmp(GetString(),s) == 0 && GetStringLength() == length
1816
+ */
1817
+ GenericValue& SetString(StringRefType s, Allocator& allocator) { this->~GenericValue(); SetStringRaw(s, allocator); return *this; }
1818
+
1819
+ #if RAPIDJSON_HAS_STDSTRING
1820
+ //! Set this value as a string by copying from source string.
1821
+ /*! \param s source string.
1822
+ \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
1823
+ \return The value itself for fluent API.
1824
+ \post IsString() == true && GetString() != s.data() && strcmp(GetString(),s.data() == 0 && GetStringLength() == s.size()
1825
+ \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING.
1826
+ */
1827
+ GenericValue& SetString(const std::basic_string<Ch>& s, Allocator& allocator) { return SetString(StringRef(s), allocator); }
1828
+ #endif
1829
+
1830
+ //@}
1831
+
1832
+ //!@name Array
1833
+ //@{
1834
+
1835
+ //! Templated version for checking whether this value is type T.
1836
+ /*!
1837
+ \tparam T Either \c bool, \c int, \c unsigned, \c int64_t, \c uint64_t, \c double, \c float, \c const \c char*, \c std::basic_string<Ch>
1838
+ */
1839
+ template <typename T>
1840
+ bool Is() const { return internal::TypeHelper<ValueType, T>::Is(*this); }
1841
+
1842
+ template <typename T>
1843
+ T Get() const { return internal::TypeHelper<ValueType, T>::Get(*this); }
1844
+
1845
+ template <typename T>
1846
+ T Get() { return internal::TypeHelper<ValueType, T>::Get(*this); }
1847
+
1848
+ template<typename T>
1849
+ ValueType& Set(const T& data) { return internal::TypeHelper<ValueType, T>::Set(*this, data); }
1850
+
1851
+ template<typename T>
1852
+ ValueType& Set(const T& data, AllocatorType& allocator) { return internal::TypeHelper<ValueType, T>::Set(*this, data, allocator); }
1853
+
1854
+ //@}
1855
+
1856
+ //! Generate events of this value to a Handler.
1857
+ /*! This function adopts the GoF visitor pattern.
1858
+ Typical usage is to output this JSON value as JSON text via Writer, which is a Handler.
1859
+ It can also be used to deep clone this value via GenericDocument, which is also a Handler.
1860
+ \tparam Handler type of handler.
1861
+ \param handler An object implementing concept Handler.
1862
+ */
1863
+ template <typename Handler>
1864
+ bool Accept(Handler& handler) const {
1865
+ switch(GetType()) {
1866
+ case kNullType: return handler.Null();
1867
+ case kFalseType: return handler.Bool(false);
1868
+ case kTrueType: return handler.Bool(true);
1869
+
1870
+ case kObjectType:
1871
+ if (RAPIDJSON_UNLIKELY(!handler.StartObject()))
1872
+ return false;
1873
+ for (ConstMemberIterator m = MemberBegin(); m != MemberEnd(); ++m) {
1874
+ RAPIDJSON_ASSERT(m->name.IsString()); // User may change the type of name by MemberIterator.
1875
+ if (RAPIDJSON_UNLIKELY(!handler.Key(m->name.GetString(), m->name.GetStringLength(), (m->name.data_.f.flags & kCopyFlag) != 0)))
1876
+ return false;
1877
+ if (RAPIDJSON_UNLIKELY(!m->value.Accept(handler)))
1878
+ return false;
1879
+ }
1880
+ return handler.EndObject(data_.o.size);
1881
+
1882
+ case kArrayType:
1883
+ if (RAPIDJSON_UNLIKELY(!handler.StartArray()))
1884
+ return false;
1885
+ for (const GenericValue* v = Begin(); v != End(); ++v)
1886
+ if (RAPIDJSON_UNLIKELY(!v->Accept(handler)))
1887
+ return false;
1888
+ return handler.EndArray(data_.a.size);
1889
+
1890
+ case kStringType:
1891
+ return handler.String(GetString(), GetStringLength(), (data_.f.flags & kCopyFlag) != 0);
1892
+
1893
+ default:
1894
+ RAPIDJSON_ASSERT(GetType() == kNumberType);
1895
+ if (IsDouble()) return handler.Double(data_.n.d);
1896
+ else if (IsInt()) return handler.Int(data_.n.i.i);
1897
+ else if (IsUint()) return handler.Uint(data_.n.u.u);
1898
+ else if (IsInt64()) return handler.Int64(data_.n.i64);
1899
+ else return handler.Uint64(data_.n.u64);
1900
+ }
1901
+ }
1902
+
1903
+ private:
1904
+ template <typename, typename> friend class GenericValue;
1905
+ template <typename, typename, typename> friend class GenericDocument;
1906
+
1907
+ enum {
1908
+ kBoolFlag = 0x0008,
1909
+ kNumberFlag = 0x0010,
1910
+ kIntFlag = 0x0020,
1911
+ kUintFlag = 0x0040,
1912
+ kInt64Flag = 0x0080,
1913
+ kUint64Flag = 0x0100,
1914
+ kDoubleFlag = 0x0200,
1915
+ kStringFlag = 0x0400,
1916
+ kCopyFlag = 0x0800,
1917
+ kInlineStrFlag = 0x1000,
1918
+
1919
+ // Initial flags of different types.
1920
+ kNullFlag = kNullType,
1921
+ kTrueFlag = kTrueType | kBoolFlag,
1922
+ kFalseFlag = kFalseType | kBoolFlag,
1923
+ kNumberIntFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag,
1924
+ kNumberUintFlag = kNumberType | kNumberFlag | kUintFlag | kUint64Flag | kInt64Flag,
1925
+ kNumberInt64Flag = kNumberType | kNumberFlag | kInt64Flag,
1926
+ kNumberUint64Flag = kNumberType | kNumberFlag | kUint64Flag,
1927
+ kNumberDoubleFlag = kNumberType | kNumberFlag | kDoubleFlag,
1928
+ kNumberAnyFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag | kUintFlag | kUint64Flag | kDoubleFlag,
1929
+ kConstStringFlag = kStringType | kStringFlag,
1930
+ kCopyStringFlag = kStringType | kStringFlag | kCopyFlag,
1931
+ kShortStringFlag = kStringType | kStringFlag | kCopyFlag | kInlineStrFlag,
1932
+ kObjectFlag = kObjectType,
1933
+ kArrayFlag = kArrayType,
1934
+
1935
+ kTypeMask = 0x07
1936
+ };
1937
+
1938
+ static const SizeType kDefaultArrayCapacity = 16;
1939
+ static const SizeType kDefaultObjectCapacity = 16;
1940
+
1941
+ struct Flag {
1942
+ #if RAPIDJSON_48BITPOINTER_OPTIMIZATION
1943
+ char payload[sizeof(SizeType) * 2 + 6]; // 2 x SizeType + lower 48-bit pointer
1944
+ #elif RAPIDJSON_64BIT
1945
+ char payload[sizeof(SizeType) * 2 + sizeof(void*) + 6]; // 6 padding bytes
1946
+ #else
1947
+ char payload[sizeof(SizeType) * 2 + sizeof(void*) + 2]; // 2 padding bytes
1948
+ #endif
1949
+ uint16_t flags;
1950
+ };
1951
+
1952
+ struct String {
1953
+ SizeType length;
1954
+ SizeType hashcode; //!< reserved
1955
+ const Ch* str;
1956
+ }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode
1957
+
1958
+ // implementation detail: ShortString can represent zero-terminated strings up to MaxSize chars
1959
+ // (excluding the terminating zero) and store a value to determine the length of the contained
1960
+ // string in the last character str[LenPos] by storing "MaxSize - length" there. If the string
1961
+ // to store has the maximal length of MaxSize then str[LenPos] will be 0 and therefore act as
1962
+ // the string terminator as well. For getting the string length back from that value just use
1963
+ // "MaxSize - str[LenPos]".
1964
+ // This allows to store 13-chars strings in 32-bit mode, 21-chars strings in 64-bit mode,
1965
+ // 13-chars strings for RAPIDJSON_48BITPOINTER_OPTIMIZATION=1 inline (for `UTF8`-encoded strings).
1966
+ struct ShortString {
1967
+ enum { MaxChars = sizeof(static_cast<Flag*>(0)->payload) / sizeof(Ch), MaxSize = MaxChars - 1, LenPos = MaxSize };
1968
+ Ch str[MaxChars];
1969
+
1970
+ inline static bool Usable(SizeType len) { return (MaxSize >= len); }
1971
+ inline void SetLength(SizeType len) { str[LenPos] = static_cast<Ch>(MaxSize - len); }
1972
+ inline SizeType GetLength() const { return static_cast<SizeType>(MaxSize - str[LenPos]); }
1973
+ }; // at most as many bytes as "String" above => 12 bytes in 32-bit mode, 16 bytes in 64-bit mode
1974
+
1975
+ // By using proper binary layout, retrieval of different integer types do not need conversions.
1976
+ union Number {
1977
+ #if RAPIDJSON_ENDIAN == RAPIDJSON_LITTLEENDIAN
1978
+ struct I {
1979
+ int i;
1980
+ char padding[4];
1981
+ }i;
1982
+ struct U {
1983
+ unsigned u;
1984
+ char padding2[4];
1985
+ }u;
1986
+ #else
1987
+ struct I {
1988
+ char padding[4];
1989
+ int i;
1990
+ }i;
1991
+ struct U {
1992
+ char padding2[4];
1993
+ unsigned u;
1994
+ }u;
1995
+ #endif
1996
+ int64_t i64;
1997
+ uint64_t u64;
1998
+ double d;
1999
+ }; // 8 bytes
2000
+
2001
+ struct ObjectData {
2002
+ SizeType size;
2003
+ SizeType capacity;
2004
+ Member* members;
2005
+ }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode
2006
+
2007
+ struct ArrayData {
2008
+ SizeType size;
2009
+ SizeType capacity;
2010
+ GenericValue* elements;
2011
+ }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode
2012
+
2013
+ union Data {
2014
+ String s;
2015
+ ShortString ss;
2016
+ Number n;
2017
+ ObjectData o;
2018
+ ArrayData a;
2019
+ Flag f;
2020
+ }; // 16 bytes in 32-bit mode, 24 bytes in 64-bit mode, 16 bytes in 64-bit with RAPIDJSON_48BITPOINTER_OPTIMIZATION
2021
+
2022
+ RAPIDJSON_FORCEINLINE const Ch* GetStringPointer() const { return RAPIDJSON_GETPOINTER(Ch, data_.s.str); }
2023
+ RAPIDJSON_FORCEINLINE const Ch* SetStringPointer(const Ch* str) { return RAPIDJSON_SETPOINTER(Ch, data_.s.str, str); }
2024
+ RAPIDJSON_FORCEINLINE GenericValue* GetElementsPointer() const { return RAPIDJSON_GETPOINTER(GenericValue, data_.a.elements); }
2025
+ RAPIDJSON_FORCEINLINE GenericValue* SetElementsPointer(GenericValue* elements) { return RAPIDJSON_SETPOINTER(GenericValue, data_.a.elements, elements); }
2026
+ RAPIDJSON_FORCEINLINE Member* GetMembersPointer() const { return RAPIDJSON_GETPOINTER(Member, data_.o.members); }
2027
+ RAPIDJSON_FORCEINLINE Member* SetMembersPointer(Member* members) { return RAPIDJSON_SETPOINTER(Member, data_.o.members, members); }
2028
+
2029
+ // Initialize this value as array with initial data, without calling destructor.
2030
+ void SetArrayRaw(GenericValue* values, SizeType count, Allocator& allocator) {
2031
+ data_.f.flags = kArrayFlag;
2032
+ if (count) {
2033
+ GenericValue* e = static_cast<GenericValue*>(allocator.Malloc(count * sizeof(GenericValue)));
2034
+ SetElementsPointer(e);
2035
+ RAPIDJSON_DIAG_PUSH
2036
+ #if defined(__GNUC__) && __GNUC__ >= 8
2037
+ RAPIDJSON_DIAG_OFF(class-memaccess) // ignore complains from gcc that no trivial copy constructor exists.
2038
+ #endif
2039
+ std::memcpy(e, values, count * sizeof(GenericValue));
2040
+ RAPIDJSON_DIAG_POP
2041
+ }
2042
+ else
2043
+ SetElementsPointer(0);
2044
+ data_.a.size = data_.a.capacity = count;
2045
+ }
2046
+
2047
+ //! Initialize this value as object with initial data, without calling destructor.
2048
+ void SetObjectRaw(Member* members, SizeType count, Allocator& allocator) {
2049
+ data_.f.flags = kObjectFlag;
2050
+ if (count) {
2051
+ Member* m = static_cast<Member*>(allocator.Malloc(count * sizeof(Member)));
2052
+ SetMembersPointer(m);
2053
+ RAPIDJSON_DIAG_PUSH
2054
+ #if defined(__GNUC__) && __GNUC__ >= 8
2055
+ RAPIDJSON_DIAG_OFF(class-memaccess) // ignore complains from gcc that no trivial copy constructor exists.
2056
+ #endif
2057
+ std::memcpy(m, members, count * sizeof(Member));
2058
+ RAPIDJSON_DIAG_POP
2059
+ }
2060
+ else
2061
+ SetMembersPointer(0);
2062
+ data_.o.size = data_.o.capacity = count;
2063
+ }
2064
+
2065
+ //! Initialize this value as constant string, without calling destructor.
2066
+ void SetStringRaw(StringRefType s) RAPIDJSON_NOEXCEPT {
2067
+ data_.f.flags = kConstStringFlag;
2068
+ SetStringPointer(s);
2069
+ data_.s.length = s.length;
2070
+ }
2071
+
2072
+ //! Initialize this value as copy string with initial data, without calling destructor.
2073
+ void SetStringRaw(StringRefType s, Allocator& allocator) {
2074
+ Ch* str = 0;
2075
+ if (ShortString::Usable(s.length)) {
2076
+ data_.f.flags = kShortStringFlag;
2077
+ data_.ss.SetLength(s.length);
2078
+ str = data_.ss.str;
2079
+ } else {
2080
+ data_.f.flags = kCopyStringFlag;
2081
+ data_.s.length = s.length;
2082
+ str = static_cast<Ch *>(allocator.Malloc((s.length + 1) * sizeof(Ch)));
2083
+ SetStringPointer(str);
2084
+ }
2085
+ std::memcpy(str, s, s.length * sizeof(Ch));
2086
+ str[s.length] = '\0';
2087
+ }
2088
+
2089
+ //! Assignment without calling destructor
2090
+ void RawAssign(GenericValue& rhs) RAPIDJSON_NOEXCEPT {
2091
+ data_ = rhs.data_;
2092
+ // data_.f.flags = rhs.data_.f.flags;
2093
+ rhs.data_.f.flags = kNullFlag;
2094
+ }
2095
+
2096
+ template <typename SourceAllocator>
2097
+ bool StringEqual(const GenericValue<Encoding, SourceAllocator>& rhs) const {
2098
+ RAPIDJSON_ASSERT(IsString());
2099
+ RAPIDJSON_ASSERT(rhs.IsString());
2100
+
2101
+ const SizeType len1 = GetStringLength();
2102
+ const SizeType len2 = rhs.GetStringLength();
2103
+ if(len1 != len2) { return false; }
2104
+
2105
+ const Ch* const str1 = GetString();
2106
+ const Ch* const str2 = rhs.GetString();
2107
+ if(str1 == str2) { return true; } // fast path for constant string
2108
+
2109
+ return (std::memcmp(str1, str2, sizeof(Ch) * len1) == 0);
2110
+ }
2111
+
2112
+ Data data_;
2113
+ };
2114
+
2115
+ //! GenericValue with UTF8 encoding
2116
+ typedef GenericValue<UTF8<> > Value;
2117
+
2118
+ ///////////////////////////////////////////////////////////////////////////////
2119
+ // GenericDocument
2120
+
2121
+ //! A document for parsing JSON text as DOM.
2122
+ /*!
2123
+ \note implements Handler concept
2124
+ \tparam Encoding Encoding for both parsing and string storage.
2125
+ \tparam Allocator Allocator for allocating memory for the DOM
2126
+ \tparam StackAllocator Allocator for allocating memory for stack during parsing.
2127
+ \warning Although GenericDocument inherits from GenericValue, the API does \b not provide any virtual functions, especially no virtual destructor. To avoid memory leaks, do not \c delete a GenericDocument object via a pointer to a GenericValue.
2128
+ */
2129
+ template <typename Encoding, typename Allocator = MemoryPoolAllocator<>, typename StackAllocator = CrtAllocator>
2130
+ class GenericDocument : public GenericValue<Encoding, Allocator> {
2131
+ public:
2132
+ typedef typename Encoding::Ch Ch; //!< Character type derived from Encoding.
2133
+ typedef GenericValue<Encoding, Allocator> ValueType; //!< Value type of the document.
2134
+ typedef Allocator AllocatorType; //!< Allocator type from template parameter.
2135
+
2136
+ //! Constructor
2137
+ /*! Creates an empty document of specified type.
2138
+ \param type Mandatory type of object to create.
2139
+ \param allocator Optional allocator for allocating memory.
2140
+ \param stackCapacity Optional initial capacity of stack in bytes.
2141
+ \param stackAllocator Optional allocator for allocating memory for stack.
2142
+ */
2143
+ explicit GenericDocument(Type type, Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) :
2144
+ GenericValue<Encoding, Allocator>(type), allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_()
2145
+ {
2146
+ if (!allocator_)
2147
+ ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)();
2148
+ }
2149
+
2150
+ //! Constructor
2151
+ /*! Creates an empty document which type is Null.
2152
+ \param allocator Optional allocator for allocating memory.
2153
+ \param stackCapacity Optional initial capacity of stack in bytes.
2154
+ \param stackAllocator Optional allocator for allocating memory for stack.
2155
+ */
2156
+ GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) :
2157
+ allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_()
2158
+ {
2159
+ if (!allocator_)
2160
+ ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)();
2161
+ }
2162
+
2163
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
2164
+ //! Move constructor in C++11
2165
+ GenericDocument(GenericDocument&& rhs) RAPIDJSON_NOEXCEPT
2166
+ : ValueType(std::forward<ValueType>(rhs)), // explicit cast to avoid prohibited move from Document
2167
+ allocator_(rhs.allocator_),
2168
+ ownAllocator_(rhs.ownAllocator_),
2169
+ stack_(std::move(rhs.stack_)),
2170
+ parseResult_(rhs.parseResult_)
2171
+ {
2172
+ rhs.allocator_ = 0;
2173
+ rhs.ownAllocator_ = 0;
2174
+ rhs.parseResult_ = ParseResult();
2175
+ }
2176
+ #endif
2177
+
2178
+ ~GenericDocument() {
2179
+ Destroy();
2180
+ }
2181
+
2182
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
2183
+ //! Move assignment in C++11
2184
+ GenericDocument& operator=(GenericDocument&& rhs) RAPIDJSON_NOEXCEPT
2185
+ {
2186
+ // The cast to ValueType is necessary here, because otherwise it would
2187
+ // attempt to call GenericValue's templated assignment operator.
2188
+ ValueType::operator=(std::forward<ValueType>(rhs));
2189
+
2190
+ // Calling the destructor here would prematurely call stack_'s destructor
2191
+ Destroy();
2192
+
2193
+ allocator_ = rhs.allocator_;
2194
+ ownAllocator_ = rhs.ownAllocator_;
2195
+ stack_ = std::move(rhs.stack_);
2196
+ parseResult_ = rhs.parseResult_;
2197
+
2198
+ rhs.allocator_ = 0;
2199
+ rhs.ownAllocator_ = 0;
2200
+ rhs.parseResult_ = ParseResult();
2201
+
2202
+ return *this;
2203
+ }
2204
+ #endif
2205
+
2206
+ //! Exchange the contents of this document with those of another.
2207
+ /*!
2208
+ \param rhs Another document.
2209
+ \note Constant complexity.
2210
+ \see GenericValue::Swap
2211
+ */
2212
+ GenericDocument& Swap(GenericDocument& rhs) RAPIDJSON_NOEXCEPT {
2213
+ ValueType::Swap(rhs);
2214
+ stack_.Swap(rhs.stack_);
2215
+ internal::Swap(allocator_, rhs.allocator_);
2216
+ internal::Swap(ownAllocator_, rhs.ownAllocator_);
2217
+ internal::Swap(parseResult_, rhs.parseResult_);
2218
+ return *this;
2219
+ }
2220
+
2221
+ // Allow Swap with ValueType.
2222
+ // Refer to Effective C++ 3rd Edition/Item 33: Avoid hiding inherited names.
2223
+ using ValueType::Swap;
2224
+
2225
+ //! free-standing swap function helper
2226
+ /*!
2227
+ Helper function to enable support for common swap implementation pattern based on \c std::swap:
2228
+ \code
2229
+ void swap(MyClass& a, MyClass& b) {
2230
+ using std::swap;
2231
+ swap(a.doc, b.doc);
2232
+ // ...
2233
+ }
2234
+ \endcode
2235
+ \see Swap()
2236
+ */
2237
+ friend inline void swap(GenericDocument& a, GenericDocument& b) RAPIDJSON_NOEXCEPT { a.Swap(b); }
2238
+
2239
+ //! Populate this document by a generator which produces SAX events.
2240
+ /*! \tparam Generator A functor with <tt>bool f(Handler)</tt> prototype.
2241
+ \param g Generator functor which sends SAX events to the parameter.
2242
+ \return The document itself for fluent API.
2243
+ */
2244
+ template <typename Generator>
2245
+ GenericDocument& Populate(Generator& g) {
2246
+ ClearStackOnExit scope(*this);
2247
+ if (g(*this)) {
2248
+ RAPIDJSON_ASSERT(stack_.GetSize() == sizeof(ValueType)); // Got one and only one root object
2249
+ ValueType::operator=(*stack_.template Pop<ValueType>(1));// Move value from stack to document
2250
+ }
2251
+ return *this;
2252
+ }
2253
+
2254
+ //!@name Parse from stream
2255
+ //!@{
2256
+
2257
+ //! Parse JSON text from an input stream (with Encoding conversion)
2258
+ /*! \tparam parseFlags Combination of \ref ParseFlag.
2259
+ \tparam SourceEncoding Encoding of input stream
2260
+ \tparam InputStream Type of input stream, implementing Stream concept
2261
+ \param is Input stream to be parsed.
2262
+ \return The document itself for fluent API.
2263
+ */
2264
+ template <unsigned parseFlags, typename SourceEncoding, typename InputStream>
2265
+ GenericDocument& ParseStream(InputStream& is) {
2266
+ GenericReader<SourceEncoding, Encoding, StackAllocator> reader(
2267
+ stack_.HasAllocator() ? &stack_.GetAllocator() : 0);
2268
+ ClearStackOnExit scope(*this);
2269
+ parseResult_ = reader.template Parse<parseFlags>(is, *this);
2270
+ if (parseResult_) {
2271
+ RAPIDJSON_ASSERT(stack_.GetSize() == sizeof(ValueType)); // Got one and only one root object
2272
+ ValueType::operator=(*stack_.template Pop<ValueType>(1));// Move value from stack to document
2273
+ }
2274
+ return *this;
2275
+ }
2276
+
2277
+ //! Parse JSON text from an input stream
2278
+ /*! \tparam parseFlags Combination of \ref ParseFlag.
2279
+ \tparam InputStream Type of input stream, implementing Stream concept
2280
+ \param is Input stream to be parsed.
2281
+ \return The document itself for fluent API.
2282
+ */
2283
+ template <unsigned parseFlags, typename InputStream>
2284
+ GenericDocument& ParseStream(InputStream& is) {
2285
+ return ParseStream<parseFlags, Encoding, InputStream>(is);
2286
+ }
2287
+
2288
+ //! Parse JSON text from an input stream (with \ref kParseDefaultFlags)
2289
+ /*! \tparam InputStream Type of input stream, implementing Stream concept
2290
+ \param is Input stream to be parsed.
2291
+ \return The document itself for fluent API.
2292
+ */
2293
+ template <typename InputStream>
2294
+ GenericDocument& ParseStream(InputStream& is) {
2295
+ return ParseStream<kParseDefaultFlags, Encoding, InputStream>(is);
2296
+ }
2297
+ //!@}
2298
+
2299
+ //!@name Parse in-place from mutable string
2300
+ //!@{
2301
+
2302
+ //! Parse JSON text from a mutable string
2303
+ /*! \tparam parseFlags Combination of \ref ParseFlag.
2304
+ \param str Mutable zero-terminated string to be parsed.
2305
+ \return The document itself for fluent API.
2306
+ */
2307
+ template <unsigned parseFlags>
2308
+ GenericDocument& ParseInsitu(Ch* str) {
2309
+ GenericInsituStringStream<Encoding> s(str);
2310
+ return ParseStream<parseFlags | kParseInsituFlag>(s);
2311
+ }
2312
+
2313
+ //! Parse JSON text from a mutable string (with \ref kParseDefaultFlags)
2314
+ /*! \param str Mutable zero-terminated string to be parsed.
2315
+ \return The document itself for fluent API.
2316
+ */
2317
+ GenericDocument& ParseInsitu(Ch* str) {
2318
+ return ParseInsitu<kParseDefaultFlags>(str);
2319
+ }
2320
+ //!@}
2321
+
2322
+ //!@name Parse from read-only string
2323
+ //!@{
2324
+
2325
+ //! Parse JSON text from a read-only string (with Encoding conversion)
2326
+ /*! \tparam parseFlags Combination of \ref ParseFlag (must not contain \ref kParseInsituFlag).
2327
+ \tparam SourceEncoding Transcoding from input Encoding
2328
+ \param str Read-only zero-terminated string to be parsed.
2329
+ */
2330
+ template <unsigned parseFlags, typename SourceEncoding>
2331
+ GenericDocument& Parse(const typename SourceEncoding::Ch* str) {
2332
+ RAPIDJSON_ASSERT(!(parseFlags & kParseInsituFlag));
2333
+ GenericStringStream<SourceEncoding> s(str);
2334
+ return ParseStream<parseFlags, SourceEncoding>(s);
2335
+ }
2336
+
2337
+ //! Parse JSON text from a read-only string
2338
+ /*! \tparam parseFlags Combination of \ref ParseFlag (must not contain \ref kParseInsituFlag).
2339
+ \param str Read-only zero-terminated string to be parsed.
2340
+ */
2341
+ template <unsigned parseFlags>
2342
+ GenericDocument& Parse(const Ch* str) {
2343
+ return Parse<parseFlags, Encoding>(str);
2344
+ }
2345
+
2346
+ //! Parse JSON text from a read-only string (with \ref kParseDefaultFlags)
2347
+ /*! \param str Read-only zero-terminated string to be parsed.
2348
+ */
2349
+ GenericDocument& Parse(const Ch* str) {
2350
+ return Parse<kParseDefaultFlags>(str);
2351
+ }
2352
+
2353
+ template <unsigned parseFlags, typename SourceEncoding>
2354
+ GenericDocument& Parse(const typename SourceEncoding::Ch* str, size_t length) {
2355
+ RAPIDJSON_ASSERT(!(parseFlags & kParseInsituFlag));
2356
+ MemoryStream ms(reinterpret_cast<const char*>(str), length * sizeof(typename SourceEncoding::Ch));
2357
+ EncodedInputStream<SourceEncoding, MemoryStream> is(ms);
2358
+ ParseStream<parseFlags, SourceEncoding>(is);
2359
+ return *this;
2360
+ }
2361
+
2362
+ template <unsigned parseFlags>
2363
+ GenericDocument& Parse(const Ch* str, size_t length) {
2364
+ return Parse<parseFlags, Encoding>(str, length);
2365
+ }
2366
+
2367
+ GenericDocument& Parse(const Ch* str, size_t length) {
2368
+ return Parse<kParseDefaultFlags>(str, length);
2369
+ }
2370
+
2371
+ #if RAPIDJSON_HAS_STDSTRING
2372
+ template <unsigned parseFlags, typename SourceEncoding>
2373
+ GenericDocument& Parse(const std::basic_string<typename SourceEncoding::Ch>& str) {
2374
+ // c_str() is constant complexity according to standard. Should be faster than Parse(const char*, size_t)
2375
+ return Parse<parseFlags, SourceEncoding>(str.c_str());
2376
+ }
2377
+
2378
+ template <unsigned parseFlags>
2379
+ GenericDocument& Parse(const std::basic_string<Ch>& str) {
2380
+ return Parse<parseFlags, Encoding>(str.c_str());
2381
+ }
2382
+
2383
+ GenericDocument& Parse(const std::basic_string<Ch>& str) {
2384
+ return Parse<kParseDefaultFlags>(str);
2385
+ }
2386
+ #endif // RAPIDJSON_HAS_STDSTRING
2387
+
2388
+ //!@}
2389
+
2390
+ //!@name Handling parse errors
2391
+ //!@{
2392
+
2393
+ //! Whether a parse error has occurred in the last parsing.
2394
+ bool HasParseError() const { return parseResult_.IsError(); }
2395
+
2396
+ //! Get the \ref ParseErrorCode of last parsing.
2397
+ ParseErrorCode GetParseError() const { return parseResult_.Code(); }
2398
+
2399
+ //! Get the position of last parsing error in input, 0 otherwise.
2400
+ size_t GetErrorOffset() const { return parseResult_.Offset(); }
2401
+
2402
+ //! Implicit conversion to get the last parse result
2403
+ #ifndef __clang // -Wdocumentation
2404
+ /*! \return \ref ParseResult of the last parse operation
2405
+
2406
+ \code
2407
+ Document doc;
2408
+ ParseResult ok = doc.Parse(json);
2409
+ if (!ok)
2410
+ printf( "JSON parse error: %s (%u)\n", GetParseError_En(ok.Code()), ok.Offset());
2411
+ \endcode
2412
+ */
2413
+ #endif
2414
+ operator ParseResult() const { return parseResult_; }
2415
+ //!@}
2416
+
2417
+ //! Get the allocator of this document.
2418
+ Allocator& GetAllocator() {
2419
+ RAPIDJSON_ASSERT(allocator_);
2420
+ return *allocator_;
2421
+ }
2422
+
2423
+ //! Get the capacity of stack in bytes.
2424
+ size_t GetStackCapacity() const { return stack_.GetCapacity(); }
2425
+
2426
+ private:
2427
+ // clear stack on any exit from ParseStream, e.g. due to exception
2428
+ struct ClearStackOnExit {
2429
+ explicit ClearStackOnExit(GenericDocument& d) : d_(d) {}
2430
+ ~ClearStackOnExit() { d_.ClearStack(); }
2431
+ private:
2432
+ ClearStackOnExit(const ClearStackOnExit&);
2433
+ ClearStackOnExit& operator=(const ClearStackOnExit&);
2434
+ GenericDocument& d_;
2435
+ };
2436
+
2437
+ // callers of the following private Handler functions
2438
+ // template <typename,typename,typename> friend class GenericReader; // for parsing
2439
+ template <typename, typename> friend class GenericValue; // for deep copying
2440
+
2441
+ public:
2442
+ // Implementation of Handler
2443
+ bool Null() { new (stack_.template Push<ValueType>()) ValueType(); return true; }
2444
+ bool Bool(bool b) { new (stack_.template Push<ValueType>()) ValueType(b); return true; }
2445
+ bool Int(int i) { new (stack_.template Push<ValueType>()) ValueType(i); return true; }
2446
+ bool Uint(unsigned i) { new (stack_.template Push<ValueType>()) ValueType(i); return true; }
2447
+ bool Int64(int64_t i) { new (stack_.template Push<ValueType>()) ValueType(i); return true; }
2448
+ bool Uint64(uint64_t i) { new (stack_.template Push<ValueType>()) ValueType(i); return true; }
2449
+ bool Double(double d) { new (stack_.template Push<ValueType>()) ValueType(d); return true; }
2450
+
2451
+ bool RawNumber(const Ch* str, SizeType length, bool copy) {
2452
+ if (copy)
2453
+ new (stack_.template Push<ValueType>()) ValueType(str, length, GetAllocator());
2454
+ else
2455
+ new (stack_.template Push<ValueType>()) ValueType(str, length);
2456
+ return true;
2457
+ }
2458
+
2459
+ bool String(const Ch* str, SizeType length, bool copy) {
2460
+ if (copy)
2461
+ new (stack_.template Push<ValueType>()) ValueType(str, length, GetAllocator());
2462
+ else
2463
+ new (stack_.template Push<ValueType>()) ValueType(str, length);
2464
+ return true;
2465
+ }
2466
+
2467
+ bool StartObject() { new (stack_.template Push<ValueType>()) ValueType(kObjectType); return true; }
2468
+
2469
+ bool Key(const Ch* str, SizeType length, bool copy) { return String(str, length, copy); }
2470
+
2471
+ bool EndObject(SizeType memberCount) {
2472
+ typename ValueType::Member* members = stack_.template Pop<typename ValueType::Member>(memberCount);
2473
+ stack_.template Top<ValueType>()->SetObjectRaw(members, memberCount, GetAllocator());
2474
+ return true;
2475
+ }
2476
+
2477
+ bool StartArray() { new (stack_.template Push<ValueType>()) ValueType(kArrayType); return true; }
2478
+
2479
+ bool EndArray(SizeType elementCount) {
2480
+ ValueType* elements = stack_.template Pop<ValueType>(elementCount);
2481
+ stack_.template Top<ValueType>()->SetArrayRaw(elements, elementCount, GetAllocator());
2482
+ return true;
2483
+ }
2484
+
2485
+ private:
2486
+ //! Prohibit copying
2487
+ GenericDocument(const GenericDocument&);
2488
+ //! Prohibit assignment
2489
+ GenericDocument& operator=(const GenericDocument&);
2490
+
2491
+ void ClearStack() {
2492
+ if (Allocator::kNeedFree)
2493
+ while (stack_.GetSize() > 0) // Here assumes all elements in stack array are GenericValue (Member is actually 2 GenericValue objects)
2494
+ (stack_.template Pop<ValueType>(1))->~ValueType();
2495
+ else
2496
+ stack_.Clear();
2497
+ stack_.ShrinkToFit();
2498
+ }
2499
+
2500
+ void Destroy() {
2501
+ RAPIDJSON_DELETE(ownAllocator_);
2502
+ }
2503
+
2504
+ static const size_t kDefaultStackCapacity = 1024;
2505
+ Allocator* allocator_;
2506
+ Allocator* ownAllocator_;
2507
+ internal::Stack<StackAllocator> stack_;
2508
+ ParseResult parseResult_;
2509
+ };
2510
+
2511
+ //! GenericDocument with UTF8 encoding
2512
+ typedef GenericDocument<UTF8<> > Document;
2513
+
2514
+ //! Helper class for accessing Value of array type.
2515
+ /*!
2516
+ Instance of this helper class is obtained by \c GenericValue::GetArray().
2517
+ In addition to all APIs for array type, it provides range-based for loop if \c RAPIDJSON_HAS_CXX11_RANGE_FOR=1.
2518
+ */
2519
+ template <bool Const, typename ValueT>
2520
+ class GenericArray {
2521
+ public:
2522
+ typedef GenericArray<true, ValueT> ConstArray;
2523
+ typedef GenericArray<false, ValueT> Array;
2524
+ typedef ValueT PlainType;
2525
+ typedef typename internal::MaybeAddConst<Const,PlainType>::Type ValueType;
2526
+ typedef ValueType* ValueIterator; // This may be const or non-const iterator
2527
+ typedef const ValueT* ConstValueIterator;
2528
+ typedef typename ValueType::AllocatorType AllocatorType;
2529
+ typedef typename ValueType::StringRefType StringRefType;
2530
+
2531
+ template <typename, typename>
2532
+ friend class GenericValue;
2533
+
2534
+ GenericArray(const GenericArray& rhs) : value_(rhs.value_) {}
2535
+ GenericArray& operator=(const GenericArray& rhs) { value_ = rhs.value_; return *this; }
2536
+ ~GenericArray() {}
2537
+
2538
+ SizeType Size() const { return value_.Size(); }
2539
+ SizeType Capacity() const { return value_.Capacity(); }
2540
+ bool Empty() const { return value_.Empty(); }
2541
+ void Clear() const { value_.Clear(); }
2542
+ ValueType& operator[](SizeType index) const { return value_[index]; }
2543
+ ValueIterator Begin() const { return value_.Begin(); }
2544
+ ValueIterator End() const { return value_.End(); }
2545
+ GenericArray Reserve(SizeType newCapacity, AllocatorType &allocator) const { value_.Reserve(newCapacity, allocator); return *this; }
2546
+ GenericArray PushBack(ValueType& value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; }
2547
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
2548
+ GenericArray PushBack(ValueType&& value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; }
2549
+ #endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
2550
+ GenericArray PushBack(StringRefType value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; }
2551
+ template <typename T> RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr<internal::IsPointer<T>, internal::IsGenericValue<T> >), (const GenericArray&)) PushBack(T value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; }
2552
+ GenericArray PopBack() const { value_.PopBack(); return *this; }
2553
+ ValueIterator Erase(ConstValueIterator pos) const { return value_.Erase(pos); }
2554
+ ValueIterator Erase(ConstValueIterator first, ConstValueIterator last) const { return value_.Erase(first, last); }
2555
+
2556
+ #if RAPIDJSON_HAS_CXX11_RANGE_FOR
2557
+ ValueIterator begin() const { return value_.Begin(); }
2558
+ ValueIterator end() const { return value_.End(); }
2559
+ #endif
2560
+
2561
+ private:
2562
+ GenericArray();
2563
+ GenericArray(ValueType& value) : value_(value) {}
2564
+ ValueType& value_;
2565
+ };
2566
+
2567
+ //! Helper class for accessing Value of object type.
2568
+ /*!
2569
+ Instance of this helper class is obtained by \c GenericValue::GetObject().
2570
+ In addition to all APIs for array type, it provides range-based for loop if \c RAPIDJSON_HAS_CXX11_RANGE_FOR=1.
2571
+ */
2572
+ template <bool Const, typename ValueT>
2573
+ class GenericObject {
2574
+ public:
2575
+ typedef GenericObject<true, ValueT> ConstObject;
2576
+ typedef GenericObject<false, ValueT> Object;
2577
+ typedef ValueT PlainType;
2578
+ typedef typename internal::MaybeAddConst<Const,PlainType>::Type ValueType;
2579
+ typedef GenericMemberIterator<Const, typename ValueT::EncodingType, typename ValueT::AllocatorType> MemberIterator; // This may be const or non-const iterator
2580
+ typedef GenericMemberIterator<true, typename ValueT::EncodingType, typename ValueT::AllocatorType> ConstMemberIterator;
2581
+ typedef typename ValueType::AllocatorType AllocatorType;
2582
+ typedef typename ValueType::StringRefType StringRefType;
2583
+ typedef typename ValueType::EncodingType EncodingType;
2584
+ typedef typename ValueType::Ch Ch;
2585
+
2586
+ template <typename, typename>
2587
+ friend class GenericValue;
2588
+
2589
+ GenericObject(const GenericObject& rhs) : value_(rhs.value_) {}
2590
+ GenericObject& operator=(const GenericObject& rhs) { value_ = rhs.value_; return *this; }
2591
+ ~GenericObject() {}
2592
+
2593
+ SizeType MemberCount() const { return value_.MemberCount(); }
2594
+ SizeType MemberCapacity() const { return value_.MemberCapacity(); }
2595
+ bool ObjectEmpty() const { return value_.ObjectEmpty(); }
2596
+ template <typename T> ValueType& operator[](T* name) const { return value_[name]; }
2597
+ template <typename SourceAllocator> ValueType& operator[](const GenericValue<EncodingType, SourceAllocator>& name) const { return value_[name]; }
2598
+ #if RAPIDJSON_HAS_STDSTRING
2599
+ ValueType& operator[](const std::basic_string<Ch>& name) const { return value_[name]; }
2600
+ #endif
2601
+ MemberIterator MemberBegin() const { return value_.MemberBegin(); }
2602
+ MemberIterator MemberEnd() const { return value_.MemberEnd(); }
2603
+ GenericObject MemberReserve(SizeType newCapacity, AllocatorType &allocator) const { value_.MemberReserve(newCapacity, allocator); return *this; }
2604
+ bool HasMember(const Ch* name) const { return value_.HasMember(name); }
2605
+ #if RAPIDJSON_HAS_STDSTRING
2606
+ bool HasMember(const std::basic_string<Ch>& name) const { return value_.HasMember(name); }
2607
+ #endif
2608
+ template <typename SourceAllocator> bool HasMember(const GenericValue<EncodingType, SourceAllocator>& name) const { return value_.HasMember(name); }
2609
+ MemberIterator FindMember(const Ch* name) const { return value_.FindMember(name); }
2610
+ template <typename SourceAllocator> MemberIterator FindMember(const GenericValue<EncodingType, SourceAllocator>& name) const { return value_.FindMember(name); }
2611
+ #if RAPIDJSON_HAS_STDSTRING
2612
+ MemberIterator FindMember(const std::basic_string<Ch>& name) const { return value_.FindMember(name); }
2613
+ #endif
2614
+ GenericObject AddMember(ValueType& name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2615
+ GenericObject AddMember(ValueType& name, StringRefType value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2616
+ #if RAPIDJSON_HAS_STDSTRING
2617
+ GenericObject AddMember(ValueType& name, std::basic_string<Ch>& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2618
+ #endif
2619
+ template <typename T> RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr<internal::IsPointer<T>, internal::IsGenericValue<T> >), (ValueType&)) AddMember(ValueType& name, T value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2620
+ #if RAPIDJSON_HAS_CXX11_RVALUE_REFS
2621
+ GenericObject AddMember(ValueType&& name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2622
+ GenericObject AddMember(ValueType&& name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2623
+ GenericObject AddMember(ValueType& name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2624
+ GenericObject AddMember(StringRefType name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2625
+ #endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
2626
+ GenericObject AddMember(StringRefType name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2627
+ GenericObject AddMember(StringRefType name, StringRefType value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2628
+ template <typename T> RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr<internal::IsPointer<T>, internal::IsGenericValue<T> >), (GenericObject)) AddMember(StringRefType name, T value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; }
2629
+ void RemoveAllMembers() { value_.RemoveAllMembers(); }
2630
+ bool RemoveMember(const Ch* name) const { return value_.RemoveMember(name); }
2631
+ #if RAPIDJSON_HAS_STDSTRING
2632
+ bool RemoveMember(const std::basic_string<Ch>& name) const { return value_.RemoveMember(name); }
2633
+ #endif
2634
+ template <typename SourceAllocator> bool RemoveMember(const GenericValue<EncodingType, SourceAllocator>& name) const { return value_.RemoveMember(name); }
2635
+ MemberIterator RemoveMember(MemberIterator m) const { return value_.RemoveMember(m); }
2636
+ MemberIterator EraseMember(ConstMemberIterator pos) const { return value_.EraseMember(pos); }
2637
+ MemberIterator EraseMember(ConstMemberIterator first, ConstMemberIterator last) const { return value_.EraseMember(first, last); }
2638
+ bool EraseMember(const Ch* name) const { return value_.EraseMember(name); }
2639
+ #if RAPIDJSON_HAS_STDSTRING
2640
+ bool EraseMember(const std::basic_string<Ch>& name) const { return EraseMember(ValueType(StringRef(name))); }
2641
+ #endif
2642
+ template <typename SourceAllocator> bool EraseMember(const GenericValue<EncodingType, SourceAllocator>& name) const { return value_.EraseMember(name); }
2643
+
2644
+ #if RAPIDJSON_HAS_CXX11_RANGE_FOR
2645
+ MemberIterator begin() const { return value_.MemberBegin(); }
2646
+ MemberIterator end() const { return value_.MemberEnd(); }
2647
+ #endif
2648
+
2649
+ private:
2650
+ GenericObject();
2651
+ GenericObject(ValueType& value) : value_(value) {}
2652
+ ValueType& value_;
2653
+ };
2654
+
2655
+ RAPIDJSON_NAMESPACE_END
2656
+ RAPIDJSON_DIAG_POP
2657
+
2658
+ #endif // RAPIDJSON_DOCUMENT_H_