simdjson 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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_