rj_schema 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (613) hide show
  1. checksums.yaml +4 -4
  2. metadata +3 -615
  3. data/ext/rj_schema/rapidjson/CHANGELOG.md +0 -158
  4. data/ext/rj_schema/rapidjson/CMakeLists.txt +0 -221
  5. data/ext/rj_schema/rapidjson/CMakeModules/FindGTestSrc.cmake +0 -30
  6. data/ext/rj_schema/rapidjson/RapidJSON.pc.in +0 -7
  7. data/ext/rj_schema/rapidjson/RapidJSONConfig.cmake.in +0 -15
  8. data/ext/rj_schema/rapidjson/RapidJSONConfigVersion.cmake.in +0 -10
  9. data/ext/rj_schema/rapidjson/appveyor.yml +0 -41
  10. data/ext/rj_schema/rapidjson/bin/data/glossary.json +0 -22
  11. data/ext/rj_schema/rapidjson/bin/data/menu.json +0 -27
  12. data/ext/rj_schema/rapidjson/bin/data/readme.txt +0 -1
  13. data/ext/rj_schema/rapidjson/bin/data/sample.json +0 -3315
  14. data/ext/rj_schema/rapidjson/bin/data/webapp.json +0 -88
  15. data/ext/rj_schema/rapidjson/bin/data/widget.json +0 -26
  16. data/ext/rj_schema/rapidjson/bin/draft-04/schema +0 -150
  17. data/ext/rj_schema/rapidjson/bin/encodings/utf16be.json +0 -0
  18. data/ext/rj_schema/rapidjson/bin/encodings/utf16bebom.json +0 -0
  19. data/ext/rj_schema/rapidjson/bin/encodings/utf16le.json +0 -0
  20. data/ext/rj_schema/rapidjson/bin/encodings/utf16lebom.json +0 -0
  21. data/ext/rj_schema/rapidjson/bin/encodings/utf32be.json +0 -0
  22. data/ext/rj_schema/rapidjson/bin/encodings/utf32bebom.json +0 -0
  23. data/ext/rj_schema/rapidjson/bin/encodings/utf32le.json +0 -0
  24. data/ext/rj_schema/rapidjson/bin/encodings/utf32lebom.json +0 -0
  25. data/ext/rj_schema/rapidjson/bin/encodings/utf8.json +0 -7
  26. data/ext/rj_schema/rapidjson/bin/encodings/utf8bom.json +0 -7
  27. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail1.json +0 -1
  28. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail10.json +0 -1
  29. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail11.json +0 -1
  30. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail12.json +0 -1
  31. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail13.json +0 -1
  32. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail14.json +0 -1
  33. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail15.json +0 -1
  34. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail16.json +0 -1
  35. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail17.json +0 -1
  36. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail18.json +0 -1
  37. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail19.json +0 -1
  38. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail2.json +0 -1
  39. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail20.json +0 -1
  40. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail21.json +0 -1
  41. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail22.json +0 -1
  42. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail23.json +0 -1
  43. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail24.json +0 -1
  44. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail25.json +0 -1
  45. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail26.json +0 -1
  46. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail27.json +0 -2
  47. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail28.json +0 -2
  48. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail29.json +0 -1
  49. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail3.json +0 -1
  50. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail30.json +0 -1
  51. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail31.json +0 -1
  52. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail32.json +0 -1
  53. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail33.json +0 -1
  54. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail4.json +0 -1
  55. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail5.json +0 -1
  56. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail6.json +0 -1
  57. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail7.json +0 -1
  58. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail8.json +0 -1
  59. data/ext/rj_schema/rapidjson/bin/jsonchecker/fail9.json +0 -1
  60. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass1.json +0 -58
  61. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass2.json +0 -1
  62. data/ext/rj_schema/rapidjson/bin/jsonchecker/pass3.json +0 -6
  63. data/ext/rj_schema/rapidjson/bin/jsonchecker/readme.txt +0 -3
  64. data/ext/rj_schema/rapidjson/bin/jsonschema/LICENSE +0 -19
  65. data/ext/rj_schema/rapidjson/bin/jsonschema/README.md +0 -148
  66. data/ext/rj_schema/rapidjson/bin/jsonschema/bin/jsonschema_suite +0 -283
  67. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/folder/folderInteger.json +0 -3
  68. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/integer.json +0 -3
  69. data/ext/rj_schema/rapidjson/bin/jsonschema/remotes/subSchemas.json +0 -8
  70. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalItems.json +0 -82
  71. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json +0 -88
  72. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/default.json +0 -49
  73. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/dependencies.json +0 -108
  74. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/disallow.json +0 -80
  75. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json +0 -60
  76. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/enum.json +0 -71
  77. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/extends.json +0 -94
  78. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/items.json +0 -46
  79. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxItems.json +0 -28
  80. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maxLength.json +0 -33
  81. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/maximum.json +0 -42
  82. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minItems.json +0 -28
  83. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minLength.json +0 -33
  84. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/minimum.json +0 -42
  85. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/bignum.json +0 -107
  86. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/format.json +0 -222
  87. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/jsregex.json +0 -18
  88. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json +0 -15
  89. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/pattern.json +0 -34
  90. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/patternProperties.json +0 -110
  91. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/properties.json +0 -92
  92. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/ref.json +0 -159
  93. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/refRemote.json +0 -74
  94. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/required.json +0 -53
  95. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/type.json +0 -474
  96. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft3/uniqueItems.json +0 -79
  97. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json +0 -82
  98. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json +0 -88
  99. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/allOf.json +0 -112
  100. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/anyOf.json +0 -68
  101. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/default.json +0 -49
  102. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/definitions.json +0 -32
  103. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/dependencies.json +0 -113
  104. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/enum.json +0 -72
  105. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/items.json +0 -46
  106. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxItems.json +0 -28
  107. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxLength.json +0 -33
  108. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json +0 -28
  109. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/maximum.json +0 -42
  110. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minItems.json +0 -28
  111. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minLength.json +0 -33
  112. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minProperties.json +0 -28
  113. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/minimum.json +0 -42
  114. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json +0 -60
  115. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/not.json +0 -96
  116. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/oneOf.json +0 -68
  117. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/bignum.json +0 -107
  118. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/format.json +0 -148
  119. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  120. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/pattern.json +0 -34
  121. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/patternProperties.json +0 -110
  122. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/properties.json +0 -92
  123. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/ref.json +0 -159
  124. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/refRemote.json +0 -74
  125. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/required.json +0 -39
  126. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/type.json +0 -330
  127. data/ext/rj_schema/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json +0 -79
  128. data/ext/rj_schema/rapidjson/bin/jsonschema/tox.ini +0 -8
  129. data/ext/rj_schema/rapidjson/bin/types/booleans.json +0 -102
  130. data/ext/rj_schema/rapidjson/bin/types/floats.json +0 -102
  131. data/ext/rj_schema/rapidjson/bin/types/guids.json +0 -102
  132. data/ext/rj_schema/rapidjson/bin/types/integers.json +0 -102
  133. data/ext/rj_schema/rapidjson/bin/types/mixed.json +0 -592
  134. data/ext/rj_schema/rapidjson/bin/types/nulls.json +0 -102
  135. data/ext/rj_schema/rapidjson/bin/types/paragraphs.json +0 -102
  136. data/ext/rj_schema/rapidjson/bin/types/readme.txt +0 -1
  137. data/ext/rj_schema/rapidjson/contrib/natvis/LICENSE +0 -45
  138. data/ext/rj_schema/rapidjson/contrib/natvis/README.md +0 -7
  139. data/ext/rj_schema/rapidjson/contrib/natvis/rapidjson.natvis +0 -38
  140. data/ext/rj_schema/rapidjson/doc/CMakeLists.txt +0 -27
  141. data/ext/rj_schema/rapidjson/doc/Doxyfile.in +0 -2369
  142. data/ext/rj_schema/rapidjson/doc/Doxyfile.zh-cn.in +0 -2369
  143. data/ext/rj_schema/rapidjson/doc/diagram/architecture.dot +0 -50
  144. data/ext/rj_schema/rapidjson/doc/diagram/architecture.png +0 -0
  145. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.dot +0 -65
  146. data/ext/rj_schema/rapidjson/doc/diagram/insituparsing.png +0 -0
  147. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +0 -62
  148. data/ext/rj_schema/rapidjson/doc/diagram/iterative-parser-states-diagram.png +0 -0
  149. data/ext/rj_schema/rapidjson/doc/diagram/makefile +0 -8
  150. data/ext/rj_schema/rapidjson/doc/diagram/move1.dot +0 -47
  151. data/ext/rj_schema/rapidjson/doc/diagram/move1.png +0 -0
  152. data/ext/rj_schema/rapidjson/doc/diagram/move2.dot +0 -62
  153. data/ext/rj_schema/rapidjson/doc/diagram/move2.png +0 -0
  154. data/ext/rj_schema/rapidjson/doc/diagram/move3.dot +0 -60
  155. data/ext/rj_schema/rapidjson/doc/diagram/move3.png +0 -0
  156. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.dot +0 -56
  157. data/ext/rj_schema/rapidjson/doc/diagram/normalparsing.png +0 -0
  158. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.dot +0 -54
  159. data/ext/rj_schema/rapidjson/doc/diagram/simpledom.png +0 -0
  160. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.dot +0 -58
  161. data/ext/rj_schema/rapidjson/doc/diagram/tutorial.png +0 -0
  162. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.dot +0 -73
  163. data/ext/rj_schema/rapidjson/doc/diagram/utilityclass.png +0 -0
  164. data/ext/rj_schema/rapidjson/doc/dom.md +0 -280
  165. data/ext/rj_schema/rapidjson/doc/dom.zh-cn.md +0 -284
  166. data/ext/rj_schema/rapidjson/doc/encoding.md +0 -146
  167. data/ext/rj_schema/rapidjson/doc/encoding.zh-cn.md +0 -152
  168. data/ext/rj_schema/rapidjson/doc/faq.md +0 -289
  169. data/ext/rj_schema/rapidjson/doc/faq.zh-cn.md +0 -290
  170. data/ext/rj_schema/rapidjson/doc/features.md +0 -104
  171. data/ext/rj_schema/rapidjson/doc/features.zh-cn.md +0 -103
  172. data/ext/rj_schema/rapidjson/doc/internals.md +0 -368
  173. data/ext/rj_schema/rapidjson/doc/internals.zh-cn.md +0 -363
  174. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.png +0 -0
  175. data/ext/rj_schema/rapidjson/doc/logo/rapidjson.svg +0 -119
  176. data/ext/rj_schema/rapidjson/doc/misc/DoxygenLayout.xml +0 -194
  177. data/ext/rj_schema/rapidjson/doc/misc/doxygenextra.css +0 -274
  178. data/ext/rj_schema/rapidjson/doc/misc/footer.html +0 -11
  179. data/ext/rj_schema/rapidjson/doc/misc/header.html +0 -24
  180. data/ext/rj_schema/rapidjson/doc/npm.md +0 -31
  181. data/ext/rj_schema/rapidjson/doc/performance.md +0 -26
  182. data/ext/rj_schema/rapidjson/doc/performance.zh-cn.md +0 -26
  183. data/ext/rj_schema/rapidjson/doc/pointer.md +0 -234
  184. data/ext/rj_schema/rapidjson/doc/pointer.zh-cn.md +0 -234
  185. data/ext/rj_schema/rapidjson/doc/sax.md +0 -509
  186. data/ext/rj_schema/rapidjson/doc/sax.zh-cn.md +0 -487
  187. data/ext/rj_schema/rapidjson/doc/schema.md +0 -505
  188. data/ext/rj_schema/rapidjson/doc/schema.zh-cn.md +0 -237
  189. data/ext/rj_schema/rapidjson/doc/stream.md +0 -429
  190. data/ext/rj_schema/rapidjson/doc/stream.zh-cn.md +0 -429
  191. data/ext/rj_schema/rapidjson/doc/tutorial.md +0 -536
  192. data/ext/rj_schema/rapidjson/doc/tutorial.zh-cn.md +0 -534
  193. data/ext/rj_schema/rapidjson/docker/debian/Dockerfile +0 -8
  194. data/ext/rj_schema/rapidjson/example/CMakeLists.txt +0 -45
  195. data/ext/rj_schema/rapidjson/example/archiver/archiver.cpp +0 -292
  196. data/ext/rj_schema/rapidjson/example/archiver/archiver.h +0 -145
  197. data/ext/rj_schema/rapidjson/example/archiver/archivertest.cpp +0 -287
  198. data/ext/rj_schema/rapidjson/example/capitalize/capitalize.cpp +0 -67
  199. data/ext/rj_schema/rapidjson/example/condense/condense.cpp +0 -32
  200. data/ext/rj_schema/rapidjson/example/filterkey/filterkey.cpp +0 -135
  201. data/ext/rj_schema/rapidjson/example/filterkeydom/filterkeydom.cpp +0 -170
  202. data/ext/rj_schema/rapidjson/example/jsonx/jsonx.cpp +0 -207
  203. data/ext/rj_schema/rapidjson/example/lookaheadparser/lookaheadparser.cpp +0 -350
  204. data/ext/rj_schema/rapidjson/example/messagereader/messagereader.cpp +0 -105
  205. data/ext/rj_schema/rapidjson/example/parsebyparts/parsebyparts.cpp +0 -176
  206. data/ext/rj_schema/rapidjson/example/pretty/pretty.cpp +0 -30
  207. data/ext/rj_schema/rapidjson/example/prettyauto/prettyauto.cpp +0 -56
  208. data/ext/rj_schema/rapidjson/example/schemavalidator/schemavalidator.cpp +0 -78
  209. data/ext/rj_schema/rapidjson/example/serialize/serialize.cpp +0 -173
  210. data/ext/rj_schema/rapidjson/example/simpledom/simpledom.cpp +0 -29
  211. data/ext/rj_schema/rapidjson/example/simplepullreader/simplepullreader.cpp +0 -53
  212. data/ext/rj_schema/rapidjson/example/simplereader/simplereader.cpp +0 -42
  213. data/ext/rj_schema/rapidjson/example/simplewriter/simplewriter.cpp +0 -36
  214. data/ext/rj_schema/rapidjson/example/tutorial/tutorial.cpp +0 -151
  215. data/ext/rj_schema/rapidjson/include/rapidjson/allocators.h +0 -284
  216. data/ext/rj_schema/rapidjson/include/rapidjson/cursorstreamwrapper.h +0 -78
  217. data/ext/rj_schema/rapidjson/include/rapidjson/document.h +0 -2648
  218. data/ext/rj_schema/rapidjson/include/rapidjson/encodedstream.h +0 -299
  219. data/ext/rj_schema/rapidjson/include/rapidjson/encodings.h +0 -716
  220. data/ext/rj_schema/rapidjson/include/rapidjson/error/en.h +0 -74
  221. data/ext/rj_schema/rapidjson/include/rapidjson/error/error.h +0 -161
  222. data/ext/rj_schema/rapidjson/include/rapidjson/filereadstream.h +0 -99
  223. data/ext/rj_schema/rapidjson/include/rapidjson/filewritestream.h +0 -104
  224. data/ext/rj_schema/rapidjson/include/rapidjson/fwd.h +0 -151
  225. data/ext/rj_schema/rapidjson/include/rapidjson/internal/biginteger.h +0 -290
  226. data/ext/rj_schema/rapidjson/include/rapidjson/internal/diyfp.h +0 -271
  227. data/ext/rj_schema/rapidjson/include/rapidjson/internal/dtoa.h +0 -245
  228. data/ext/rj_schema/rapidjson/include/rapidjson/internal/ieee754.h +0 -78
  229. data/ext/rj_schema/rapidjson/include/rapidjson/internal/itoa.h +0 -308
  230. data/ext/rj_schema/rapidjson/include/rapidjson/internal/meta.h +0 -186
  231. data/ext/rj_schema/rapidjson/include/rapidjson/internal/pow10.h +0 -55
  232. data/ext/rj_schema/rapidjson/include/rapidjson/internal/regex.h +0 -732
  233. data/ext/rj_schema/rapidjson/include/rapidjson/internal/stack.h +0 -231
  234. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strfunc.h +0 -69
  235. data/ext/rj_schema/rapidjson/include/rapidjson/internal/strtod.h +0 -290
  236. data/ext/rj_schema/rapidjson/include/rapidjson/internal/swap.h +0 -46
  237. data/ext/rj_schema/rapidjson/include/rapidjson/istreamwrapper.h +0 -113
  238. data/ext/rj_schema/rapidjson/include/rapidjson/memorybuffer.h +0 -70
  239. data/ext/rj_schema/rapidjson/include/rapidjson/memorystream.h +0 -71
  240. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/inttypes.h +0 -316
  241. data/ext/rj_schema/rapidjson/include/rapidjson/msinttypes/stdint.h +0 -300
  242. data/ext/rj_schema/rapidjson/include/rapidjson/ostreamwrapper.h +0 -81
  243. data/ext/rj_schema/rapidjson/include/rapidjson/pointer.h +0 -1357
  244. data/ext/rj_schema/rapidjson/include/rapidjson/prettywriter.h +0 -277
  245. data/ext/rj_schema/rapidjson/include/rapidjson/rapidjson.h +0 -630
  246. data/ext/rj_schema/rapidjson/include/rapidjson/reader.h +0 -2230
  247. data/ext/rj_schema/rapidjson/include/rapidjson/schema.h +0 -2494
  248. data/ext/rj_schema/rapidjson/include/rapidjson/stream.h +0 -223
  249. data/ext/rj_schema/rapidjson/include/rapidjson/stringbuffer.h +0 -121
  250. data/ext/rj_schema/rapidjson/include/rapidjson/writer.h +0 -710
  251. data/ext/rj_schema/rapidjson/include_dirs.js +0 -2
  252. data/ext/rj_schema/rapidjson/library.json +0 -15
  253. data/ext/rj_schema/rapidjson/license.txt +0 -57
  254. data/ext/rj_schema/rapidjson/package.json +0 -24
  255. data/ext/rj_schema/rapidjson/rapidjson.autopkg +0 -77
  256. data/ext/rj_schema/rapidjson/readme.md +0 -160
  257. data/ext/rj_schema/rapidjson/readme.zh-cn.md +0 -152
  258. data/ext/rj_schema/rapidjson/test/CMakeLists.txt +0 -20
  259. data/ext/rj_schema/rapidjson/test/perftest/CMakeLists.txt +0 -28
  260. data/ext/rj_schema/rapidjson/test/perftest/misctest.cpp +0 -974
  261. data/ext/rj_schema/rapidjson/test/perftest/perftest.cpp +0 -24
  262. data/ext/rj_schema/rapidjson/test/perftest/perftest.h +0 -185
  263. data/ext/rj_schema/rapidjson/test/perftest/platformtest.cpp +0 -166
  264. data/ext/rj_schema/rapidjson/test/perftest/rapidjsontest.cpp +0 -472
  265. data/ext/rj_schema/rapidjson/test/perftest/schematest.cpp +0 -223
  266. data/ext/rj_schema/rapidjson/test/unittest/CMakeLists.txt +0 -92
  267. data/ext/rj_schema/rapidjson/test/unittest/allocatorstest.cpp +0 -100
  268. data/ext/rj_schema/rapidjson/test/unittest/bigintegertest.cpp +0 -138
  269. data/ext/rj_schema/rapidjson/test/unittest/cursorstreamwrappertest.cpp +0 -115
  270. data/ext/rj_schema/rapidjson/test/unittest/documenttest.cpp +0 -672
  271. data/ext/rj_schema/rapidjson/test/unittest/dtoatest.cpp +0 -98
  272. data/ext/rj_schema/rapidjson/test/unittest/encodedstreamtest.cpp +0 -313
  273. data/ext/rj_schema/rapidjson/test/unittest/encodingstest.cpp +0 -451
  274. data/ext/rj_schema/rapidjson/test/unittest/filestreamtest.cpp +0 -112
  275. data/ext/rj_schema/rapidjson/test/unittest/fwdtest.cpp +0 -230
  276. data/ext/rj_schema/rapidjson/test/unittest/istreamwrappertest.cpp +0 -181
  277. data/ext/rj_schema/rapidjson/test/unittest/itoatest.cpp +0 -160
  278. data/ext/rj_schema/rapidjson/test/unittest/jsoncheckertest.cpp +0 -143
  279. data/ext/rj_schema/rapidjson/test/unittest/namespacetest.cpp +0 -70
  280. data/ext/rj_schema/rapidjson/test/unittest/ostreamwrappertest.cpp +0 -92
  281. data/ext/rj_schema/rapidjson/test/unittest/pointertest.cpp +0 -1529
  282. data/ext/rj_schema/rapidjson/test/unittest/prettywritertest.cpp +0 -373
  283. data/ext/rj_schema/rapidjson/test/unittest/readertest.cpp +0 -2190
  284. data/ext/rj_schema/rapidjson/test/unittest/regextest.cpp +0 -638
  285. data/ext/rj_schema/rapidjson/test/unittest/schematest.cpp +0 -2072
  286. data/ext/rj_schema/rapidjson/test/unittest/simdtest.cpp +0 -219
  287. data/ext/rj_schema/rapidjson/test/unittest/strfunctest.cpp +0 -30
  288. data/ext/rj_schema/rapidjson/test/unittest/stringbuffertest.cpp +0 -192
  289. data/ext/rj_schema/rapidjson/test/unittest/strtodtest.cpp +0 -132
  290. data/ext/rj_schema/rapidjson/test/unittest/unittest.cpp +0 -51
  291. data/ext/rj_schema/rapidjson/test/unittest/unittest.h +0 -140
  292. data/ext/rj_schema/rapidjson/test/unittest/valuetest.cpp +0 -1851
  293. data/ext/rj_schema/rapidjson/test/unittest/writertest.cpp +0 -598
  294. data/ext/rj_schema/rapidjson/test/valgrind.supp +0 -17
  295. data/ext/rj_schema/rapidjson/thirdparty/gtest/CMakeLists.txt +0 -16
  296. data/ext/rj_schema/rapidjson/thirdparty/gtest/README.md +0 -141
  297. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CHANGES +0 -126
  298. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +0 -202
  299. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/CONTRIBUTORS +0 -40
  300. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/LICENSE +0 -28
  301. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/Makefile.am +0 -224
  302. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/README.md +0 -333
  303. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/configure.ac +0 -146
  304. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +0 -562
  305. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +0 -3675
  306. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DesignDoc.md +0 -280
  307. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/DevGuide.md +0 -132
  308. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +0 -12
  309. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +0 -439
  310. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +0 -628
  311. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/KnownIssues.md +0 -19
  312. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CheatSheet.md +0 -525
  313. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/CookBook.md +0 -3250
  314. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/Documentation.md +0 -11
  315. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/ForDummies.md +0 -439
  316. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_5/FrequentlyAskedQuestions.md +0 -624
  317. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CheatSheet.md +0 -534
  318. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/CookBook.md +0 -3342
  319. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/Documentation.md +0 -12
  320. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/ForDummies.md +0 -439
  321. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_6/FrequentlyAskedQuestions.md +0 -628
  322. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CheatSheet.md +0 -556
  323. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/CookBook.md +0 -3432
  324. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/Documentation.md +0 -12
  325. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/ForDummies.md +0 -439
  326. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/docs/v1_7/FrequentlyAskedQuestions.md +0 -628
  327. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +0 -1205
  328. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-cardinalities.h +0 -147
  329. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +0 -2377
  330. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +0 -794
  331. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +0 -1095
  332. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +0 -291
  333. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +0 -2179
  334. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +0 -672
  335. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +0 -397
  336. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +0 -161
  337. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +0 -4399
  338. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-actions.h +0 -246
  339. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +0 -58
  340. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +0 -1847
  341. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +0 -94
  342. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +0 -8
  343. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +0 -10
  344. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +0 -39
  345. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-port.h +0 -46
  346. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +0 -279
  347. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +0 -136
  348. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +0 -511
  349. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +0 -91
  350. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/make/Makefile +0 -101
  351. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.sln +0 -32
  352. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.vcproj +0 -191
  353. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_config.vsprops +0 -15
  354. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_main.vcproj +0 -187
  355. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_test.vcproj +0 -201
  356. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +0 -32
  357. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +0 -82
  358. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +0 -19
  359. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +0 -88
  360. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +0 -101
  361. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +0 -32
  362. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +0 -84
  363. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_config.props +0 -19
  364. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +0 -90
  365. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +0 -103
  366. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +0 -240
  367. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/LICENSE +0 -203
  368. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +0 -35
  369. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README.cppclean +0 -115
  370. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  371. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +0 -1733
  372. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class.py +0 -227
  373. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class_test.py +0 -448
  374. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/keywords.py +0 -59
  375. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/tokenize.py +0 -287
  376. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/utils.py +0 -41
  377. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/generator/gmock_gen.py +0 -31
  378. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock-config.in +0 -303
  379. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/gmock_doctor.py +0 -640
  380. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload.py +0 -1387
  381. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/scripts/upload_gmock.py +0 -78
  382. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-all.cc +0 -47
  383. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +0 -156
  384. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +0 -174
  385. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +0 -498
  386. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +0 -823
  387. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +0 -183
  388. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/src/gmock_main.cc +0 -54
  389. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +0 -1411
  390. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +0 -428
  391. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +0 -1228
  392. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +0 -622
  393. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +0 -127
  394. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +0 -1286
  395. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +0 -699
  396. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +0 -5648
  397. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +0 -708
  398. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +0 -424
  399. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-port_test.cc +0 -43
  400. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +0 -2644
  401. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_all_test.cc +0 -51
  402. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_ex_test.cc +0 -81
  403. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test.py +0 -108
  404. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test_.cc +0 -100
  405. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +0 -40
  406. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +0 -40
  407. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +0 -669
  408. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +0 -180
  409. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +0 -291
  410. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +0 -310
  411. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +0 -322
  412. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +0 -220
  413. data/ext/rj_schema/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +0 -112
  414. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CHANGES +0 -157
  415. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +0 -286
  416. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/CONTRIBUTORS +0 -37
  417. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/LICENSE +0 -28
  418. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/Makefile.am +0 -310
  419. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/README.md +0 -280
  420. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +0 -242
  421. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.cbproj +0 -138
  422. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest.groupproj +0 -54
  423. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all.cc +0 -38
  424. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link.cc +0 -40
  425. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_main.cbproj +0 -82
  426. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/codegear/gtest_unittest.cbproj +0 -88
  427. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/configure.ac +0 -68
  428. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/AdvancedGuide.md +0 -2182
  429. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/DevGuide.md +0 -126
  430. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Documentation.md +0 -14
  431. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/FAQ.md +0 -1087
  432. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Primer.md +0 -502
  433. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +0 -177
  434. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/Samples.md +0 -14
  435. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_AdvancedGuide.md +0 -2096
  436. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Documentation.md +0 -12
  437. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_FAQ.md +0 -886
  438. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_Primer.md +0 -497
  439. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_PumpManual.md +0 -177
  440. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_5_XcodeGuide.md +0 -93
  441. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_AdvancedGuide.md +0 -2178
  442. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Documentation.md +0 -14
  443. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_FAQ.md +0 -1038
  444. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Primer.md +0 -501
  445. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_PumpManual.md +0 -177
  446. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_Samples.md +0 -14
  447. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_6_XcodeGuide.md +0 -93
  448. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_AdvancedGuide.md +0 -2181
  449. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Documentation.md +0 -14
  450. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_FAQ.md +0 -1082
  451. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Primer.md +0 -501
  452. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_PumpManual.md +0 -177
  453. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_Samples.md +0 -14
  454. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/V1_7_XcodeGuide.md +0 -93
  455. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +0 -93
  456. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +0 -294
  457. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +0 -250
  458. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +0 -1444
  459. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +0 -510
  460. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +0 -993
  461. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +0 -232
  462. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-test-part.h +0 -179
  463. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +0 -263
  464. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +0 -2236
  465. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +0 -358
  466. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +0 -58
  467. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +0 -69
  468. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
  469. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +0 -41
  470. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -319
  471. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +0 -206
  472. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +0 -1238
  473. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
  474. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5146
  475. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -286
  476. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +0 -731
  477. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +0 -93
  478. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +0 -2554
  479. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +0 -167
  480. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
  481. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
  482. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +0 -3331
  483. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +0 -297
  484. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/acx_pthread.m4 +0 -363
  485. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/m4/gtest.m4 +0 -74
  486. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/make/Makefile +0 -82
  487. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.sln +0 -45
  488. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest-md.vcproj +0 -126
  489. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest.sln +0 -45
  490. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest.vcproj +0 -126
  491. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main-md.vcproj +0 -129
  492. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_main.vcproj +0 -129
  493. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test-md.vcproj +0 -164
  494. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_prod_test.vcproj +0 -164
  495. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest-md.vcproj +0 -147
  496. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/msvc/gtest_unittest.vcproj +0 -147
  497. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +0 -123
  498. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +0 -68
  499. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1.h +0 -43
  500. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +0 -144
  501. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +0 -153
  502. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.cc +0 -56
  503. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2.h +0 -85
  504. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +0 -109
  505. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3-inl.h +0 -172
  506. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +0 -151
  507. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.cc +0 -46
  508. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4.h +0 -53
  509. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +0 -45
  510. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +0 -199
  511. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +0 -224
  512. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +0 -130
  513. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +0 -173
  514. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +0 -160
  515. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/common.py +0 -83
  516. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +0 -253
  517. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +0 -730
  518. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/gtest-config.in +0 -274
  519. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/pump.py +0 -855
  520. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/release_docs.py +0 -158
  521. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/test/Makefile +0 -59
  522. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +0 -1387
  523. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/scripts/upload_gtest.py +0 -78
  524. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +0 -48
  525. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +0 -1342
  526. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +0 -387
  527. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +0 -1183
  528. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +0 -1259
  529. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +0 -373
  530. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +0 -110
  531. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +0 -118
  532. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +0 -5388
  533. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +0 -38
  534. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_ex_test.cc +0 -93
  535. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +0 -1427
  536. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +0 -662
  537. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-linked_ptr_test.cc +0 -154
  538. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +0 -311
  539. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-message_test.cc +0 -159
  540. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +0 -215
  541. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +0 -65
  542. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +0 -1055
  543. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +0 -57
  544. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +0 -1304
  545. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +0 -1635
  546. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-test-part_test.cc +0 -208
  547. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-tuple_test.cc +0 -320
  548. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +0 -45
  549. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +0 -380
  550. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.h +0 -66
  551. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +0 -341
  552. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +0 -47
  553. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +0 -212
  554. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +0 -88
  555. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +0 -237
  556. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +0 -311
  557. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +0 -130
  558. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +0 -71
  559. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +0 -117
  560. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +0 -126
  561. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +0 -192
  562. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +0 -636
  563. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +0 -140
  564. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +0 -172
  565. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test_.cc +0 -46
  566. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +0 -207
  567. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest_.cc +0 -157
  568. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +0 -45
  569. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_no_test_unittest.cc +0 -56
  570. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +0 -340
  571. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +0 -1062
  572. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +0 -743
  573. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +0 -2427
  574. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_premature_exit_test.cc +0 -127
  575. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +0 -57
  576. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +0 -253
  577. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test.py +0 -325
  578. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test_.cc +0 -103
  579. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_sole_header_test.cc +0 -57
  580. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +0 -256
  581. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +0 -320
  582. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_ex_test.cc +0 -92
  583. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +0 -171
  584. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test_.cc +0 -72
  585. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +0 -70
  586. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +0 -43
  587. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +0 -7706
  588. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +0 -49
  589. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +0 -49
  590. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +0 -132
  591. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +0 -308
  592. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +0 -181
  593. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +0 -194
  594. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.cc +0 -36
  595. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/test/production.h +0 -55
  596. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/DebugProject.xcconfig +0 -30
  597. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/FrameworkTarget.xcconfig +0 -17
  598. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/General.xcconfig +0 -41
  599. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/ReleaseProject.xcconfig +0 -32
  600. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +0 -18
  601. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Config/TestTarget.xcconfig +0 -8
  602. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Resources/Info.plist +0 -30
  603. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/Info.plist +0 -28
  604. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj +0 -457
  605. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/runtests.sh +0 -62
  606. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.cc +0 -63
  607. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.h +0 -59
  608. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget_test.cc +0 -68
  609. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/runtests.sh +0 -65
  610. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +0 -100
  611. data/ext/rj_schema/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +0 -1135
  612. data/ext/rj_schema/rapidjson/thirdparty/gtest/travis.sh +0 -15
  613. data/ext/rj_schema/rapidjson/travis-doxygen.sh +0 -121
@@ -1,299 +0,0 @@
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_ENCODEDSTREAM_H_
16
- #define RAPIDJSON_ENCODEDSTREAM_H_
17
-
18
- #include "stream.h"
19
- #include "memorystream.h"
20
-
21
- #ifdef __GNUC__
22
- RAPIDJSON_DIAG_PUSH
23
- RAPIDJSON_DIAG_OFF(effc++)
24
- #endif
25
-
26
- #ifdef __clang__
27
- RAPIDJSON_DIAG_PUSH
28
- RAPIDJSON_DIAG_OFF(padded)
29
- #endif
30
-
31
- RAPIDJSON_NAMESPACE_BEGIN
32
-
33
- //! Input byte stream wrapper with a statically bound encoding.
34
- /*!
35
- \tparam Encoding The interpretation of encoding of the stream. Either UTF8, UTF16LE, UTF16BE, UTF32LE, UTF32BE.
36
- \tparam InputByteStream Type of input byte stream. For example, FileReadStream.
37
- */
38
- template <typename Encoding, typename InputByteStream>
39
- class EncodedInputStream {
40
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
41
- public:
42
- typedef typename Encoding::Ch Ch;
43
-
44
- EncodedInputStream(InputByteStream& is) : is_(is) {
45
- current_ = Encoding::TakeBOM(is_);
46
- }
47
-
48
- Ch Peek() const { return current_; }
49
- Ch Take() { Ch c = current_; current_ = Encoding::Take(is_); return c; }
50
- size_t Tell() const { return is_.Tell(); }
51
-
52
- // Not implemented
53
- void Put(Ch) { RAPIDJSON_ASSERT(false); }
54
- void Flush() { RAPIDJSON_ASSERT(false); }
55
- Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
56
- size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
57
-
58
- private:
59
- EncodedInputStream(const EncodedInputStream&);
60
- EncodedInputStream& operator=(const EncodedInputStream&);
61
-
62
- InputByteStream& is_;
63
- Ch current_;
64
- };
65
-
66
- //! Specialized for UTF8 MemoryStream.
67
- template <>
68
- class EncodedInputStream<UTF8<>, MemoryStream> {
69
- public:
70
- typedef UTF8<>::Ch Ch;
71
-
72
- EncodedInputStream(MemoryStream& is) : is_(is) {
73
- if (static_cast<unsigned char>(is_.Peek()) == 0xEFu) is_.Take();
74
- if (static_cast<unsigned char>(is_.Peek()) == 0xBBu) is_.Take();
75
- if (static_cast<unsigned char>(is_.Peek()) == 0xBFu) is_.Take();
76
- }
77
- Ch Peek() const { return is_.Peek(); }
78
- Ch Take() { return is_.Take(); }
79
- size_t Tell() const { return is_.Tell(); }
80
-
81
- // Not implemented
82
- void Put(Ch) {}
83
- void Flush() {}
84
- Ch* PutBegin() { return 0; }
85
- size_t PutEnd(Ch*) { return 0; }
86
-
87
- MemoryStream& is_;
88
-
89
- private:
90
- EncodedInputStream(const EncodedInputStream&);
91
- EncodedInputStream& operator=(const EncodedInputStream&);
92
- };
93
-
94
- //! Output byte stream wrapper with statically bound encoding.
95
- /*!
96
- \tparam Encoding The interpretation of encoding of the stream. Either UTF8, UTF16LE, UTF16BE, UTF32LE, UTF32BE.
97
- \tparam OutputByteStream Type of input byte stream. For example, FileWriteStream.
98
- */
99
- template <typename Encoding, typename OutputByteStream>
100
- class EncodedOutputStream {
101
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
102
- public:
103
- typedef typename Encoding::Ch Ch;
104
-
105
- EncodedOutputStream(OutputByteStream& os, bool putBOM = true) : os_(os) {
106
- if (putBOM)
107
- Encoding::PutBOM(os_);
108
- }
109
-
110
- void Put(Ch c) { Encoding::Put(os_, c); }
111
- void Flush() { os_.Flush(); }
112
-
113
- // Not implemented
114
- Ch Peek() const { RAPIDJSON_ASSERT(false); return 0;}
115
- Ch Take() { RAPIDJSON_ASSERT(false); return 0;}
116
- size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; }
117
- Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
118
- size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
119
-
120
- private:
121
- EncodedOutputStream(const EncodedOutputStream&);
122
- EncodedOutputStream& operator=(const EncodedOutputStream&);
123
-
124
- OutputByteStream& os_;
125
- };
126
-
127
- #define RAPIDJSON_ENCODINGS_FUNC(x) UTF8<Ch>::x, UTF16LE<Ch>::x, UTF16BE<Ch>::x, UTF32LE<Ch>::x, UTF32BE<Ch>::x
128
-
129
- //! Input stream wrapper with dynamically bound encoding and automatic encoding detection.
130
- /*!
131
- \tparam CharType Type of character for reading.
132
- \tparam InputByteStream type of input byte stream to be wrapped.
133
- */
134
- template <typename CharType, typename InputByteStream>
135
- class AutoUTFInputStream {
136
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
137
- public:
138
- typedef CharType Ch;
139
-
140
- //! Constructor.
141
- /*!
142
- \param is input stream to be wrapped.
143
- \param type UTF encoding type if it is not detected from the stream.
144
- */
145
- AutoUTFInputStream(InputByteStream& is, UTFType type = kUTF8) : is_(&is), type_(type), hasBOM_(false) {
146
- RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE);
147
- DetectType();
148
- static const TakeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Take) };
149
- takeFunc_ = f[type_];
150
- current_ = takeFunc_(*is_);
151
- }
152
-
153
- UTFType GetType() const { return type_; }
154
- bool HasBOM() const { return hasBOM_; }
155
-
156
- Ch Peek() const { return current_; }
157
- Ch Take() { Ch c = current_; current_ = takeFunc_(*is_); return c; }
158
- size_t Tell() const { return is_->Tell(); }
159
-
160
- // Not implemented
161
- void Put(Ch) { RAPIDJSON_ASSERT(false); }
162
- void Flush() { RAPIDJSON_ASSERT(false); }
163
- Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
164
- size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
165
-
166
- private:
167
- AutoUTFInputStream(const AutoUTFInputStream&);
168
- AutoUTFInputStream& operator=(const AutoUTFInputStream&);
169
-
170
- // Detect encoding type with BOM or RFC 4627
171
- void DetectType() {
172
- // BOM (Byte Order Mark):
173
- // 00 00 FE FF UTF-32BE
174
- // FF FE 00 00 UTF-32LE
175
- // FE FF UTF-16BE
176
- // FF FE UTF-16LE
177
- // EF BB BF UTF-8
178
-
179
- const unsigned char* c = reinterpret_cast<const unsigned char *>(is_->Peek4());
180
- if (!c)
181
- return;
182
-
183
- unsigned bom = static_cast<unsigned>(c[0] | (c[1] << 8) | (c[2] << 16) | (c[3] << 24));
184
- hasBOM_ = false;
185
- if (bom == 0xFFFE0000) { type_ = kUTF32BE; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); is_->Take(); }
186
- else if (bom == 0x0000FEFF) { type_ = kUTF32LE; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); is_->Take(); }
187
- else if ((bom & 0xFFFF) == 0xFFFE) { type_ = kUTF16BE; hasBOM_ = true; is_->Take(); is_->Take(); }
188
- else if ((bom & 0xFFFF) == 0xFEFF) { type_ = kUTF16LE; hasBOM_ = true; is_->Take(); is_->Take(); }
189
- else if ((bom & 0xFFFFFF) == 0xBFBBEF) { type_ = kUTF8; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); }
190
-
191
- // RFC 4627: Section 3
192
- // "Since the first two characters of a JSON text will always be ASCII
193
- // characters [RFC0020], it is possible to determine whether an octet
194
- // stream is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking
195
- // at the pattern of nulls in the first four octets."
196
- // 00 00 00 xx UTF-32BE
197
- // 00 xx 00 xx UTF-16BE
198
- // xx 00 00 00 UTF-32LE
199
- // xx 00 xx 00 UTF-16LE
200
- // xx xx xx xx UTF-8
201
-
202
- if (!hasBOM_) {
203
- int pattern = (c[0] ? 1 : 0) | (c[1] ? 2 : 0) | (c[2] ? 4 : 0) | (c[3] ? 8 : 0);
204
- switch (pattern) {
205
- case 0x08: type_ = kUTF32BE; break;
206
- case 0x0A: type_ = kUTF16BE; break;
207
- case 0x01: type_ = kUTF32LE; break;
208
- case 0x05: type_ = kUTF16LE; break;
209
- case 0x0F: type_ = kUTF8; break;
210
- default: break; // Use type defined by user.
211
- }
212
- }
213
-
214
- // Runtime check whether the size of character type is sufficient. It only perform checks with assertion.
215
- if (type_ == kUTF16LE || type_ == kUTF16BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 2);
216
- if (type_ == kUTF32LE || type_ == kUTF32BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 4);
217
- }
218
-
219
- typedef Ch (*TakeFunc)(InputByteStream& is);
220
- InputByteStream* is_;
221
- UTFType type_;
222
- Ch current_;
223
- TakeFunc takeFunc_;
224
- bool hasBOM_;
225
- };
226
-
227
- //! Output stream wrapper with dynamically bound encoding and automatic encoding detection.
228
- /*!
229
- \tparam CharType Type of character for writing.
230
- \tparam OutputByteStream type of output byte stream to be wrapped.
231
- */
232
- template <typename CharType, typename OutputByteStream>
233
- class AutoUTFOutputStream {
234
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
235
- public:
236
- typedef CharType Ch;
237
-
238
- //! Constructor.
239
- /*!
240
- \param os output stream to be wrapped.
241
- \param type UTF encoding type.
242
- \param putBOM Whether to write BOM at the beginning of the stream.
243
- */
244
- AutoUTFOutputStream(OutputByteStream& os, UTFType type, bool putBOM) : os_(&os), type_(type) {
245
- RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE);
246
-
247
- // Runtime check whether the size of character type is sufficient. It only perform checks with assertion.
248
- if (type_ == kUTF16LE || type_ == kUTF16BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 2);
249
- if (type_ == kUTF32LE || type_ == kUTF32BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 4);
250
-
251
- static const PutFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Put) };
252
- putFunc_ = f[type_];
253
-
254
- if (putBOM)
255
- PutBOM();
256
- }
257
-
258
- UTFType GetType() const { return type_; }
259
-
260
- void Put(Ch c) { putFunc_(*os_, c); }
261
- void Flush() { os_->Flush(); }
262
-
263
- // Not implemented
264
- Ch Peek() const { RAPIDJSON_ASSERT(false); return 0;}
265
- Ch Take() { RAPIDJSON_ASSERT(false); return 0;}
266
- size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; }
267
- Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
268
- size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
269
-
270
- private:
271
- AutoUTFOutputStream(const AutoUTFOutputStream&);
272
- AutoUTFOutputStream& operator=(const AutoUTFOutputStream&);
273
-
274
- void PutBOM() {
275
- typedef void (*PutBOMFunc)(OutputByteStream&);
276
- static const PutBOMFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(PutBOM) };
277
- f[type_](*os_);
278
- }
279
-
280
- typedef void (*PutFunc)(OutputByteStream&, Ch);
281
-
282
- OutputByteStream* os_;
283
- UTFType type_;
284
- PutFunc putFunc_;
285
- };
286
-
287
- #undef RAPIDJSON_ENCODINGS_FUNC
288
-
289
- RAPIDJSON_NAMESPACE_END
290
-
291
- #ifdef __clang__
292
- RAPIDJSON_DIAG_POP
293
- #endif
294
-
295
- #ifdef __GNUC__
296
- RAPIDJSON_DIAG_POP
297
- #endif
298
-
299
- #endif // RAPIDJSON_FILESTREAM_H_
@@ -1,716 +0,0 @@
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_ENCODINGS_H_
16
- #define RAPIDJSON_ENCODINGS_H_
17
-
18
- #include "rapidjson.h"
19
-
20
- #if defined(_MSC_VER) && !defined(__clang__)
21
- RAPIDJSON_DIAG_PUSH
22
- RAPIDJSON_DIAG_OFF(4244) // conversion from 'type1' to 'type2', possible loss of data
23
- RAPIDJSON_DIAG_OFF(4702) // unreachable code
24
- #elif defined(__GNUC__)
25
- RAPIDJSON_DIAG_PUSH
26
- RAPIDJSON_DIAG_OFF(effc++)
27
- RAPIDJSON_DIAG_OFF(overflow)
28
- #endif
29
-
30
- RAPIDJSON_NAMESPACE_BEGIN
31
-
32
- ///////////////////////////////////////////////////////////////////////////////
33
- // Encoding
34
-
35
- /*! \class rapidjson::Encoding
36
- \brief Concept for encoding of Unicode characters.
37
-
38
- \code
39
- concept Encoding {
40
- typename Ch; //! Type of character. A "character" is actually a code unit in unicode's definition.
41
-
42
- enum { supportUnicode = 1 }; // or 0 if not supporting unicode
43
-
44
- //! \brief Encode a Unicode codepoint to an output stream.
45
- //! \param os Output stream.
46
- //! \param codepoint An unicode codepoint, ranging from 0x0 to 0x10FFFF inclusively.
47
- template<typename OutputStream>
48
- static void Encode(OutputStream& os, unsigned codepoint);
49
-
50
- //! \brief Decode a Unicode codepoint from an input stream.
51
- //! \param is Input stream.
52
- //! \param codepoint Output of the unicode codepoint.
53
- //! \return true if a valid codepoint can be decoded from the stream.
54
- template <typename InputStream>
55
- static bool Decode(InputStream& is, unsigned* codepoint);
56
-
57
- //! \brief Validate one Unicode codepoint from an encoded stream.
58
- //! \param is Input stream to obtain codepoint.
59
- //! \param os Output for copying one codepoint.
60
- //! \return true if it is valid.
61
- //! \note This function just validating and copying the codepoint without actually decode it.
62
- template <typename InputStream, typename OutputStream>
63
- static bool Validate(InputStream& is, OutputStream& os);
64
-
65
- // The following functions are deal with byte streams.
66
-
67
- //! Take a character from input byte stream, skip BOM if exist.
68
- template <typename InputByteStream>
69
- static CharType TakeBOM(InputByteStream& is);
70
-
71
- //! Take a character from input byte stream.
72
- template <typename InputByteStream>
73
- static Ch Take(InputByteStream& is);
74
-
75
- //! Put BOM to output byte stream.
76
- template <typename OutputByteStream>
77
- static void PutBOM(OutputByteStream& os);
78
-
79
- //! Put a character to output byte stream.
80
- template <typename OutputByteStream>
81
- static void Put(OutputByteStream& os, Ch c);
82
- };
83
- \endcode
84
- */
85
-
86
- ///////////////////////////////////////////////////////////////////////////////
87
- // UTF8
88
-
89
- //! UTF-8 encoding.
90
- /*! http://en.wikipedia.org/wiki/UTF-8
91
- http://tools.ietf.org/html/rfc3629
92
- \tparam CharType Code unit for storing 8-bit UTF-8 data. Default is char.
93
- \note implements Encoding concept
94
- */
95
- template<typename CharType = char>
96
- struct UTF8 {
97
- typedef CharType Ch;
98
-
99
- enum { supportUnicode = 1 };
100
-
101
- template<typename OutputStream>
102
- static void Encode(OutputStream& os, unsigned codepoint) {
103
- if (codepoint <= 0x7F)
104
- os.Put(static_cast<Ch>(codepoint & 0xFF));
105
- else if (codepoint <= 0x7FF) {
106
- os.Put(static_cast<Ch>(0xC0 | ((codepoint >> 6) & 0xFF)));
107
- os.Put(static_cast<Ch>(0x80 | ((codepoint & 0x3F))));
108
- }
109
- else if (codepoint <= 0xFFFF) {
110
- os.Put(static_cast<Ch>(0xE0 | ((codepoint >> 12) & 0xFF)));
111
- os.Put(static_cast<Ch>(0x80 | ((codepoint >> 6) & 0x3F)));
112
- os.Put(static_cast<Ch>(0x80 | (codepoint & 0x3F)));
113
- }
114
- else {
115
- RAPIDJSON_ASSERT(codepoint <= 0x10FFFF);
116
- os.Put(static_cast<Ch>(0xF0 | ((codepoint >> 18) & 0xFF)));
117
- os.Put(static_cast<Ch>(0x80 | ((codepoint >> 12) & 0x3F)));
118
- os.Put(static_cast<Ch>(0x80 | ((codepoint >> 6) & 0x3F)));
119
- os.Put(static_cast<Ch>(0x80 | (codepoint & 0x3F)));
120
- }
121
- }
122
-
123
- template<typename OutputStream>
124
- static void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
125
- if (codepoint <= 0x7F)
126
- PutUnsafe(os, static_cast<Ch>(codepoint & 0xFF));
127
- else if (codepoint <= 0x7FF) {
128
- PutUnsafe(os, static_cast<Ch>(0xC0 | ((codepoint >> 6) & 0xFF)));
129
- PutUnsafe(os, static_cast<Ch>(0x80 | ((codepoint & 0x3F))));
130
- }
131
- else if (codepoint <= 0xFFFF) {
132
- PutUnsafe(os, static_cast<Ch>(0xE0 | ((codepoint >> 12) & 0xFF)));
133
- PutUnsafe(os, static_cast<Ch>(0x80 | ((codepoint >> 6) & 0x3F)));
134
- PutUnsafe(os, static_cast<Ch>(0x80 | (codepoint & 0x3F)));
135
- }
136
- else {
137
- RAPIDJSON_ASSERT(codepoint <= 0x10FFFF);
138
- PutUnsafe(os, static_cast<Ch>(0xF0 | ((codepoint >> 18) & 0xFF)));
139
- PutUnsafe(os, static_cast<Ch>(0x80 | ((codepoint >> 12) & 0x3F)));
140
- PutUnsafe(os, static_cast<Ch>(0x80 | ((codepoint >> 6) & 0x3F)));
141
- PutUnsafe(os, static_cast<Ch>(0x80 | (codepoint & 0x3F)));
142
- }
143
- }
144
-
145
- template <typename InputStream>
146
- static bool Decode(InputStream& is, unsigned* codepoint) {
147
- #define RAPIDJSON_COPY() c = is.Take(); *codepoint = (*codepoint << 6) | (static_cast<unsigned char>(c) & 0x3Fu)
148
- #define RAPIDJSON_TRANS(mask) result &= ((GetRange(static_cast<unsigned char>(c)) & mask) != 0)
149
- #define RAPIDJSON_TAIL() RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x70)
150
- typename InputStream::Ch c = is.Take();
151
- if (!(c & 0x80)) {
152
- *codepoint = static_cast<unsigned char>(c);
153
- return true;
154
- }
155
-
156
- unsigned char type = GetRange(static_cast<unsigned char>(c));
157
- if (type >= 32) {
158
- *codepoint = 0;
159
- } else {
160
- *codepoint = (0xFFu >> type) & static_cast<unsigned char>(c);
161
- }
162
- bool result = true;
163
- switch (type) {
164
- case 2: RAPIDJSON_TAIL(); return result;
165
- case 3: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result;
166
- case 4: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x50); RAPIDJSON_TAIL(); return result;
167
- case 5: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x10); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result;
168
- case 6: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result;
169
- case 10: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x20); RAPIDJSON_TAIL(); return result;
170
- case 11: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x60); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result;
171
- default: return false;
172
- }
173
- #undef RAPIDJSON_COPY
174
- #undef RAPIDJSON_TRANS
175
- #undef RAPIDJSON_TAIL
176
- }
177
-
178
- template <typename InputStream, typename OutputStream>
179
- static bool Validate(InputStream& is, OutputStream& os) {
180
- #define RAPIDJSON_COPY() os.Put(c = is.Take())
181
- #define RAPIDJSON_TRANS(mask) result &= ((GetRange(static_cast<unsigned char>(c)) & mask) != 0)
182
- #define RAPIDJSON_TAIL() RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x70)
183
- Ch c;
184
- RAPIDJSON_COPY();
185
- if (!(c & 0x80))
186
- return true;
187
-
188
- bool result = true;
189
- switch (GetRange(static_cast<unsigned char>(c))) {
190
- case 2: RAPIDJSON_TAIL(); return result;
191
- case 3: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result;
192
- case 4: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x50); RAPIDJSON_TAIL(); return result;
193
- case 5: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x10); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result;
194
- case 6: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result;
195
- case 10: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x20); RAPIDJSON_TAIL(); return result;
196
- case 11: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x60); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result;
197
- default: return false;
198
- }
199
- #undef RAPIDJSON_COPY
200
- #undef RAPIDJSON_TRANS
201
- #undef RAPIDJSON_TAIL
202
- }
203
-
204
- static unsigned char GetRange(unsigned char c) {
205
- // Referring to DFA of http://bjoern.hoehrmann.de/utf-8/decoder/dfa/
206
- // With new mapping 1 -> 0x10, 7 -> 0x20, 9 -> 0x40, such that AND operation can test multiple types.
207
- static const unsigned char type[] = {
208
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
209
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
210
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
211
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
212
- 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
213
- 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
214
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
215
- 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
216
- 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
217
- 10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8,
218
- };
219
- return type[c];
220
- }
221
-
222
- template <typename InputByteStream>
223
- static CharType TakeBOM(InputByteStream& is) {
224
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
225
- typename InputByteStream::Ch c = Take(is);
226
- if (static_cast<unsigned char>(c) != 0xEFu) return c;
227
- c = is.Take();
228
- if (static_cast<unsigned char>(c) != 0xBBu) return c;
229
- c = is.Take();
230
- if (static_cast<unsigned char>(c) != 0xBFu) return c;
231
- c = is.Take();
232
- return c;
233
- }
234
-
235
- template <typename InputByteStream>
236
- static Ch Take(InputByteStream& is) {
237
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
238
- return static_cast<Ch>(is.Take());
239
- }
240
-
241
- template <typename OutputByteStream>
242
- static void PutBOM(OutputByteStream& os) {
243
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
244
- os.Put(static_cast<typename OutputByteStream::Ch>(0xEFu));
245
- os.Put(static_cast<typename OutputByteStream::Ch>(0xBBu));
246
- os.Put(static_cast<typename OutputByteStream::Ch>(0xBFu));
247
- }
248
-
249
- template <typename OutputByteStream>
250
- static void Put(OutputByteStream& os, Ch c) {
251
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
252
- os.Put(static_cast<typename OutputByteStream::Ch>(c));
253
- }
254
- };
255
-
256
- ///////////////////////////////////////////////////////////////////////////////
257
- // UTF16
258
-
259
- //! UTF-16 encoding.
260
- /*! http://en.wikipedia.org/wiki/UTF-16
261
- http://tools.ietf.org/html/rfc2781
262
- \tparam CharType Type for storing 16-bit UTF-16 data. Default is wchar_t. C++11 may use char16_t instead.
263
- \note implements Encoding concept
264
-
265
- \note For in-memory access, no need to concern endianness. The code units and code points are represented by CPU's endianness.
266
- For streaming, use UTF16LE and UTF16BE, which handle endianness.
267
- */
268
- template<typename CharType = wchar_t>
269
- struct UTF16 {
270
- typedef CharType Ch;
271
- RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >= 2);
272
-
273
- enum { supportUnicode = 1 };
274
-
275
- template<typename OutputStream>
276
- static void Encode(OutputStream& os, unsigned codepoint) {
277
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2);
278
- if (codepoint <= 0xFFFF) {
279
- RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
280
- os.Put(static_cast<typename OutputStream::Ch>(codepoint));
281
- }
282
- else {
283
- RAPIDJSON_ASSERT(codepoint <= 0x10FFFF);
284
- unsigned v = codepoint - 0x10000;
285
- os.Put(static_cast<typename OutputStream::Ch>((v >> 10) | 0xD800));
286
- os.Put(static_cast<typename OutputStream::Ch>((v & 0x3FF) | 0xDC00));
287
- }
288
- }
289
-
290
-
291
- template<typename OutputStream>
292
- static void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
293
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2);
294
- if (codepoint <= 0xFFFF) {
295
- RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
296
- PutUnsafe(os, static_cast<typename OutputStream::Ch>(codepoint));
297
- }
298
- else {
299
- RAPIDJSON_ASSERT(codepoint <= 0x10FFFF);
300
- unsigned v = codepoint - 0x10000;
301
- PutUnsafe(os, static_cast<typename OutputStream::Ch>((v >> 10) | 0xD800));
302
- PutUnsafe(os, static_cast<typename OutputStream::Ch>((v & 0x3FF) | 0xDC00));
303
- }
304
- }
305
-
306
- template <typename InputStream>
307
- static bool Decode(InputStream& is, unsigned* codepoint) {
308
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 2);
309
- typename InputStream::Ch c = is.Take();
310
- if (c < 0xD800 || c > 0xDFFF) {
311
- *codepoint = static_cast<unsigned>(c);
312
- return true;
313
- }
314
- else if (c <= 0xDBFF) {
315
- *codepoint = (static_cast<unsigned>(c) & 0x3FF) << 10;
316
- c = is.Take();
317
- *codepoint |= (static_cast<unsigned>(c) & 0x3FF);
318
- *codepoint += 0x10000;
319
- return c >= 0xDC00 && c <= 0xDFFF;
320
- }
321
- return false;
322
- }
323
-
324
- template <typename InputStream, typename OutputStream>
325
- static bool Validate(InputStream& is, OutputStream& os) {
326
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 2);
327
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2);
328
- typename InputStream::Ch c;
329
- os.Put(static_cast<typename OutputStream::Ch>(c = is.Take()));
330
- if (c < 0xD800 || c > 0xDFFF)
331
- return true;
332
- else if (c <= 0xDBFF) {
333
- os.Put(c = is.Take());
334
- return c >= 0xDC00 && c <= 0xDFFF;
335
- }
336
- return false;
337
- }
338
- };
339
-
340
- //! UTF-16 little endian encoding.
341
- template<typename CharType = wchar_t>
342
- struct UTF16LE : UTF16<CharType> {
343
- template <typename InputByteStream>
344
- static CharType TakeBOM(InputByteStream& is) {
345
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
346
- CharType c = Take(is);
347
- return static_cast<uint16_t>(c) == 0xFEFFu ? Take(is) : c;
348
- }
349
-
350
- template <typename InputByteStream>
351
- static CharType Take(InputByteStream& is) {
352
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
353
- unsigned c = static_cast<uint8_t>(is.Take());
354
- c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 8;
355
- return static_cast<CharType>(c);
356
- }
357
-
358
- template <typename OutputByteStream>
359
- static void PutBOM(OutputByteStream& os) {
360
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
361
- os.Put(static_cast<typename OutputByteStream::Ch>(0xFFu));
362
- os.Put(static_cast<typename OutputByteStream::Ch>(0xFEu));
363
- }
364
-
365
- template <typename OutputByteStream>
366
- static void Put(OutputByteStream& os, CharType c) {
367
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
368
- os.Put(static_cast<typename OutputByteStream::Ch>(static_cast<unsigned>(c) & 0xFFu));
369
- os.Put(static_cast<typename OutputByteStream::Ch>((static_cast<unsigned>(c) >> 8) & 0xFFu));
370
- }
371
- };
372
-
373
- //! UTF-16 big endian encoding.
374
- template<typename CharType = wchar_t>
375
- struct UTF16BE : UTF16<CharType> {
376
- template <typename InputByteStream>
377
- static CharType TakeBOM(InputByteStream& is) {
378
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
379
- CharType c = Take(is);
380
- return static_cast<uint16_t>(c) == 0xFEFFu ? Take(is) : c;
381
- }
382
-
383
- template <typename InputByteStream>
384
- static CharType Take(InputByteStream& is) {
385
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
386
- unsigned c = static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 8;
387
- c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take()));
388
- return static_cast<CharType>(c);
389
- }
390
-
391
- template <typename OutputByteStream>
392
- static void PutBOM(OutputByteStream& os) {
393
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
394
- os.Put(static_cast<typename OutputByteStream::Ch>(0xFEu));
395
- os.Put(static_cast<typename OutputByteStream::Ch>(0xFFu));
396
- }
397
-
398
- template <typename OutputByteStream>
399
- static void Put(OutputByteStream& os, CharType c) {
400
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
401
- os.Put(static_cast<typename OutputByteStream::Ch>((static_cast<unsigned>(c) >> 8) & 0xFFu));
402
- os.Put(static_cast<typename OutputByteStream::Ch>(static_cast<unsigned>(c) & 0xFFu));
403
- }
404
- };
405
-
406
- ///////////////////////////////////////////////////////////////////////////////
407
- // UTF32
408
-
409
- //! UTF-32 encoding.
410
- /*! http://en.wikipedia.org/wiki/UTF-32
411
- \tparam CharType Type for storing 32-bit UTF-32 data. Default is unsigned. C++11 may use char32_t instead.
412
- \note implements Encoding concept
413
-
414
- \note For in-memory access, no need to concern endianness. The code units and code points are represented by CPU's endianness.
415
- For streaming, use UTF32LE and UTF32BE, which handle endianness.
416
- */
417
- template<typename CharType = unsigned>
418
- struct UTF32 {
419
- typedef CharType Ch;
420
- RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >= 4);
421
-
422
- enum { supportUnicode = 1 };
423
-
424
- template<typename OutputStream>
425
- static void Encode(OutputStream& os, unsigned codepoint) {
426
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 4);
427
- RAPIDJSON_ASSERT(codepoint <= 0x10FFFF);
428
- os.Put(codepoint);
429
- }
430
-
431
- template<typename OutputStream>
432
- static void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
433
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 4);
434
- RAPIDJSON_ASSERT(codepoint <= 0x10FFFF);
435
- PutUnsafe(os, codepoint);
436
- }
437
-
438
- template <typename InputStream>
439
- static bool Decode(InputStream& is, unsigned* codepoint) {
440
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 4);
441
- Ch c = is.Take();
442
- *codepoint = c;
443
- return c <= 0x10FFFF;
444
- }
445
-
446
- template <typename InputStream, typename OutputStream>
447
- static bool Validate(InputStream& is, OutputStream& os) {
448
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 4);
449
- Ch c;
450
- os.Put(c = is.Take());
451
- return c <= 0x10FFFF;
452
- }
453
- };
454
-
455
- //! UTF-32 little endian enocoding.
456
- template<typename CharType = unsigned>
457
- struct UTF32LE : UTF32<CharType> {
458
- template <typename InputByteStream>
459
- static CharType TakeBOM(InputByteStream& is) {
460
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
461
- CharType c = Take(is);
462
- return static_cast<uint32_t>(c) == 0x0000FEFFu ? Take(is) : c;
463
- }
464
-
465
- template <typename InputByteStream>
466
- static CharType Take(InputByteStream& is) {
467
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
468
- unsigned c = static_cast<uint8_t>(is.Take());
469
- c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 8;
470
- c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 16;
471
- c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 24;
472
- return static_cast<CharType>(c);
473
- }
474
-
475
- template <typename OutputByteStream>
476
- static void PutBOM(OutputByteStream& os) {
477
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
478
- os.Put(static_cast<typename OutputByteStream::Ch>(0xFFu));
479
- os.Put(static_cast<typename OutputByteStream::Ch>(0xFEu));
480
- os.Put(static_cast<typename OutputByteStream::Ch>(0x00u));
481
- os.Put(static_cast<typename OutputByteStream::Ch>(0x00u));
482
- }
483
-
484
- template <typename OutputByteStream>
485
- static void Put(OutputByteStream& os, CharType c) {
486
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
487
- os.Put(static_cast<typename OutputByteStream::Ch>(c & 0xFFu));
488
- os.Put(static_cast<typename OutputByteStream::Ch>((c >> 8) & 0xFFu));
489
- os.Put(static_cast<typename OutputByteStream::Ch>((c >> 16) & 0xFFu));
490
- os.Put(static_cast<typename OutputByteStream::Ch>((c >> 24) & 0xFFu));
491
- }
492
- };
493
-
494
- //! UTF-32 big endian encoding.
495
- template<typename CharType = unsigned>
496
- struct UTF32BE : UTF32<CharType> {
497
- template <typename InputByteStream>
498
- static CharType TakeBOM(InputByteStream& is) {
499
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
500
- CharType c = Take(is);
501
- return static_cast<uint32_t>(c) == 0x0000FEFFu ? Take(is) : c;
502
- }
503
-
504
- template <typename InputByteStream>
505
- static CharType Take(InputByteStream& is) {
506
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
507
- unsigned c = static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 24;
508
- c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 16;
509
- c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take())) << 8;
510
- c |= static_cast<unsigned>(static_cast<uint8_t>(is.Take()));
511
- return static_cast<CharType>(c);
512
- }
513
-
514
- template <typename OutputByteStream>
515
- static void PutBOM(OutputByteStream& os) {
516
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
517
- os.Put(static_cast<typename OutputByteStream::Ch>(0x00u));
518
- os.Put(static_cast<typename OutputByteStream::Ch>(0x00u));
519
- os.Put(static_cast<typename OutputByteStream::Ch>(0xFEu));
520
- os.Put(static_cast<typename OutputByteStream::Ch>(0xFFu));
521
- }
522
-
523
- template <typename OutputByteStream>
524
- static void Put(OutputByteStream& os, CharType c) {
525
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
526
- os.Put(static_cast<typename OutputByteStream::Ch>((c >> 24) & 0xFFu));
527
- os.Put(static_cast<typename OutputByteStream::Ch>((c >> 16) & 0xFFu));
528
- os.Put(static_cast<typename OutputByteStream::Ch>((c >> 8) & 0xFFu));
529
- os.Put(static_cast<typename OutputByteStream::Ch>(c & 0xFFu));
530
- }
531
- };
532
-
533
- ///////////////////////////////////////////////////////////////////////////////
534
- // ASCII
535
-
536
- //! ASCII encoding.
537
- /*! http://en.wikipedia.org/wiki/ASCII
538
- \tparam CharType Code unit for storing 7-bit ASCII data. Default is char.
539
- \note implements Encoding concept
540
- */
541
- template<typename CharType = char>
542
- struct ASCII {
543
- typedef CharType Ch;
544
-
545
- enum { supportUnicode = 0 };
546
-
547
- template<typename OutputStream>
548
- static void Encode(OutputStream& os, unsigned codepoint) {
549
- RAPIDJSON_ASSERT(codepoint <= 0x7F);
550
- os.Put(static_cast<Ch>(codepoint & 0xFF));
551
- }
552
-
553
- template<typename OutputStream>
554
- static void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
555
- RAPIDJSON_ASSERT(codepoint <= 0x7F);
556
- PutUnsafe(os, static_cast<Ch>(codepoint & 0xFF));
557
- }
558
-
559
- template <typename InputStream>
560
- static bool Decode(InputStream& is, unsigned* codepoint) {
561
- uint8_t c = static_cast<uint8_t>(is.Take());
562
- *codepoint = c;
563
- return c <= 0X7F;
564
- }
565
-
566
- template <typename InputStream, typename OutputStream>
567
- static bool Validate(InputStream& is, OutputStream& os) {
568
- uint8_t c = static_cast<uint8_t>(is.Take());
569
- os.Put(static_cast<typename OutputStream::Ch>(c));
570
- return c <= 0x7F;
571
- }
572
-
573
- template <typename InputByteStream>
574
- static CharType TakeBOM(InputByteStream& is) {
575
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
576
- uint8_t c = static_cast<uint8_t>(Take(is));
577
- return static_cast<Ch>(c);
578
- }
579
-
580
- template <typename InputByteStream>
581
- static Ch Take(InputByteStream& is) {
582
- RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
583
- return static_cast<Ch>(is.Take());
584
- }
585
-
586
- template <typename OutputByteStream>
587
- static void PutBOM(OutputByteStream& os) {
588
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
589
- (void)os;
590
- }
591
-
592
- template <typename OutputByteStream>
593
- static void Put(OutputByteStream& os, Ch c) {
594
- RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1);
595
- os.Put(static_cast<typename OutputByteStream::Ch>(c));
596
- }
597
- };
598
-
599
- ///////////////////////////////////////////////////////////////////////////////
600
- // AutoUTF
601
-
602
- //! Runtime-specified UTF encoding type of a stream.
603
- enum UTFType {
604
- kUTF8 = 0, //!< UTF-8.
605
- kUTF16LE = 1, //!< UTF-16 little endian.
606
- kUTF16BE = 2, //!< UTF-16 big endian.
607
- kUTF32LE = 3, //!< UTF-32 little endian.
608
- kUTF32BE = 4 //!< UTF-32 big endian.
609
- };
610
-
611
- //! Dynamically select encoding according to stream's runtime-specified UTF encoding type.
612
- /*! \note This class can be used with AutoUTFInputtStream and AutoUTFOutputStream, which provides GetType().
613
- */
614
- template<typename CharType>
615
- struct AutoUTF {
616
- typedef CharType Ch;
617
-
618
- enum { supportUnicode = 1 };
619
-
620
- #define RAPIDJSON_ENCODINGS_FUNC(x) UTF8<Ch>::x, UTF16LE<Ch>::x, UTF16BE<Ch>::x, UTF32LE<Ch>::x, UTF32BE<Ch>::x
621
-
622
- template<typename OutputStream>
623
- static RAPIDJSON_FORCEINLINE void Encode(OutputStream& os, unsigned codepoint) {
624
- typedef void (*EncodeFunc)(OutputStream&, unsigned);
625
- static const EncodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Encode) };
626
- (*f[os.GetType()])(os, codepoint);
627
- }
628
-
629
- template<typename OutputStream>
630
- static RAPIDJSON_FORCEINLINE void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
631
- typedef void (*EncodeFunc)(OutputStream&, unsigned);
632
- static const EncodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(EncodeUnsafe) };
633
- (*f[os.GetType()])(os, codepoint);
634
- }
635
-
636
- template <typename InputStream>
637
- static RAPIDJSON_FORCEINLINE bool Decode(InputStream& is, unsigned* codepoint) {
638
- typedef bool (*DecodeFunc)(InputStream&, unsigned*);
639
- static const DecodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Decode) };
640
- return (*f[is.GetType()])(is, codepoint);
641
- }
642
-
643
- template <typename InputStream, typename OutputStream>
644
- static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) {
645
- typedef bool (*ValidateFunc)(InputStream&, OutputStream&);
646
- static const ValidateFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Validate) };
647
- return (*f[is.GetType()])(is, os);
648
- }
649
-
650
- #undef RAPIDJSON_ENCODINGS_FUNC
651
- };
652
-
653
- ///////////////////////////////////////////////////////////////////////////////
654
- // Transcoder
655
-
656
- //! Encoding conversion.
657
- template<typename SourceEncoding, typename TargetEncoding>
658
- struct Transcoder {
659
- //! Take one Unicode codepoint from source encoding, convert it to target encoding and put it to the output stream.
660
- template<typename InputStream, typename OutputStream>
661
- static RAPIDJSON_FORCEINLINE bool Transcode(InputStream& is, OutputStream& os) {
662
- unsigned codepoint;
663
- if (!SourceEncoding::Decode(is, &codepoint))
664
- return false;
665
- TargetEncoding::Encode(os, codepoint);
666
- return true;
667
- }
668
-
669
- template<typename InputStream, typename OutputStream>
670
- static RAPIDJSON_FORCEINLINE bool TranscodeUnsafe(InputStream& is, OutputStream& os) {
671
- unsigned codepoint;
672
- if (!SourceEncoding::Decode(is, &codepoint))
673
- return false;
674
- TargetEncoding::EncodeUnsafe(os, codepoint);
675
- return true;
676
- }
677
-
678
- //! Validate one Unicode codepoint from an encoded stream.
679
- template<typename InputStream, typename OutputStream>
680
- static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) {
681
- return Transcode(is, os); // Since source/target encoding is different, must transcode.
682
- }
683
- };
684
-
685
- // Forward declaration.
686
- template<typename Stream>
687
- inline void PutUnsafe(Stream& stream, typename Stream::Ch c);
688
-
689
- //! Specialization of Transcoder with same source and target encoding.
690
- template<typename Encoding>
691
- struct Transcoder<Encoding, Encoding> {
692
- template<typename InputStream, typename OutputStream>
693
- static RAPIDJSON_FORCEINLINE bool Transcode(InputStream& is, OutputStream& os) {
694
- os.Put(is.Take()); // Just copy one code unit. This semantic is different from primary template class.
695
- return true;
696
- }
697
-
698
- template<typename InputStream, typename OutputStream>
699
- static RAPIDJSON_FORCEINLINE bool TranscodeUnsafe(InputStream& is, OutputStream& os) {
700
- PutUnsafe(os, is.Take()); // Just copy one code unit. This semantic is different from primary template class.
701
- return true;
702
- }
703
-
704
- template<typename InputStream, typename OutputStream>
705
- static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) {
706
- return Encoding::Validate(is, os); // source/target encoding are the same
707
- }
708
- };
709
-
710
- RAPIDJSON_NAMESPACE_END
711
-
712
- #if defined(__GNUC__) || (defined(_MSC_VER) && !defined(__clang__))
713
- RAPIDJSON_DIAG_POP
714
- #endif
715
-
716
- #endif // RAPIDJSON_ENCODINGS_H_