react-native-quick-crypto 1.0.19 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. package/QuickCrypto.podspec +12 -38
  2. package/README.md +2 -0
  3. package/android/CMakeLists.txt +3 -0
  4. package/cpp/utils/HybridUtils.cpp +39 -77
  5. package/deps/simdutf/.clang-format +4 -0
  6. package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +62 -0
  7. package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +1 -0
  8. package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +35 -0
  9. package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +29 -0
  10. package/deps/simdutf/.github/pull_request_template.md +51 -0
  11. package/deps/simdutf/.github/workflows/aarch64.yml +39 -0
  12. package/deps/simdutf/.github/workflows/alpine.yml +27 -0
  13. package/deps/simdutf/.github/workflows/amalgamation_demos.yml +34 -0
  14. package/deps/simdutf/.github/workflows/armv7.yml +32 -0
  15. package/deps/simdutf/.github/workflows/atomic_fuzz.yml +25 -0
  16. package/deps/simdutf/.github/workflows/cifuzz.yml +37 -0
  17. package/deps/simdutf/.github/workflows/clangformat.yml +36 -0
  18. package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +40 -0
  19. package/deps/simdutf/.github/workflows/debian.yml +33 -0
  20. package/deps/simdutf/.github/workflows/documentation.yml +36 -0
  21. package/deps/simdutf/.github/workflows/emscripten.yml +19 -0
  22. package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +39 -0
  23. package/deps/simdutf/.github/workflows/macos-latest.yml +29 -0
  24. package/deps/simdutf/.github/workflows/msys2-clang.yml +48 -0
  25. package/deps/simdutf/.github/workflows/msys2.yml +50 -0
  26. package/deps/simdutf/.github/workflows/ppc64le.yml +29 -0
  27. package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +35 -0
  28. package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +35 -0
  29. package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +31 -0
  30. package/deps/simdutf/.github/workflows/s390x.yml +29 -0
  31. package/deps/simdutf/.github/workflows/selective-amalgamation.yml +29 -0
  32. package/deps/simdutf/.github/workflows/typos.yml +19 -0
  33. package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +30 -0
  34. package/deps/simdutf/.github/workflows/ubuntu22.yml +32 -0
  35. package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +27 -0
  36. package/deps/simdutf/.github/workflows/ubuntu22sani.yml +29 -0
  37. package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +34 -0
  38. package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +34 -0
  39. package/deps/simdutf/.github/workflows/ubuntu24.yml +32 -0
  40. package/deps/simdutf/.github/workflows/ubuntu24sani.yml +36 -0
  41. package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +29 -0
  42. package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +21 -0
  43. package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +41 -0
  44. package/deps/simdutf/.github/workflows/vs17-ci.yml +41 -0
  45. package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +41 -0
  46. package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +36 -0
  47. package/deps/simdutf/AI_USAGE_POLICY.md +56 -0
  48. package/deps/simdutf/AUTHORS +6 -0
  49. package/deps/simdutf/CMakeLists.txt +231 -0
  50. package/deps/simdutf/CONTRIBUTING.md +214 -0
  51. package/deps/simdutf/CONTRIBUTORS +1 -0
  52. package/deps/simdutf/Doxyfile +2584 -0
  53. package/deps/simdutf/LICENSE-APACHE +201 -0
  54. package/deps/simdutf/LICENSE-MIT +18 -0
  55. package/deps/simdutf/Makefile.crosscompile +54 -0
  56. package/deps/simdutf/README-RVV.md +16 -0
  57. package/deps/simdutf/README.md +2782 -0
  58. package/deps/simdutf/SECURITY.md +8 -0
  59. package/deps/simdutf/benchmarks/CMakeLists.txt +101 -0
  60. package/deps/simdutf/benchmarks/alignment.cpp +150 -0
  61. package/deps/simdutf/benchmarks/base64/CMakeLists.txt +30 -0
  62. package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +875 -0
  63. package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +49 -0
  64. package/deps/simdutf/benchmarks/base64/node_base64.h +227 -0
  65. package/deps/simdutf/benchmarks/base64/openssl3_base64.h +334 -0
  66. package/deps/simdutf/benchmarks/benchmark.cpp +65 -0
  67. package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +347 -0
  68. package/deps/simdutf/benchmarks/competition/.clang-format-ignore +5 -0
  69. package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +1276 -0
  70. package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +595 -0
  71. package/deps/simdutf/benchmarks/competition/README.md +7 -0
  72. package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +91 -0
  73. package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +444 -0
  74. package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +13183 -0
  75. package/deps/simdutf/benchmarks/competition/inoue2008/script.py +73 -0
  76. package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +738 -0
  77. package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +293 -0
  78. package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +8 -0
  79. package/deps/simdutf/benchmarks/competition/u8u16/Makefile +44 -0
  80. package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +169 -0
  81. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +148 -0
  82. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +45 -0
  83. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +34 -0
  84. package/deps/simdutf/benchmarks/competition/u8u16/README +56 -0
  85. package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +43 -0
  86. package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +27 -0
  87. package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +16 -0
  88. package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +18 -0
  89. package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +16 -0
  90. package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +28 -0
  91. package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +20 -0
  92. package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +2 -0
  93. package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +440 -0
  94. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +121 -0
  95. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +158 -0
  96. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +270 -0
  97. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +141 -0
  98. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +216 -0
  99. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +119 -0
  100. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +2430 -0
  101. package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +39 -0
  102. package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +421 -0
  103. package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +836 -0
  104. package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +222 -0
  105. package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +4 -0
  106. package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +5 -0
  107. package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +390 -0
  108. package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +18 -0
  109. package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +448 -0
  110. package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +284 -0
  111. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +1975 -0
  112. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
  113. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +2263 -0
  114. package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +239 -0
  115. package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +232 -0
  116. package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +194 -0
  117. package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +193 -0
  118. package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +167 -0
  119. package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +288 -0
  120. package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +117 -0
  121. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +2 -0
  122. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +2 -0
  123. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +3 -0
  124. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +2 -0
  125. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +2 -0
  126. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +3 -0
  127. package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +2 -0
  128. package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +23 -0
  129. package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +44 -0
  130. package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +106 -0
  131. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +11 -0
  132. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +13 -0
  133. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +13 -0
  134. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +13 -0
  135. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +14 -0
  136. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +11 -0
  137. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +8 -0
  138. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +12 -0
  139. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +13 -0
  140. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +14 -0
  141. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +11 -0
  142. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +8 -0
  143. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +11 -0
  144. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +12 -0
  145. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +13 -0
  146. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +10 -0
  147. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +9 -0
  148. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +25 -0
  149. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +94 -0
  150. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +20 -0
  151. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +2 -0
  152. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +1 -0
  153. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +75 -0
  154. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +47 -0
  155. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +17 -0
  156. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +76 -0
  157. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +35 -0
  158. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +117 -0
  159. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +210 -0
  160. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +158 -0
  161. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +104 -0
  162. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +334 -0
  163. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +186 -0
  164. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +140 -0
  165. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +42 -0
  166. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +100 -0
  167. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +57 -0
  168. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +85 -0
  169. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +27 -0
  170. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +126 -0
  171. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +108 -0
  172. package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +139 -0
  173. package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +74 -0
  174. package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +65 -0
  175. package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +91 -0
  176. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +772 -0
  177. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +12 -0
  178. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +486 -0
  179. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +162 -0
  180. package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +15 -0
  181. package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +292 -0
  182. package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +23 -0
  183. package/deps/simdutf/benchmarks/competition/utfcpp/README.md +1503 -0
  184. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +335 -0
  185. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +338 -0
  186. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +103 -0
  187. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +103 -0
  188. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +274 -0
  189. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +34 -0
  190. package/deps/simdutf/benchmarks/dataset/README.md +155 -0
  191. package/deps/simdutf/benchmarks/dataset/emoji.txt +204 -0
  192. package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +40 -0
  193. package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +80 -0
  194. package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +20 -0
  195. package/deps/simdutf/benchmarks/find/CMakeLists.txt +6 -0
  196. package/deps/simdutf/benchmarks/find/findbenchmark.cpp +63 -0
  197. package/deps/simdutf/benchmarks/find/findbenchmarker.h +46 -0
  198. package/deps/simdutf/benchmarks/shortbench.cpp +555 -0
  199. package/deps/simdutf/benchmarks/src/CMakeLists.txt +52 -0
  200. package/deps/simdutf/benchmarks/src/apple_arm_events.h +1104 -0
  201. package/deps/simdutf/benchmarks/src/benchmark.cpp +3899 -0
  202. package/deps/simdutf/benchmarks/src/benchmark.h +317 -0
  203. package/deps/simdutf/benchmarks/src/benchmark_base.cpp +144 -0
  204. package/deps/simdutf/benchmarks/src/benchmark_base.h +98 -0
  205. package/deps/simdutf/benchmarks/src/cmdline.cpp +176 -0
  206. package/deps/simdutf/benchmarks/src/cmdline.h +35 -0
  207. package/deps/simdutf/benchmarks/src/event_counter.h +162 -0
  208. package/deps/simdutf/benchmarks/src/linux-perf-events.h +104 -0
  209. package/deps/simdutf/benchmarks/stream.cpp +209 -0
  210. package/deps/simdutf/benchmarks/threaded.cpp +123 -0
  211. package/deps/simdutf/cmake/CPM.cmake +1363 -0
  212. package/deps/simdutf/cmake/JoinPaths.cmake +23 -0
  213. package/deps/simdutf/cmake/add_cpp_test.cmake +68 -0
  214. package/deps/simdutf/cmake/simdutf-config.cmake.in +2 -0
  215. package/deps/simdutf/cmake/simdutf-flags.cmake +26 -0
  216. package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +4 -0
  217. package/deps/simdutf/cmake/toolchains-dev/README.md +32 -0
  218. package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +14 -0
  219. package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +22 -0
  220. package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +16 -0
  221. package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +16 -0
  222. package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +16 -0
  223. package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +38 -0
  224. package/deps/simdutf/doc/avx512.png +0 -0
  225. package/deps/simdutf/doc/logo.png +0 -0
  226. package/deps/simdutf/doc/logo.svg +165 -0
  227. package/deps/simdutf/doc/node2023.png +0 -0
  228. package/deps/simdutf/doc/shortinput.md +78 -0
  229. package/deps/simdutf/doc/utf16utf8.png +0 -0
  230. package/deps/simdutf/doc/utf8utf16.png +0 -0
  231. package/deps/simdutf/doc/widelogo.png +0 -0
  232. package/deps/simdutf/doxygen.py +50 -0
  233. package/deps/simdutf/fuzz/.clang-format +9 -0
  234. package/deps/simdutf/fuzz/CMakeLists.txt +45 -0
  235. package/deps/simdutf/fuzz/README.md +168 -0
  236. package/deps/simdutf/fuzz/atomic_base64.cpp +448 -0
  237. package/deps/simdutf/fuzz/base64.cpp +278 -0
  238. package/deps/simdutf/fuzz/build.sh +83 -0
  239. package/deps/simdutf/fuzz/conversion.cpp +669 -0
  240. package/deps/simdutf/fuzz/helpers/.clang-format-ignore +1 -0
  241. package/deps/simdutf/fuzz/helpers/common.h +135 -0
  242. package/deps/simdutf/fuzz/helpers/nameof.hpp +1258 -0
  243. package/deps/simdutf/fuzz/main.cpp +72 -0
  244. package/deps/simdutf/fuzz/minimize_and_cleanse.sh +87 -0
  245. package/deps/simdutf/fuzz/misc.cpp +216 -0
  246. package/deps/simdutf/fuzz/random_fuzz.sh +154 -0
  247. package/deps/simdutf/fuzz/roundtrip.cpp +588 -0
  248. package/deps/simdutf/fuzz/safe_conversion.cpp +104 -0
  249. package/deps/simdutf/include/simdutf/avx512.h +79 -0
  250. package/deps/simdutf/include/simdutf/base64_implementation.h +158 -0
  251. package/deps/simdutf/include/simdutf/base64_tables.h +887 -0
  252. package/deps/simdutf/include/simdutf/common_defs.h +186 -0
  253. package/deps/simdutf/include/simdutf/compiler_check.h +50 -0
  254. package/deps/simdutf/include/simdutf/constexpr_ptr.h +138 -0
  255. package/deps/simdutf/include/simdutf/encoding_types.h +189 -0
  256. package/deps/simdutf/include/simdutf/error.h +126 -0
  257. package/deps/simdutf/include/simdutf/implementation.h +7081 -0
  258. package/deps/simdutf/include/simdutf/internal/isadetection.h +325 -0
  259. package/deps/simdutf/include/simdutf/portability.h +285 -0
  260. package/deps/simdutf/include/simdutf/scalar/ascii.h +86 -0
  261. package/deps/simdutf/include/simdutf/scalar/atomic_util.h +105 -0
  262. package/deps/simdutf/include/simdutf/scalar/base64.h +911 -0
  263. package/deps/simdutf/include/simdutf/scalar/latin1.h +26 -0
  264. package/deps/simdutf/include/simdutf/scalar/latin1_to_utf16/latin1_to_utf16.h +52 -0
  265. package/deps/simdutf/include/simdutf/scalar/latin1_to_utf32/latin1_to_utf32.h +27 -0
  266. package/deps/simdutf/include/simdutf/scalar/latin1_to_utf8/latin1_to_utf8.h +191 -0
  267. package/deps/simdutf/include/simdutf/scalar/swap_bytes.h +35 -0
  268. package/deps/simdutf/include/simdutf/scalar/utf16.h +226 -0
  269. package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/utf16_to_latin1.h +108 -0
  270. package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/valid_utf16_to_latin1.h +40 -0
  271. package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/utf16_to_utf32.h +86 -0
  272. package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/valid_utf16_to_utf32.h +44 -0
  273. package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/utf16_to_utf8.h +295 -0
  274. package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/valid_utf16_to_utf8.h +91 -0
  275. package/deps/simdutf/include/simdutf/scalar/utf32.h +82 -0
  276. package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/utf32_to_latin1.h +68 -0
  277. package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/valid_utf32_to_latin1.h +67 -0
  278. package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/utf32_to_utf16.h +84 -0
  279. package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/valid_utf32_to_utf16.h +44 -0
  280. package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/utf32_to_utf8.h +142 -0
  281. package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/valid_utf32_to_utf8.h +72 -0
  282. package/deps/simdutf/include/simdutf/scalar/utf8.h +326 -0
  283. package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/utf8_to_latin1.h +225 -0
  284. package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/valid_utf8_to_latin1.h +87 -0
  285. package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/utf8_to_utf16.h +342 -0
  286. package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/valid_utf8_to_utf16.h +106 -0
  287. package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/utf8_to_utf32.h +299 -0
  288. package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/valid_utf8_to_utf32.h +83 -0
  289. package/deps/simdutf/include/simdutf/simdutf_version.h +26 -0
  290. package/deps/simdutf/include/simdutf.h +26 -0
  291. package/deps/simdutf/include/simdutf_c.h +342 -0
  292. package/deps/simdutf/riscv/Dockerfile +16 -0
  293. package/deps/simdutf/riscv/README.md +24 -0
  294. package/deps/simdutf/riscv/remove-docker-station +8 -0
  295. package/deps/simdutf/riscv/run-docker-station +31 -0
  296. package/deps/simdutf/scripts/.flake8 +2 -0
  297. package/deps/simdutf/scripts/Makefile +2 -0
  298. package/deps/simdutf/scripts/README_ADD_FUNCTION.md +49 -0
  299. package/deps/simdutf/scripts/add_function.py +330 -0
  300. package/deps/simdutf/scripts/amalgamation_tests.py +156 -0
  301. package/deps/simdutf/scripts/base64/Makefile +2 -0
  302. package/deps/simdutf/scripts/base64/README.md +2 -0
  303. package/deps/simdutf/scripts/base64/avx512.py +76 -0
  304. package/deps/simdutf/scripts/base64/neon_decode.py +143 -0
  305. package/deps/simdutf/scripts/base64/neon_generate_lut.py +101 -0
  306. package/deps/simdutf/scripts/base64/sse.py +252 -0
  307. package/deps/simdutf/scripts/base64/sseregular.py +160 -0
  308. package/deps/simdutf/scripts/base64/sseurl.py +283 -0
  309. package/deps/simdutf/scripts/base64/table.py +59 -0
  310. package/deps/simdutf/scripts/base64bench_print.py +145 -0
  311. package/deps/simdutf/scripts/benchmark-all.py +119 -0
  312. package/deps/simdutf/scripts/benchmark_print.py +324 -0
  313. package/deps/simdutf/scripts/check_feature_macros.py +156 -0
  314. package/deps/simdutf/scripts/check_typos.sh +13 -0
  315. package/deps/simdutf/scripts/clang_format.sh +35 -0
  316. package/deps/simdutf/scripts/clang_format_docker.sh +38 -0
  317. package/deps/simdutf/scripts/common.py +24 -0
  318. package/deps/simdutf/scripts/compilation_benchmark.py +55 -0
  319. package/deps/simdutf/scripts/compile_many_variations.sh +64 -0
  320. package/deps/simdutf/scripts/create_latex_table.py +62 -0
  321. package/deps/simdutf/scripts/docker/Dockerfile +14 -0
  322. package/deps/simdutf/scripts/docker/Makefile +9 -0
  323. package/deps/simdutf/scripts/docker/README.md +30 -0
  324. package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
  325. package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +155 -0
  326. package/deps/simdutf/scripts/prepare_doxygen.sh +21 -0
  327. package/deps/simdutf/scripts/release.py +197 -0
  328. package/deps/simdutf/scripts/shortinputplots.py +97 -0
  329. package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +422 -0
  330. package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +105 -0
  331. package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +186 -0
  332. package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +137 -0
  333. package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +129 -0
  334. package/deps/simdutf/scripts/table.py +207 -0
  335. package/deps/simdutf/scripts/tests/new.txt +33 -0
  336. package/deps/simdutf/scripts/tests/old.txt +33 -0
  337. package/deps/simdutf/scripts/tests/results.txt +272 -0
  338. package/deps/simdutf/simdutf.pc.in +11 -0
  339. package/deps/simdutf/singleheader/.flake8 +2 -0
  340. package/deps/simdutf/singleheader/CMakeLists.txt +64 -0
  341. package/deps/simdutf/singleheader/README-dev.md +81 -0
  342. package/deps/simdutf/singleheader/README.md +19 -0
  343. package/deps/simdutf/singleheader/amalgamate.py +513 -0
  344. package/deps/simdutf/singleheader/amalgamation_demo.c +59 -0
  345. package/deps/simdutf/singleheader/amalgamation_demo.cpp +54 -0
  346. package/deps/simdutf/singleheader/test-features.py +262 -0
  347. package/deps/simdutf/src/CMakeLists.txt +78 -0
  348. package/deps/simdutf/src/arm64/arm_base64.cpp +791 -0
  349. package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf16.cpp +24 -0
  350. package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf32.cpp +24 -0
  351. package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf8.cpp +70 -0
  352. package/deps/simdutf/src/arm64/arm_convert_utf16_to_latin1.cpp +61 -0
  353. package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf32.cpp +185 -0
  354. package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf8.cpp +780 -0
  355. package/deps/simdutf/src/arm64/arm_convert_utf32_to_latin1.cpp +60 -0
  356. package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf16.cpp +208 -0
  357. package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf8.cpp +505 -0
  358. package/deps/simdutf/src/arm64/arm_convert_utf8_to_latin1.cpp +69 -0
  359. package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf16.cpp +313 -0
  360. package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf32.cpp +179 -0
  361. package/deps/simdutf/src/arm64/arm_find.cpp +199 -0
  362. package/deps/simdutf/src/arm64/arm_utf16fix.cpp +185 -0
  363. package/deps/simdutf/src/arm64/arm_validate_utf16.cpp +165 -0
  364. package/deps/simdutf/src/arm64/arm_validate_utf32le.cpp +65 -0
  365. package/deps/simdutf/src/arm64/implementation.cpp +1442 -0
  366. package/deps/simdutf/src/encoding_types.cpp +67 -0
  367. package/deps/simdutf/src/error.cpp +3 -0
  368. package/deps/simdutf/src/fallback/implementation.cpp +589 -0
  369. package/deps/simdutf/src/generic/ascii_validation.h +50 -0
  370. package/deps/simdutf/src/generic/base64.h +233 -0
  371. package/deps/simdutf/src/generic/base64lengths.h +63 -0
  372. package/deps/simdutf/src/generic/buf_block_reader.h +109 -0
  373. package/deps/simdutf/src/generic/find.h +75 -0
  374. package/deps/simdutf/src/generic/utf16/change_endianness.h +24 -0
  375. package/deps/simdutf/src/generic/utf16/count_code_points_bytemask.h +58 -0
  376. package/deps/simdutf/src/generic/utf16/to_well_formed.h +93 -0
  377. package/deps/simdutf/src/generic/utf16/utf32_length_from_utf16.h +15 -0
  378. package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16.h +35 -0
  379. package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16_bytemask.h +199 -0
  380. package/deps/simdutf/src/generic/utf16.h +73 -0
  381. package/deps/simdutf/src/generic/utf32.h +136 -0
  382. package/deps/simdutf/src/generic/utf8/utf16_length_from_utf8_bytemask.h +53 -0
  383. package/deps/simdutf/src/generic/utf8.h +92 -0
  384. package/deps/simdutf/src/generic/utf8_to_latin1/utf8_to_latin1.h +316 -0
  385. package/deps/simdutf/src/generic/utf8_to_latin1/valid_utf8_to_latin1.h +78 -0
  386. package/deps/simdutf/src/generic/utf8_to_utf16/utf8_to_utf16.h +332 -0
  387. package/deps/simdutf/src/generic/utf8_to_utf16/valid_utf8_to_utf16.h +74 -0
  388. package/deps/simdutf/src/generic/utf8_to_utf32/utf8_to_utf32.h +318 -0
  389. package/deps/simdutf/src/generic/utf8_to_utf32/valid_utf8_to_utf32.h +42 -0
  390. package/deps/simdutf/src/generic/utf8_validation/utf8_lookup4_algorithm.h +223 -0
  391. package/deps/simdutf/src/generic/utf8_validation/utf8_validator.h +84 -0
  392. package/deps/simdutf/src/generic/validate_utf16.h +164 -0
  393. package/deps/simdutf/src/generic/validate_utf32.h +99 -0
  394. package/deps/simdutf/src/haswell/avx2_base64.cpp +837 -0
  395. package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf16.cpp +28 -0
  396. package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf32.cpp +20 -0
  397. package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf8.cpp +83 -0
  398. package/deps/simdutf/src/haswell/avx2_convert_utf16_to_latin1.cpp +83 -0
  399. package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf32.cpp +210 -0
  400. package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf8.cpp +602 -0
  401. package/deps/simdutf/src/haswell/avx2_convert_utf32_to_latin1.cpp +116 -0
  402. package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf16.cpp +164 -0
  403. package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf8.cpp +569 -0
  404. package/deps/simdutf/src/haswell/avx2_convert_utf8_to_latin1.cpp +60 -0
  405. package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf16.cpp +195 -0
  406. package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf32.cpp +135 -0
  407. package/deps/simdutf/src/haswell/avx2_utf16fix.cpp +173 -0
  408. package/deps/simdutf/src/haswell/avx2_validate_utf16.cpp +17 -0
  409. package/deps/simdutf/src/haswell/implementation.cpp +1447 -0
  410. package/deps/simdutf/src/icelake/icelake_ascii_validation.inl.cpp +19 -0
  411. package/deps/simdutf/src/icelake/icelake_base64.inl.cpp +630 -0
  412. package/deps/simdutf/src/icelake/icelake_common.inl.cpp +37 -0
  413. package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf16.inl.cpp +36 -0
  414. package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf32.inl.cpp +23 -0
  415. package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf8.inl.cpp +107 -0
  416. package/deps/simdutf/src/icelake/icelake_convert_utf16_to_latin1.inl.cpp +103 -0
  417. package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf32.inl.cpp +136 -0
  418. package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf8.inl.cpp +206 -0
  419. package/deps/simdutf/src/icelake/icelake_convert_utf32_to_latin1.inl.cpp +74 -0
  420. package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf16.inl.cpp +338 -0
  421. package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf8.inl.cpp +574 -0
  422. package/deps/simdutf/src/icelake/icelake_convert_utf8_to_latin1.inl.cpp +104 -0
  423. package/deps/simdutf/src/icelake/icelake_convert_utf8_to_utf16.inl.cpp +75 -0
  424. package/deps/simdutf/src/icelake/icelake_convert_valid_utf8_to_latin1.inl.cpp +69 -0
  425. package/deps/simdutf/src/icelake/icelake_find.inl.cpp +146 -0
  426. package/deps/simdutf/src/icelake/icelake_from_utf8.inl.cpp +266 -0
  427. package/deps/simdutf/src/icelake/icelake_from_valid_utf8.inl.cpp +136 -0
  428. package/deps/simdutf/src/icelake/icelake_macros.inl.cpp +143 -0
  429. package/deps/simdutf/src/icelake/icelake_utf16fix.cpp +138 -0
  430. package/deps/simdutf/src/icelake/icelake_utf32_validation.inl.cpp +63 -0
  431. package/deps/simdutf/src/icelake/icelake_utf8_common.inl.cpp +753 -0
  432. package/deps/simdutf/src/icelake/icelake_utf8_length_from_utf16.inl.cpp +269 -0
  433. package/deps/simdutf/src/icelake/icelake_utf8_validation.inl.cpp +116 -0
  434. package/deps/simdutf/src/icelake/implementation.cpp +1903 -0
  435. package/deps/simdutf/src/implementation.cpp +2526 -0
  436. package/deps/simdutf/src/lasx/implementation.cpp +1531 -0
  437. package/deps/simdutf/src/lasx/lasx_base64.cpp +695 -0
  438. package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf16.cpp +76 -0
  439. package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf32.cpp +55 -0
  440. package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf8.cpp +65 -0
  441. package/deps/simdutf/src/lasx/lasx_convert_utf16_to_latin1.cpp +64 -0
  442. package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf32.cpp +183 -0
  443. package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf8.cpp +550 -0
  444. package/deps/simdutf/src/lasx/lasx_convert_utf32_to_latin1.cpp +73 -0
  445. package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf16.cpp +218 -0
  446. package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf8.cpp +589 -0
  447. package/deps/simdutf/src/lasx/lasx_convert_utf8_to_latin1.cpp +72 -0
  448. package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf16.cpp +296 -0
  449. package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf32.cpp +190 -0
  450. package/deps/simdutf/src/lasx/lasx_find.cpp +64 -0
  451. package/deps/simdutf/src/lasx/lasx_validate_utf16.cpp +13 -0
  452. package/deps/simdutf/src/lasx/lasx_validate_utf32le.cpp +84 -0
  453. package/deps/simdutf/src/lsx/implementation.cpp +1417 -0
  454. package/deps/simdutf/src/lsx/lsx_base64.cpp +675 -0
  455. package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf16.cpp +39 -0
  456. package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf32.cpp +27 -0
  457. package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf8.cpp +56 -0
  458. package/deps/simdutf/src/lsx/lsx_convert_utf16_to_latin1.cpp +64 -0
  459. package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf32.cpp +133 -0
  460. package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf8.cpp +518 -0
  461. package/deps/simdutf/src/lsx/lsx_convert_utf32_to_latin1.cpp +66 -0
  462. package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf16.cpp +155 -0
  463. package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf8.cpp +459 -0
  464. package/deps/simdutf/src/lsx/lsx_convert_utf8_to_latin1.cpp +75 -0
  465. package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf16.cpp +291 -0
  466. package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf32.cpp +179 -0
  467. package/deps/simdutf/src/lsx/lsx_find.cpp +60 -0
  468. package/deps/simdutf/src/lsx/lsx_validate_utf16.cpp +13 -0
  469. package/deps/simdutf/src/lsx/lsx_validate_utf32le.cpp +68 -0
  470. package/deps/simdutf/src/ppc64/implementation.cpp +992 -0
  471. package/deps/simdutf/src/ppc64/ppc64_base64.cpp +480 -0
  472. package/deps/simdutf/src/ppc64/ppc64_base64_internal_tests.cpp +401 -0
  473. package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf16.cpp +12 -0
  474. package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf32.cpp +12 -0
  475. package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf8.cpp +149 -0
  476. package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_latin1.cpp +67 -0
  477. package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf32.cpp +87 -0
  478. package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf8.cpp +296 -0
  479. package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_latin1.cpp +57 -0
  480. package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf16.cpp +117 -0
  481. package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf8.cpp +166 -0
  482. package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_latin1.cpp +69 -0
  483. package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf16.cpp +211 -0
  484. package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf32.cpp +153 -0
  485. package/deps/simdutf/src/ppc64/ppc64_utf16_to_utf8_tables.h +1011 -0
  486. package/deps/simdutf/src/ppc64/ppc64_utf8_length_from_latin1.cpp +37 -0
  487. package/deps/simdutf/src/ppc64/ppc64_validate_utf16.cpp +19 -0
  488. package/deps/simdutf/src/ppc64/templates.cpp +91 -0
  489. package/deps/simdutf/src/rvv/implementation.cpp +138 -0
  490. package/deps/simdutf/src/rvv/rvv_find.cpp +27 -0
  491. package/deps/simdutf/src/rvv/rvv_helpers.inl.cpp +23 -0
  492. package/deps/simdutf/src/rvv/rvv_latin1_to.inl.cpp +71 -0
  493. package/deps/simdutf/src/rvv/rvv_length_from.inl.cpp +164 -0
  494. package/deps/simdutf/src/rvv/rvv_utf16_to.inl.cpp +399 -0
  495. package/deps/simdutf/src/rvv/rvv_utf16fix.cpp +110 -0
  496. package/deps/simdutf/src/rvv/rvv_utf32_to.inl.cpp +307 -0
  497. package/deps/simdutf/src/rvv/rvv_utf8_to.inl.cpp +435 -0
  498. package/deps/simdutf/src/rvv/rvv_validate.inl.cpp +275 -0
  499. package/deps/simdutf/src/simdutf/arm64/begin.h +2 -0
  500. package/deps/simdutf/src/simdutf/arm64/bitmanipulation.h +34 -0
  501. package/deps/simdutf/src/simdutf/arm64/end.h +2 -0
  502. package/deps/simdutf/src/simdutf/arm64/implementation.h +307 -0
  503. package/deps/simdutf/src/simdutf/arm64/intrinsics.h +10 -0
  504. package/deps/simdutf/src/simdutf/arm64/simd.h +547 -0
  505. package/deps/simdutf/src/simdutf/arm64/simd16-inl.h +403 -0
  506. package/deps/simdutf/src/simdutf/arm64/simd32-inl.h +129 -0
  507. package/deps/simdutf/src/simdutf/arm64/simd64-inl.h +28 -0
  508. package/deps/simdutf/src/simdutf/arm64.h +43 -0
  509. package/deps/simdutf/src/simdutf/fallback/begin.h +1 -0
  510. package/deps/simdutf/src/simdutf/fallback/bitmanipulation.h +13 -0
  511. package/deps/simdutf/src/simdutf/fallback/end.h +1 -0
  512. package/deps/simdutf/src/simdutf/fallback/implementation.h +331 -0
  513. package/deps/simdutf/src/simdutf/fallback.h +42 -0
  514. package/deps/simdutf/src/simdutf/haswell/begin.h +15 -0
  515. package/deps/simdutf/src/simdutf/haswell/bitmanipulation.h +35 -0
  516. package/deps/simdutf/src/simdutf/haswell/end.h +13 -0
  517. package/deps/simdutf/src/simdutf/haswell/implementation.h +338 -0
  518. package/deps/simdutf/src/simdutf/haswell/intrinsics.h +67 -0
  519. package/deps/simdutf/src/simdutf/haswell/simd.h +363 -0
  520. package/deps/simdutf/src/simdutf/haswell/simd16-inl.h +261 -0
  521. package/deps/simdutf/src/simdutf/haswell/simd32-inl.h +111 -0
  522. package/deps/simdutf/src/simdutf/haswell/simd64-inl.h +34 -0
  523. package/deps/simdutf/src/simdutf/haswell.h +63 -0
  524. package/deps/simdutf/src/simdutf/icelake/begin.h +14 -0
  525. package/deps/simdutf/src/simdutf/icelake/bitmanipulation.h +44 -0
  526. package/deps/simdutf/src/simdutf/icelake/end.h +12 -0
  527. package/deps/simdutf/src/simdutf/icelake/implementation.h +346 -0
  528. package/deps/simdutf/src/simdutf/icelake/intrinsics.h +138 -0
  529. package/deps/simdutf/src/simdutf/icelake/simd.h +17 -0
  530. package/deps/simdutf/src/simdutf/icelake/simd16-inl.h +90 -0
  531. package/deps/simdutf/src/simdutf/icelake/simd32-inl.h +47 -0
  532. package/deps/simdutf/src/simdutf/icelake.h +81 -0
  533. package/deps/simdutf/src/simdutf/lasx/begin.h +8 -0
  534. package/deps/simdutf/src/simdutf/lasx/bitmanipulation.h +25 -0
  535. package/deps/simdutf/src/simdutf/lasx/end.h +8 -0
  536. package/deps/simdutf/src/simdutf/lasx/implementation.h +310 -0
  537. package/deps/simdutf/src/simdutf/lasx/intrinsics.h +319 -0
  538. package/deps/simdutf/src/simdutf/lasx/simd.h +551 -0
  539. package/deps/simdutf/src/simdutf/lasx/simd16-inl.h +234 -0
  540. package/deps/simdutf/src/simdutf/lasx/simd32-inl.h +74 -0
  541. package/deps/simdutf/src/simdutf/lasx/simd64-inl.h +52 -0
  542. package/deps/simdutf/src/simdutf/lasx.h +49 -0
  543. package/deps/simdutf/src/simdutf/lsx/begin.h +2 -0
  544. package/deps/simdutf/src/simdutf/lsx/bitmanipulation.h +25 -0
  545. package/deps/simdutf/src/simdutf/lsx/end.h +2 -0
  546. package/deps/simdutf/src/simdutf/lsx/implementation.h +309 -0
  547. package/deps/simdutf/src/simdutf/lsx/intrinsics.h +196 -0
  548. package/deps/simdutf/src/simdutf/lsx/simd.h +421 -0
  549. package/deps/simdutf/src/simdutf/lsx/simd16-inl.h +242 -0
  550. package/deps/simdutf/src/simdutf/lsx/simd32-inl.h +69 -0
  551. package/deps/simdutf/src/simdutf/lsx/simd64-inl.h +50 -0
  552. package/deps/simdutf/src/simdutf/lsx.h +52 -0
  553. package/deps/simdutf/src/simdutf/ppc64/begin.h +1 -0
  554. package/deps/simdutf/src/simdutf/ppc64/bitmanipulation.h +29 -0
  555. package/deps/simdutf/src/simdutf/ppc64/end.h +1 -0
  556. package/deps/simdutf/src/simdutf/ppc64/implementation.h +348 -0
  557. package/deps/simdutf/src/simdutf/ppc64/intrinsics.h +19 -0
  558. package/deps/simdutf/src/simdutf/ppc64/simd.h +177 -0
  559. package/deps/simdutf/src/simdutf/ppc64/simd16-inl.h +327 -0
  560. package/deps/simdutf/src/simdutf/ppc64/simd32-inl.h +247 -0
  561. package/deps/simdutf/src/simdutf/ppc64/simd8-inl.h +618 -0
  562. package/deps/simdutf/src/simdutf/ppc64.h +40 -0
  563. package/deps/simdutf/src/simdutf/rvv/begin.h +7 -0
  564. package/deps/simdutf/src/simdutf/rvv/end.h +7 -0
  565. package/deps/simdutf/src/simdutf/rvv/implementation.h +321 -0
  566. package/deps/simdutf/src/simdutf/rvv/intrinsics.h +131 -0
  567. package/deps/simdutf/src/simdutf/rvv.h +41 -0
  568. package/deps/simdutf/src/simdutf/westmere/begin.h +8 -0
  569. package/deps/simdutf/src/simdutf/westmere/bitmanipulation.h +37 -0
  570. package/deps/simdutf/src/simdutf/westmere/end.h +8 -0
  571. package/deps/simdutf/src/simdutf/westmere/implementation.h +338 -0
  572. package/deps/simdutf/src/simdutf/westmere/intrinsics.h +38 -0
  573. package/deps/simdutf/src/simdutf/westmere/simd.h +379 -0
  574. package/deps/simdutf/src/simdutf/westmere/simd16-inl.h +242 -0
  575. package/deps/simdutf/src/simdutf/westmere/simd32-inl.h +151 -0
  576. package/deps/simdutf/src/simdutf/westmere/simd64-inl.h +33 -0
  577. package/deps/simdutf/src/simdutf/westmere.h +59 -0
  578. package/deps/simdutf/src/simdutf.cpp +152 -0
  579. package/deps/simdutf/src/simdutf_c.cpp +525 -0
  580. package/deps/simdutf/src/tables/utf16_to_utf8_tables.h +768 -0
  581. package/deps/simdutf/src/tables/utf32_to_utf16_tables.h +53 -0
  582. package/deps/simdutf/src/tables/utf8_to_utf16_tables.h +826 -0
  583. package/deps/simdutf/src/westmere/implementation.cpp +1479 -0
  584. package/deps/simdutf/src/westmere/internal/loader.cpp +7 -0
  585. package/deps/simdutf/src/westmere/internal/write_v_u16_11bits_to_utf8.cpp +66 -0
  586. package/deps/simdutf/src/westmere/sse_base64.cpp +672 -0
  587. package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf16.cpp +21 -0
  588. package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf32.cpp +31 -0
  589. package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf8.cpp +71 -0
  590. package/deps/simdutf/src/westmere/sse_convert_utf16_to_latin1.cpp +70 -0
  591. package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf32.cpp +206 -0
  592. package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf8.cpp +504 -0
  593. package/deps/simdutf/src/westmere/sse_convert_utf32_to_latin1.cpp +82 -0
  594. package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf16.cpp +209 -0
  595. package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf8.cpp +589 -0
  596. package/deps/simdutf/src/westmere/sse_convert_utf8_to_latin1.cpp +58 -0
  597. package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf16.cpp +197 -0
  598. package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf32.cpp +141 -0
  599. package/deps/simdutf/src/westmere/sse_utf16fix.cpp +82 -0
  600. package/deps/simdutf/src/westmere/sse_validate_utf16.cpp +17 -0
  601. package/deps/simdutf/tests/CMakeLists.txt +483 -0
  602. package/deps/simdutf/tests/atomic_base64_tests.cpp +2845 -0
  603. package/deps/simdutf/tests/base64_tests.cpp +3617 -0
  604. package/deps/simdutf/tests/basic_fuzzer.cpp +805 -0
  605. package/deps/simdutf/tests/bele_tests.cpp +182 -0
  606. package/deps/simdutf/tests/constexpr_base64_tests.cpp +387 -0
  607. package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +52 -0
  608. package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +80 -0
  609. package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +66 -0
  610. package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +120 -0
  611. package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +203 -0
  612. package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +276 -0
  613. package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +109 -0
  614. package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +136 -0
  615. package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +193 -0
  616. package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +381 -0
  617. package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +259 -0
  618. package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +266 -0
  619. package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +148 -0
  620. package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +176 -0
  621. package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +213 -0
  622. package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +318 -0
  623. package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +343 -0
  624. package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +271 -0
  625. package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +111 -0
  626. package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +96 -0
  627. package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +148 -0
  628. package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +192 -0
  629. package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +166 -0
  630. package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +215 -0
  631. package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +181 -0
  632. package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +261 -0
  633. package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +516 -0
  634. package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +579 -0
  635. package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +412 -0
  636. package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +480 -0
  637. package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +671 -0
  638. package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +455 -0
  639. package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +1204 -0
  640. package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +337 -0
  641. package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +37 -0
  642. package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +97 -0
  643. package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +126 -0
  644. package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +71 -0
  645. package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +122 -0
  646. package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +244 -0
  647. package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +49 -0
  648. package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +92 -0
  649. package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +114 -0
  650. package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +109 -0
  651. package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +84 -0
  652. package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +124 -0
  653. package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +221 -0
  654. package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +155 -0
  655. package/deps/simdutf/tests/count_utf16be.cpp +64 -0
  656. package/deps/simdutf/tests/count_utf16le.cpp +61 -0
  657. package/deps/simdutf/tests/count_utf8.cpp +87 -0
  658. package/deps/simdutf/tests/detect_encodings_tests.cpp +312 -0
  659. package/deps/simdutf/tests/embed/valid_utf8.txt +1 -0
  660. package/deps/simdutf/tests/embed_tests.cpp +22 -0
  661. package/deps/simdutf/tests/find_tests.cpp +77 -0
  662. package/deps/simdutf/tests/fixed_string_tests.cpp +153 -0
  663. package/deps/simdutf/tests/helpers/CMakeLists.txt +25 -0
  664. package/deps/simdutf/tests/helpers/compiletime_conversions.h +222 -0
  665. package/deps/simdutf/tests/helpers/fixed_string.h +267 -0
  666. package/deps/simdutf/tests/helpers/random_int.cpp +30 -0
  667. package/deps/simdutf/tests/helpers/random_int.h +39 -0
  668. package/deps/simdutf/tests/helpers/random_utf16.cpp +123 -0
  669. package/deps/simdutf/tests/helpers/random_utf16.h +52 -0
  670. package/deps/simdutf/tests/helpers/random_utf32.cpp +41 -0
  671. package/deps/simdutf/tests/helpers/random_utf32.h +40 -0
  672. package/deps/simdutf/tests/helpers/random_utf8.cpp +93 -0
  673. package/deps/simdutf/tests/helpers/random_utf8.h +36 -0
  674. package/deps/simdutf/tests/helpers/test.cpp +231 -0
  675. package/deps/simdutf/tests/helpers/test.h +193 -0
  676. package/deps/simdutf/tests/helpers/transcode_test_base.cpp +1257 -0
  677. package/deps/simdutf/tests/helpers/transcode_test_base.h +683 -0
  678. package/deps/simdutf/tests/helpers/utf16.h +27 -0
  679. package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +43 -0
  680. package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +47 -0
  681. package/deps/simdutf/tests/internal_tests.cpp +27 -0
  682. package/deps/simdutf/tests/null_safety_tests.cpp +94 -0
  683. package/deps/simdutf/tests/random_fuzzer.cpp +779 -0
  684. package/deps/simdutf/tests/readme_tests.cpp +274 -0
  685. package/deps/simdutf/tests/reference/CMakeLists.txt +23 -0
  686. package/deps/simdutf/tests/reference/decode_utf16.h +81 -0
  687. package/deps/simdutf/tests/reference/decode_utf32.h +47 -0
  688. package/deps/simdutf/tests/reference/encode_latin1.cpp +1 -0
  689. package/deps/simdutf/tests/reference/encode_latin1.h +32 -0
  690. package/deps/simdutf/tests/reference/encode_utf16.cpp +49 -0
  691. package/deps/simdutf/tests/reference/encode_utf16.h +20 -0
  692. package/deps/simdutf/tests/reference/encode_utf32.cpp +1 -0
  693. package/deps/simdutf/tests/reference/encode_utf32.h +36 -0
  694. package/deps/simdutf/tests/reference/encode_utf8.cpp +1 -0
  695. package/deps/simdutf/tests/reference/encode_utf8.h +40 -0
  696. package/deps/simdutf/tests/reference/validate_utf16.cpp +60 -0
  697. package/deps/simdutf/tests/reference/validate_utf16.h +14 -0
  698. package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +35 -0
  699. package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +13 -0
  700. package/deps/simdutf/tests/reference/validate_utf32.cpp +27 -0
  701. package/deps/simdutf/tests/reference/validate_utf32.h +12 -0
  702. package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +27 -0
  703. package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +12 -0
  704. package/deps/simdutf/tests/reference/validate_utf8.cpp +82 -0
  705. package/deps/simdutf/tests/reference/validate_utf8.h +11 -0
  706. package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +43 -0
  707. package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +12 -0
  708. package/deps/simdutf/tests/select_implementation.cpp +43 -0
  709. package/deps/simdutf/tests/simdutf_c_tests.cpp +244 -0
  710. package/deps/simdutf/tests/span_tests.cpp +401 -0
  711. package/deps/simdutf/tests/special_tests.cpp +559 -0
  712. package/deps/simdutf/tests/straight_c_test.c +187 -0
  713. package/deps/simdutf/tests/text_encoding_tests.cpp +77 -0
  714. package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +377 -0
  715. package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +202 -0
  716. package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +165 -0
  717. package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +77 -0
  718. package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +175 -0
  719. package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +188 -0
  720. package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +268 -0
  721. package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +274 -0
  722. package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +92 -0
  723. package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +114 -0
  724. package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +178 -0
  725. package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +88 -0
  726. package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +33 -0
  727. package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +228 -0
  728. package/deps/simdutf/tools/CMakeLists.txt +85 -0
  729. package/deps/simdutf/tools/fastbase64.cpp +250 -0
  730. package/deps/simdutf/tools/sutf.cpp +556 -0
  731. package/deps/simdutf/tools/sutf.h +40 -0
  732. package/package.json +2 -2
@@ -0,0 +1,992 @@
1
+ #include "simdutf/ppc64/begin.h"
2
+
3
+ #include "ppc64/ppc64_utf16_to_utf8_tables.h"
4
+
5
+ namespace simdutf {
6
+ namespace SIMDUTF_IMPLEMENTATION {
7
+ namespace {
8
+ #ifndef SIMDUTF_PPC64_H
9
+ #error "ppc64.h must be included"
10
+ #endif
11
+ using namespace simd;
12
+
13
+ simdutf_really_inline bool is_ascii(const simd8x64<uint8_t> &input) {
14
+ // careful: 0x80 is not ascii.
15
+ return input.reduce_or().saturating_sub(0b01111111u).bits_not_set_anywhere();
16
+ }
17
+
18
+ simdutf_really_inline simd8<bool>
19
+ must_be_2_3_continuation(const simd8<uint8_t> prev2,
20
+ const simd8<uint8_t> prev3) {
21
+ simd8<uint8_t> is_third_byte =
22
+ prev2.saturating_sub(0xe0u - 0x80); // Only 111_____ will be >= 0x80
23
+ simd8<uint8_t> is_fourth_byte =
24
+ prev3.saturating_sub(0xf0u - 0x80); // Only 1111____ will be >= 0x80
25
+ // Caller requires a bool (all 1's). All values resulting from the subtraction
26
+ // will be <= 64, so signed comparison is fine.
27
+ return simd8<bool>(is_third_byte | is_fourth_byte);
28
+ }
29
+
30
+ /// ErrorReporting describes behaviour of a vectorized procedure regarding error
31
+ /// checking
32
+ enum class ErrorReporting {
33
+ precise, // the procedure will report *approximate* or *precise* error
34
+ // position
35
+ at_the_end, // the procedure will only inform about an error after scanning
36
+ // the whole input (or its significant portion)
37
+ none, // no error checking is done, we assume valid inputs
38
+ };
39
+
40
+ #if SIMDUTF_FEATURE_UTF16
41
+ #include "ppc64/ppc64_validate_utf16.cpp"
42
+ #endif // SIMDUTF_FEATURE_UTF16
43
+
44
+ #if SIMDUTF_FEATURE_LATIN1 && SIMDUTF_FEATURE_UTF8
45
+ #include "ppc64/ppc64_convert_latin1_to_utf8.cpp"
46
+ #endif // SIMDUTF_FEATURE_LATIN1 && SIMDUTF_FEATURE_UTF8
47
+
48
+ #if SIMDUTF_FEATURE_LATIN1 && SIMDUTF_FEATURE_UTF16
49
+ #include "ppc64/ppc64_convert_latin1_to_utf16.cpp"
50
+ #endif // SIMDUTF_FEATURE_LATIN1 && SIMDUTF_FEATURE_UTF16
51
+
52
+ #if SIMDUTF_FEATURE_LATIN1 && SIMDUTF_FEATURE_UTF32
53
+ #include "ppc64/ppc64_convert_latin1_to_utf32.cpp"
54
+ #endif // SIMDUTF_FEATURE_LATIN1 && SIMDUTF_FEATURE_UTF32
55
+
56
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
57
+ #include "ppc64/ppc64_convert_utf8_to_latin1.cpp"
58
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
59
+
60
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
61
+ #include "ppc64/ppc64_convert_utf8_to_utf16.cpp"
62
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
63
+
64
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
65
+ #include "ppc64/ppc64_convert_utf8_to_utf32.cpp"
66
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
67
+
68
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
69
+ #include "ppc64/ppc64_convert_utf16_to_latin1.cpp"
70
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
71
+
72
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF8
73
+ #include "ppc64/ppc64_convert_utf16_to_utf8.cpp"
74
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF8
75
+
76
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
77
+ #include "ppc64/ppc64_convert_utf16_to_utf32.cpp"
78
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
79
+
80
+ #if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
81
+ #include "ppc64/ppc64_convert_utf32_to_latin1.cpp"
82
+ #endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
83
+
84
+ #if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_UTF16
85
+ #include "ppc64/ppc64_convert_utf32_to_utf16.cpp"
86
+ #endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_UTF16
87
+
88
+ #if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_UTF32
89
+ #include "ppc64/ppc64_convert_utf32_to_utf8.cpp"
90
+ #endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_UTF32
91
+
92
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
93
+ #include "ppc64/ppc64_utf8_length_from_latin1.cpp"
94
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
95
+
96
+ #if SIMDUTF_FEATURE_BASE64
97
+ #include "ppc64/ppc64_base64.cpp"
98
+ #endif // SIMDUTF_FEATURE_BASE64
99
+
100
+ } // unnamed namespace
101
+ } // namespace SIMDUTF_IMPLEMENTATION
102
+ } // namespace simdutf
103
+
104
+ #if SIMDUTF_FEATURE_UTF8
105
+ #include "generic/buf_block_reader.h"
106
+ #include "generic/utf8_validation/utf8_lookup4_algorithm.h"
107
+ #include "generic/utf8_validation/utf8_validator.h"
108
+ #endif // SIMDUTF_FEATURE_UTF8
109
+
110
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
111
+ #include "generic/utf8_to_utf16/utf8_to_utf16.h"
112
+ #include "generic/utf8_to_utf16/valid_utf8_to_utf16.h"
113
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
114
+
115
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
116
+ #include "generic/utf8_to_utf32/utf8_to_utf32.h"
117
+ #include "generic/utf8_to_utf32/valid_utf8_to_utf32.h"
118
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
119
+
120
+ #if SIMDUTF_FEATURE_UTF8
121
+ #include "generic/utf8.h"
122
+ #endif // SIMDUTF_FEATURE_UTF8
123
+
124
+ #if SIMDUTF_FEATURE_UTF16
125
+ #include "generic/utf16.h"
126
+ #include "generic/validate_utf16.h"
127
+ #endif // SIMDUTF_FEATURE_UTF16
128
+
129
+ #if SIMDUTF_FEATURE_UTF32
130
+ #include "generic/utf32.h"
131
+ #include "generic/validate_utf32.h"
132
+ #endif // SIMDUTF_FEATURE_UTF32
133
+
134
+ #if SIMDUTF_FEATURE_ASCII
135
+ #include "generic/ascii_validation.h"
136
+ #endif // SIMDUTF_FEATURE_ASCII
137
+
138
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
139
+ #include "generic/utf8_to_latin1/utf8_to_latin1.h"
140
+ #include "generic/utf8_to_latin1/valid_utf8_to_latin1.h"
141
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
142
+
143
+ #if SIMDUTF_FEATURE_BASE64
144
+ #include "generic/base64.h"
145
+ #include "generic/find.h"
146
+ #endif // SIMDUTF_FEATURE_BASE64
147
+
148
+ #include "ppc64/templates.cpp"
149
+
150
+ #ifdef SIMDUTF_INTERNAL_TESTS
151
+ #if SIMDUTF_FEATURE_BASE64
152
+ #include "ppc64_base64_internal_tests.cpp"
153
+ #endif // SIMDUTF_FEATURE_BASE64
154
+ #endif // SIMDUTF_INTERNAL_TESTS
155
+ //
156
+ // Implementation-specific overrides
157
+ //
158
+ namespace simdutf {
159
+ namespace SIMDUTF_IMPLEMENTATION {
160
+
161
+ #if SIMDUTF_FEATURE_DETECT_ENCODING
162
+ simdutf_warn_unused int
163
+ implementation::detect_encodings(const char *input,
164
+ size_t length) const noexcept {
165
+ // If there is a BOM, then we trust it.
166
+ auto bom_encoding = simdutf::BOM::check_bom(input, length);
167
+ if (bom_encoding != encoding_type::unspecified) {
168
+ return bom_encoding;
169
+ }
170
+ int out = 0;
171
+ // todo: reimplement as a one-pass algorithm.
172
+ if (validate_utf8(input, length)) {
173
+ out |= encoding_type::UTF8;
174
+ }
175
+ if ((length % 2) == 0) {
176
+ if (validate_utf16le(reinterpret_cast<const char16_t *>(input),
177
+ length / 2)) {
178
+ out |= encoding_type::UTF16_LE;
179
+ }
180
+ }
181
+ if ((length % 4) == 0) {
182
+ if (validate_utf32(reinterpret_cast<const char32_t *>(input), length / 4)) {
183
+ out |= encoding_type::UTF32_LE;
184
+ }
185
+ }
186
+ return out;
187
+ }
188
+ #endif // SIMDUTF_FEATURE_DETECT_ENCODING
189
+
190
+ #if SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
191
+ simdutf_warn_unused bool
192
+ implementation::validate_utf8(const char *buf, size_t len) const noexcept {
193
+ return ppc64::utf8_validation::generic_validate_utf8(buf, len);
194
+ }
195
+ #endif // SIMDUTF_FEATURE_UTF8 || SIMDUTF_FEATURE_DETECT_ENCODING
196
+
197
+ #if SIMDUTF_FEATURE_UTF8
198
+ simdutf_warn_unused result implementation::validate_utf8_with_errors(
199
+ const char *buf, size_t len) const noexcept {
200
+ return ppc64::utf8_validation::generic_validate_utf8_with_errors(buf, len);
201
+ }
202
+ #endif // SIMDUTF_FEATURE_UTF8
203
+
204
+ #if SIMDUTF_FEATURE_ASCII
205
+ simdutf_warn_unused bool
206
+ implementation::validate_ascii(const char *buf, size_t len) const noexcept {
207
+ return ppc64::ascii_validation::generic_validate_ascii(buf, len);
208
+ }
209
+
210
+ simdutf_warn_unused result implementation::validate_ascii_with_errors(
211
+ const char *buf, size_t len) const noexcept {
212
+ return ppc64::ascii_validation::generic_validate_ascii_with_errors(buf, len);
213
+ }
214
+ #endif // SIMDUTF_FEATURE_ASCII
215
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
216
+ simdutf_warn_unused bool
217
+ implementation::validate_utf16le_as_ascii(const char16_t *buf,
218
+ size_t len) const noexcept {
219
+ return ppc64::utf16::validate_utf16_as_ascii_with_errors<endianness::LITTLE>(
220
+ buf, len)
221
+ .error == SUCCESS;
222
+ }
223
+
224
+ simdutf_warn_unused bool
225
+ implementation::validate_utf16be_as_ascii(const char16_t *buf,
226
+ size_t len) const noexcept {
227
+ return ppc64::utf16::validate_utf16_as_ascii_with_errors<endianness::BIG>(buf,
228
+ len)
229
+ .error == SUCCESS;
230
+ }
231
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII
232
+ #if SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
233
+ simdutf_warn_unused bool
234
+ implementation::validate_utf16le(const char16_t *buf,
235
+ size_t len) const noexcept {
236
+ const auto res =
237
+ ppc64::utf16::validate_utf16_with_errors<endianness::LITTLE>(buf, len);
238
+ if (res.is_err()) {
239
+ return false;
240
+ }
241
+
242
+ if (res.count != len) {
243
+ return scalar::utf16::validate<endianness::LITTLE>(buf + res.count,
244
+ len - res.count);
245
+ }
246
+
247
+ return true;
248
+ }
249
+ #endif // SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING
250
+
251
+ #if SIMDUTF_FEATURE_UTF16
252
+ simdutf_warn_unused bool
253
+ implementation::validate_utf16be(const char16_t *buf,
254
+ size_t len) const noexcept {
255
+ return validate_utf16be_with_errors(buf, len).is_ok();
256
+ }
257
+
258
+ void implementation::to_well_formed_utf16le(const char16_t *input, size_t len,
259
+ char16_t *output) const noexcept {
260
+ return scalar::utf16::to_well_formed_utf16<endianness::LITTLE>(input, len,
261
+ output);
262
+ }
263
+
264
+ void implementation::to_well_formed_utf16be(const char16_t *input, size_t len,
265
+ char16_t *output) const noexcept {
266
+ return scalar::utf16::to_well_formed_utf16<endianness::BIG>(input, len,
267
+ output);
268
+ }
269
+
270
+ simdutf_warn_unused result implementation::validate_utf16le_with_errors(
271
+ const char16_t *buf, size_t len) const noexcept {
272
+ const auto res =
273
+ ppc64::utf16::validate_utf16_with_errors<endianness::LITTLE>(buf, len);
274
+ if (res.count != len) {
275
+ auto scalar = scalar::utf16::validate_with_errors<endianness::LITTLE>(
276
+ buf + res.count, len - res.count);
277
+ scalar.count += res.count;
278
+ return scalar;
279
+ }
280
+
281
+ return res;
282
+ }
283
+
284
+ simdutf_warn_unused result implementation::validate_utf16be_with_errors(
285
+ const char16_t *buf, size_t len) const noexcept {
286
+ const auto res =
287
+ ppc64::utf16::validate_utf16_with_errors<endianness::BIG>(buf, len);
288
+ if (res.count != len) {
289
+ auto scalar = scalar::utf16::validate_with_errors<endianness::BIG>(
290
+ buf + res.count, len - res.count);
291
+ scalar.count += res.count;
292
+ return scalar;
293
+ }
294
+
295
+ return res;
296
+ }
297
+ #endif // SIMDUTF_FEATURE_UTF16
298
+
299
+ #if SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
300
+ simdutf_warn_unused bool
301
+ implementation::validate_utf32(const char32_t *buf, size_t len) const noexcept {
302
+ return utf32::validate(buf, len);
303
+ }
304
+ #endif // SIMDUTF_FEATURE_UTF32 || SIMDUTF_FEATURE_DETECT_ENCODING
305
+
306
+ #if SIMDUTF_FEATURE_UTF32
307
+ simdutf_warn_unused result implementation::validate_utf32_with_errors(
308
+ const char32_t *buf, size_t len) const noexcept {
309
+ return utf32::validate_with_errors(buf, len);
310
+ }
311
+ #endif // SIMDUTF_FEATURE_UTF32
312
+
313
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
314
+ simdutf_warn_unused size_t implementation::convert_latin1_to_utf8(
315
+ const char *buf, size_t len, char *utf8_output) const noexcept {
316
+ const auto ret = ppc64_convert_latin1_to_utf8(buf, len, utf8_output);
317
+ size_t converted_chars = ret.second - utf8_output;
318
+
319
+ if (ret.first != buf + len) {
320
+ const size_t scalar_converted_chars = scalar::latin1_to_utf8::convert(
321
+ ret.first, len - (ret.first - buf), ret.second);
322
+ converted_chars += scalar_converted_chars;
323
+ }
324
+
325
+ return converted_chars;
326
+ }
327
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
328
+
329
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
330
+ simdutf_warn_unused size_t implementation::convert_latin1_to_utf16le(
331
+ const char *buf, size_t len, char16_t *utf16_output) const noexcept {
332
+ size_t n =
333
+ ppc64_convert_latin1_to_utf16<endianness::LITTLE>(buf, len, utf16_output);
334
+ if (n < len) {
335
+ n += scalar::latin1_to_utf16::convert<endianness::LITTLE>(buf + n, len - n,
336
+ utf16_output + n);
337
+ }
338
+
339
+ return n;
340
+ }
341
+
342
+ simdutf_warn_unused size_t implementation::convert_latin1_to_utf16be(
343
+ const char *buf, size_t len, char16_t *utf16_output) const noexcept {
344
+ size_t n =
345
+ ppc64_convert_latin1_to_utf16<endianness::BIG>(buf, len, utf16_output);
346
+ if (n < len) {
347
+ n += scalar::latin1_to_utf16::convert<endianness::BIG>(buf + n, len - n,
348
+ utf16_output + n);
349
+ }
350
+
351
+ return n;
352
+ }
353
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
354
+
355
+ #if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
356
+ simdutf_warn_unused size_t implementation::convert_latin1_to_utf32(
357
+ const char *buf, size_t len, char32_t *utf32_output) const noexcept {
358
+ const auto ret = ppc64_convert_latin1_to_utf32(buf, len, utf32_output);
359
+ if (ret.first != buf + len) {
360
+ const size_t processed = ret.first - buf;
361
+ scalar::latin1_to_utf32::convert(ret.first, len - processed, ret.second);
362
+ }
363
+
364
+ return len;
365
+ }
366
+ #endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
367
+
368
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
369
+ simdutf_warn_unused size_t implementation::convert_utf8_to_latin1(
370
+ const char *buf, size_t len, char *latin1_output) const noexcept {
371
+ utf8_to_latin1::validating_transcoder converter;
372
+ return converter.convert(buf, len, latin1_output);
373
+ }
374
+
375
+ simdutf_warn_unused result implementation::convert_utf8_to_latin1_with_errors(
376
+ const char *buf, size_t len, char *latin1_output) const noexcept {
377
+ utf8_to_latin1::validating_transcoder converter;
378
+ return converter.convert_with_errors(buf, len, latin1_output);
379
+ }
380
+
381
+ simdutf_warn_unused size_t implementation::convert_valid_utf8_to_latin1(
382
+ const char *buf, size_t len, char *latin1_output) const noexcept {
383
+ return ppc64::utf8_to_latin1::convert_valid(buf, len, latin1_output);
384
+ }
385
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
386
+
387
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
388
+ simdutf_warn_unused size_t implementation::convert_utf8_to_utf16le(
389
+ const char *buf, size_t len, char16_t *utf16_output) const noexcept {
390
+ utf8_to_utf16::validating_transcoder converter;
391
+ return converter.convert<endianness::LITTLE>(buf, len, utf16_output);
392
+ }
393
+
394
+ simdutf_warn_unused size_t implementation::convert_utf8_to_utf16be(
395
+ const char *buf, size_t len, char16_t *utf16_output) const noexcept {
396
+ utf8_to_utf16::validating_transcoder converter;
397
+ return converter.convert<endianness::BIG>(buf, len, utf16_output);
398
+ }
399
+
400
+ simdutf_warn_unused result implementation::convert_utf8_to_utf16le_with_errors(
401
+ const char *buf, size_t len, char16_t *utf16_output) const noexcept {
402
+ utf8_to_utf16::validating_transcoder converter;
403
+ return converter.convert_with_errors<endianness::LITTLE>(buf, len,
404
+ utf16_output);
405
+ }
406
+
407
+ simdutf_warn_unused result implementation::convert_utf8_to_utf16be_with_errors(
408
+ const char *buf, size_t len, char16_t *utf16_output) const noexcept {
409
+ utf8_to_utf16::validating_transcoder converter;
410
+ return converter.convert_with_errors<endianness::BIG>(buf, len, utf16_output);
411
+ }
412
+
413
+ simdutf_warn_unused size_t implementation::convert_valid_utf8_to_utf16le(
414
+ const char *buf, size_t len, char16_t *utf16_output) const noexcept {
415
+ return utf8_to_utf16::convert_valid<endianness::LITTLE>(buf, len,
416
+ utf16_output);
417
+ }
418
+
419
+ simdutf_warn_unused size_t implementation::convert_valid_utf8_to_utf16be(
420
+ const char *buf, size_t len, char16_t *utf16_output) const noexcept {
421
+ return utf8_to_utf16::convert_valid<endianness::BIG>(buf, len, utf16_output);
422
+ }
423
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
424
+
425
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
426
+ simdutf_warn_unused size_t implementation::convert_utf8_to_utf32(
427
+ const char *buf, size_t len, char32_t *utf32_output) const noexcept {
428
+ utf8_to_utf32::validating_transcoder converter;
429
+ return converter.convert(buf, len, utf32_output);
430
+ }
431
+
432
+ simdutf_warn_unused result implementation::convert_utf8_to_utf32_with_errors(
433
+ const char *buf, size_t len, char32_t *utf32_output) const noexcept {
434
+ utf8_to_utf32::validating_transcoder converter;
435
+ return converter.convert_with_errors(buf, len, utf32_output);
436
+ }
437
+
438
+ simdutf_warn_unused size_t implementation::convert_valid_utf8_to_utf32(
439
+ const char *input, size_t size, char32_t *utf32_output) const noexcept {
440
+ return utf8_to_utf32::convert_valid(input, size, utf32_output);
441
+ }
442
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
443
+
444
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
445
+ simdutf_warn_unused size_t implementation::convert_utf16le_to_latin1(
446
+ const char16_t *buf, size_t len, char *latin1_output) const noexcept {
447
+
448
+ return convert_impl(
449
+ ppc64_convert_utf16_to_latin1<endianness::LITTLE>,
450
+ scalar::utf16_to_latin1::convert<endianness::LITTLE, const char16_t *,
451
+ char *>,
452
+ buf, len, latin1_output);
453
+ }
454
+
455
+ simdutf_warn_unused size_t implementation::convert_utf16be_to_latin1(
456
+ const char16_t *buf, size_t len, char *latin1_output) const noexcept {
457
+
458
+ return convert_impl(
459
+ ppc64_convert_utf16_to_latin1<endianness::BIG>,
460
+ scalar::utf16_to_latin1::convert<endianness::BIG, const char16_t *,
461
+ char *>,
462
+ buf, len, latin1_output);
463
+ }
464
+
465
+ simdutf_warn_unused result
466
+ implementation::convert_utf16le_to_latin1_with_errors(
467
+ const char16_t *buf, size_t len, char *latin1_output) const noexcept {
468
+
469
+ return convert_with_errors_impl(
470
+ ppc64_convert_utf16_to_latin1<endianness::LITTLE>,
471
+ scalar::utf16_to_latin1::convert_with_errors<endianness::LITTLE,
472
+ const char16_t *, char *>,
473
+ buf, len, latin1_output);
474
+ }
475
+
476
+ simdutf_warn_unused result
477
+ implementation::convert_utf16be_to_latin1_with_errors(
478
+ const char16_t *buf, size_t len, char *latin1_output) const noexcept {
479
+
480
+ return convert_with_errors_impl(
481
+ ppc64_convert_utf16_to_latin1<endianness::BIG>,
482
+ scalar::utf16_to_latin1::convert_with_errors<endianness::BIG,
483
+ const char16_t *, char *>,
484
+ buf, len, latin1_output);
485
+ }
486
+
487
+ simdutf_warn_unused size_t implementation::convert_valid_utf16be_to_latin1(
488
+ const char16_t *buf, size_t len, char *latin1_output) const noexcept {
489
+ // optimization opportunity: we could provide an optimized function.
490
+ return convert_utf16be_to_latin1(buf, len, latin1_output);
491
+ }
492
+
493
+ simdutf_warn_unused size_t implementation::convert_valid_utf16le_to_latin1(
494
+ const char16_t *buf, size_t len, char *latin1_output) const noexcept {
495
+ // optimization opportunity: we could provide an optimized function.
496
+ return convert_utf16le_to_latin1(buf, len, latin1_output);
497
+ }
498
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_LATIN1
499
+
500
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
501
+ simdutf_warn_unused size_t implementation::convert_utf16le_to_utf8(
502
+ const char16_t *buf, size_t len, char *utf8_output) const noexcept {
503
+
504
+ return convert_impl(ppc64_convert_utf16_to_utf8<endianness::LITTLE>,
505
+ scalar::utf16_to_utf8::convert<endianness::LITTLE,
506
+ const char16_t *, char *>,
507
+ buf, len, utf8_output);
508
+ }
509
+
510
+ simdutf_warn_unused size_t implementation::convert_utf16be_to_utf8(
511
+ const char16_t *buf, size_t len, char *utf8_output) const noexcept {
512
+
513
+ return convert_impl(
514
+ ppc64_convert_utf16_to_utf8<endianness::BIG>,
515
+ scalar::utf16_to_utf8::convert<endianness::BIG, const char16_t *, char *>,
516
+ buf, len, utf8_output);
517
+ }
518
+
519
+ simdutf_warn_unused result implementation::convert_utf16le_to_utf8_with_errors(
520
+ const char16_t *buf, size_t len, char *utf8_output) const noexcept {
521
+
522
+ return convert_with_errors_impl(
523
+ ppc64_convert_utf16_to_utf8<endianness::LITTLE>,
524
+ scalar::utf16_to_utf8::simple_convert_with_errors<endianness::LITTLE>,
525
+ buf, len, utf8_output);
526
+ }
527
+
528
+ simdutf_warn_unused result implementation::convert_utf16be_to_utf8_with_errors(
529
+ const char16_t *buf, size_t len, char *utf8_output) const noexcept {
530
+
531
+ return convert_with_errors_impl(
532
+ ppc64_convert_utf16_to_utf8<endianness::BIG>,
533
+ scalar::utf16_to_utf8::simple_convert_with_errors<endianness::BIG>, buf,
534
+ len, utf8_output);
535
+ }
536
+
537
+ simdutf_warn_unused size_t implementation::convert_valid_utf16le_to_utf8(
538
+ const char16_t *buf, size_t len, char *utf8_output) const noexcept {
539
+ return convert_utf16le_to_utf8(buf, len, utf8_output);
540
+ }
541
+
542
+ simdutf_warn_unused size_t implementation::convert_valid_utf16be_to_utf8(
543
+ const char16_t *buf, size_t len, char *utf8_output) const noexcept {
544
+ return convert_utf16be_to_utf8(buf, len, utf8_output);
545
+ }
546
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
547
+
548
+ #if SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
549
+ simdutf_warn_unused size_t implementation::convert_utf32_to_latin1(
550
+ const char32_t *buf, size_t len, char *latin1_output) const noexcept {
551
+ return convert_impl(ppc64_convert_utf32_to_latin1<ErrorChecking::enabled>,
552
+ scalar::utf32_to_latin1::convert, buf, len,
553
+ latin1_output);
554
+ }
555
+
556
+ simdutf_warn_unused result implementation::convert_utf32_to_latin1_with_errors(
557
+ const char32_t *buf, size_t len, char *latin1_output) const noexcept {
558
+ return convert_with_errors_impl(
559
+ ppc64_convert_utf32_to_latin1<ErrorChecking::enabled>,
560
+ scalar::utf32_to_latin1::convert_with_errors, buf, len, latin1_output);
561
+ }
562
+
563
+ simdutf_warn_unused size_t implementation::convert_valid_utf32_to_latin1(
564
+ const char32_t *buf, size_t len, char *latin1_output) const noexcept {
565
+ return convert_impl(ppc64_convert_utf32_to_latin1<ErrorChecking::disabled>,
566
+ scalar::utf32_to_latin1::convert, buf, len,
567
+ latin1_output);
568
+ }
569
+ #endif // SIMDUTF_FEATURE_UTF32 && SIMDUTF_FEATURE_LATIN1
570
+
571
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
572
+ simdutf_warn_unused size_t implementation::convert_utf32_to_utf8(
573
+ const char32_t *buf, size_t len, char *utf8_output) const noexcept {
574
+ return convert_impl(ppc64_convert_utf32_to_utf8<ErrorReporting::at_the_end>,
575
+ scalar::utf32_to_utf8::convert<const char32_t *, char *>,
576
+ buf, len, utf8_output);
577
+ }
578
+
579
+ simdutf_warn_unused result implementation::convert_utf32_to_utf8_with_errors(
580
+ const char32_t *buf, size_t len, char *utf8_output) const noexcept {
581
+ return convert_with_errors_impl(
582
+ ppc64_convert_utf32_to_utf8<ErrorReporting::precise>,
583
+ scalar::utf32_to_utf8::convert_with_errors<const char32_t *, char *>, buf,
584
+ len, utf8_output);
585
+ }
586
+
587
+ simdutf_warn_unused size_t implementation::convert_valid_utf32_to_utf8(
588
+ const char32_t *buf, size_t len, char *utf8_output) const noexcept {
589
+ return convert_impl(ppc64_convert_utf32_to_utf8<ErrorReporting::none>,
590
+ scalar::utf32_to_utf8::convert<const char32_t *, char *>,
591
+ buf, len, utf8_output);
592
+ }
593
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
594
+
595
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
596
+ simdutf_warn_unused size_t implementation::convert_utf32_to_utf16le(
597
+ const char32_t *buf, size_t len, char16_t *utf16_output) const noexcept {
598
+
599
+ return convert_impl(ppc64_convert_utf32_to_utf16<endianness::LITTLE,
600
+ ErrorReporting::at_the_end>,
601
+ scalar::utf32_to_utf16::convert<endianness::LITTLE>, buf,
602
+ len, utf16_output);
603
+ }
604
+
605
+ simdutf_warn_unused size_t implementation::convert_utf32_to_utf16be(
606
+ const char32_t *buf, size_t len, char16_t *utf16_output) const noexcept {
607
+
608
+ return convert_impl(
609
+ ppc64_convert_utf32_to_utf16<endianness::BIG, ErrorReporting::at_the_end>,
610
+ scalar::utf32_to_utf16::convert<endianness::BIG>, buf, len, utf16_output);
611
+ }
612
+
613
+ simdutf_warn_unused result implementation::convert_utf32_to_utf16le_with_errors(
614
+ const char32_t *buf, size_t len, char16_t *utf16_output) const noexcept {
615
+
616
+ return convert_with_errors_impl(
617
+ ppc64_convert_utf32_to_utf16<endianness::LITTLE, ErrorReporting::precise>,
618
+ scalar::utf32_to_utf16::convert_with_errors<endianness::LITTLE>, buf, len,
619
+ utf16_output);
620
+ }
621
+
622
+ simdutf_warn_unused result implementation::convert_utf32_to_utf16be_with_errors(
623
+ const char32_t *buf, size_t len, char16_t *utf16_output) const noexcept {
624
+
625
+ return convert_with_errors_impl(
626
+ ppc64_convert_utf32_to_utf16<endianness::BIG, ErrorReporting::precise>,
627
+ scalar::utf32_to_utf16::convert_with_errors<endianness::BIG>, buf, len,
628
+ utf16_output);
629
+ }
630
+
631
+ simdutf_warn_unused size_t implementation::convert_valid_utf32_to_utf16le(
632
+ const char32_t *buf, size_t len, char16_t *utf16_output) const noexcept {
633
+
634
+ return convert_impl(
635
+ ppc64_convert_utf32_to_utf16<endianness::LITTLE, ErrorReporting::none>,
636
+ scalar::utf32_to_utf16::convert<endianness::LITTLE>, buf, len,
637
+ utf16_output);
638
+ }
639
+
640
+ simdutf_warn_unused size_t implementation::convert_valid_utf32_to_utf16be(
641
+ const char32_t *buf, size_t len, char16_t *utf16_output) const noexcept {
642
+
643
+ return convert_impl(
644
+ ppc64_convert_utf32_to_utf16<endianness::BIG, ErrorReporting::none>,
645
+ scalar::utf32_to_utf16::convert<endianness::BIG>, buf, len, utf16_output);
646
+ }
647
+
648
+ simdutf_warn_unused size_t implementation::convert_utf16le_to_utf32(
649
+ const char16_t *buf, size_t len, char32_t *utf32_output) const noexcept {
650
+ return convert_impl(ppc64_convert_utf16_to_utf32<endianness::LITTLE>,
651
+ scalar::utf16_to_utf32::convert<endianness::LITTLE>, buf,
652
+ len, utf32_output);
653
+ }
654
+
655
+ simdutf_warn_unused size_t implementation::convert_utf16be_to_utf32(
656
+ const char16_t *buf, size_t len, char32_t *utf32_output) const noexcept {
657
+ return convert_impl(ppc64_convert_utf16_to_utf32<endianness::BIG>,
658
+ scalar::utf16_to_utf32::convert<endianness::BIG>, buf,
659
+ len, utf32_output);
660
+ }
661
+
662
+ simdutf_warn_unused result implementation::convert_utf16le_to_utf32_with_errors(
663
+ const char16_t *buf, size_t len, char32_t *utf32_output) const noexcept {
664
+ return convert_with_errors_impl(
665
+ ppc64_convert_utf16_to_utf32<endianness::LITTLE>,
666
+ scalar::utf16_to_utf32::convert_with_errors<endianness::LITTLE>, buf, len,
667
+ utf32_output);
668
+ }
669
+
670
+ simdutf_warn_unused result implementation::convert_utf16be_to_utf32_with_errors(
671
+ const char16_t *buf, size_t len, char32_t *utf32_output) const noexcept {
672
+ return convert_with_errors_impl(
673
+ ppc64_convert_utf16_to_utf32<endianness::BIG>,
674
+ scalar::utf16_to_utf32::convert_with_errors<endianness::BIG>, buf, len,
675
+ utf32_output);
676
+ }
677
+
678
+ simdutf_warn_unused size_t implementation::convert_valid_utf16le_to_utf32(
679
+ const char16_t *buf, size_t len, char32_t *utf32_output) const noexcept {
680
+ return convert_utf16le_to_utf32(buf, len, utf32_output);
681
+ }
682
+
683
+ simdutf_warn_unused size_t implementation::convert_valid_utf16be_to_utf32(
684
+ const char16_t *buf, size_t len, char32_t *utf32_output) const noexcept {
685
+ return convert_utf16be_to_utf32(buf, len, utf32_output);
686
+ }
687
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
688
+
689
+ #if SIMDUTF_FEATURE_UTF16
690
+ void implementation::change_endianness_utf16(const char16_t *input,
691
+ size_t length,
692
+ char16_t *output) const noexcept {
693
+ utf16::change_endianness_utf16(input, length, output);
694
+ }
695
+
696
+ simdutf_warn_unused size_t implementation::count_utf16le(
697
+ const char16_t *input, size_t length) const noexcept {
698
+ return utf16::count_code_points<endianness::LITTLE>(input, length);
699
+ }
700
+
701
+ simdutf_warn_unused size_t implementation::count_utf16be(
702
+ const char16_t *input, size_t length) const noexcept {
703
+ return utf16::count_code_points<endianness::BIG>(input, length);
704
+ }
705
+ #endif // SIMDUTF_FEATURE_UTF16
706
+
707
+ #if SIMDUTF_FEATURE_UTF8
708
+ simdutf_warn_unused size_t
709
+ implementation::count_utf8(const char *input, size_t length) const noexcept {
710
+ return utf8::count_code_points(input, length);
711
+ }
712
+ #endif // SIMDUTF_FEATURE_UTF8
713
+
714
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
715
+ simdutf_warn_unused size_t implementation::latin1_length_from_utf8(
716
+ const char *buf, size_t len) const noexcept {
717
+ return count_utf8(buf, len);
718
+ }
719
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
720
+
721
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
722
+ simdutf_warn_unused size_t implementation::utf8_length_from_latin1(
723
+ const char *input, size_t length) const noexcept {
724
+ const auto ret = ppc64_utf8_length_from_latin1(input, length);
725
+ const size_t consumed = ret.first - input;
726
+
727
+ if (consumed == length) {
728
+ return ret.second;
729
+ }
730
+
731
+ const auto scalar =
732
+ scalar::latin1::utf8_length_from_latin1(ret.first, length - consumed);
733
+ return scalar + ret.second;
734
+ }
735
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_LATIN1
736
+
737
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
738
+ simdutf_warn_unused size_t implementation::utf8_length_from_utf16le(
739
+ const char16_t *input, size_t length) const noexcept {
740
+ return utf16::utf8_length_from_utf16<endianness::LITTLE>(input, length);
741
+ }
742
+
743
+ simdutf_warn_unused size_t implementation::utf8_length_from_utf16be(
744
+ const char16_t *input, size_t length) const noexcept {
745
+ return utf16::utf8_length_from_utf16<endianness::BIG>(input, length);
746
+ }
747
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
748
+
749
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
750
+ simdutf_warn_unused size_t implementation::utf32_length_from_utf16le(
751
+ const char16_t *input, size_t length) const noexcept {
752
+ return utf16::utf32_length_from_utf16<endianness::LITTLE>(input, length);
753
+ }
754
+
755
+ simdutf_warn_unused size_t implementation::utf32_length_from_utf16be(
756
+ const char16_t *input, size_t length) const noexcept {
757
+ return utf16::utf32_length_from_utf16<endianness::BIG>(input, length);
758
+ }
759
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
760
+
761
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
762
+ simdutf_warn_unused size_t implementation::utf16_length_from_utf8(
763
+ const char *input, size_t length) const noexcept {
764
+ return utf8::utf16_length_from_utf8(input, length);
765
+ }
766
+ simdutf_warn_unused result
767
+ implementation::utf8_length_from_utf16le_with_replacement(
768
+ const char16_t *input, size_t length) const noexcept {
769
+ return scalar::utf16::utf8_length_from_utf16_with_replacement<
770
+ endianness::LITTLE>(input, length);
771
+ }
772
+
773
+ simdutf_warn_unused result
774
+ implementation::utf8_length_from_utf16be_with_replacement(
775
+ const char16_t *input, size_t length) const noexcept {
776
+ return scalar::utf16::utf8_length_from_utf16_with_replacement<
777
+ endianness::BIG>(input, length);
778
+ }
779
+
780
+ simdutf_warn_unused size_t
781
+ implementation::convert_utf16le_to_utf8_with_replacement(
782
+ const char16_t *input, size_t length, char *utf8_buffer) const noexcept {
783
+ return scalar::utf16_to_utf8::convert_with_replacement<endianness::LITTLE>(
784
+ input, length, utf8_buffer);
785
+ }
786
+
787
+ simdutf_warn_unused size_t
788
+ implementation::convert_utf16be_to_utf8_with_replacement(
789
+ const char16_t *input, size_t length, char *utf8_buffer) const noexcept {
790
+ return scalar::utf16_to_utf8::convert_with_replacement<endianness::BIG>(
791
+ input, length, utf8_buffer);
792
+ }
793
+
794
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF16
795
+
796
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
797
+ simdutf_warn_unused size_t implementation::utf8_length_from_utf32(
798
+ const char32_t *input, size_t length) const noexcept {
799
+ return utf32::utf8_length_from_utf32(input, length);
800
+ }
801
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
802
+
803
+ #if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
804
+ simdutf_warn_unused size_t implementation::utf16_length_from_utf32(
805
+ const char32_t *input, size_t length) const noexcept {
806
+ return scalar::utf32::utf16_length_from_utf32(input, length);
807
+ }
808
+ #endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_UTF32
809
+
810
+ #if SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
811
+ simdutf_warn_unused size_t implementation::utf32_length_from_utf8(
812
+ const char *input, size_t length) const noexcept {
813
+ return utf8::count_code_points(input, length);
814
+ }
815
+ #endif // SIMDUTF_FEATURE_UTF8 && SIMDUTF_FEATURE_UTF32
816
+
817
+ #if SIMDUTF_FEATURE_BASE64
818
+ simdutf_warn_unused size_t implementation::maximal_binary_length_from_base64(
819
+ const char *input, size_t length) const noexcept {
820
+ return scalar::base64::maximal_binary_length_from_base64(input, length);
821
+ }
822
+
823
+ simdutf_warn_unused result implementation::base64_to_binary(
824
+ const char *input, size_t length, char *output, base64_options options,
825
+ last_chunk_handling_options last_chunk_options) const noexcept {
826
+ if (options & base64_default_or_url) {
827
+ if (options == base64_options::base64_default_or_url_accept_garbage) {
828
+ return base64::compress_decode_base64<false, true, true>(
829
+ output, input, length, options, last_chunk_options);
830
+ } else {
831
+ return base64::compress_decode_base64<false, false, true>(
832
+ output, input, length, options, last_chunk_options);
833
+ }
834
+ } else if (options & base64_url) {
835
+ if (options == base64_options::base64_url_accept_garbage) {
836
+ return base64::compress_decode_base64<true, true, false>(
837
+ output, input, length, options, last_chunk_options);
838
+ } else {
839
+ return base64::compress_decode_base64<true, false, false>(
840
+ output, input, length, options, last_chunk_options);
841
+ }
842
+ } else {
843
+ if (options == base64_options::base64_default_accept_garbage) {
844
+ return base64::compress_decode_base64<false, true, false>(
845
+ output, input, length, options, last_chunk_options);
846
+ } else {
847
+ return base64::compress_decode_base64<false, false, false>(
848
+ output, input, length, options, last_chunk_options);
849
+ }
850
+ }
851
+ }
852
+
853
+ simdutf_warn_unused full_result implementation::base64_to_binary_details(
854
+ const char *input, size_t length, char *output, base64_options options,
855
+ last_chunk_handling_options last_chunk_options) const noexcept {
856
+ if (options & base64_default_or_url) {
857
+ if (options == base64_options::base64_default_or_url_accept_garbage) {
858
+ return base64::compress_decode_base64<false, true, true>(
859
+ output, input, length, options, last_chunk_options);
860
+ } else {
861
+ return base64::compress_decode_base64<false, false, true>(
862
+ output, input, length, options, last_chunk_options);
863
+ }
864
+ } else if (options & base64_url) {
865
+ if (options == base64_options::base64_url_accept_garbage) {
866
+ return base64::compress_decode_base64<true, true, false>(
867
+ output, input, length, options, last_chunk_options);
868
+ } else {
869
+ return base64::compress_decode_base64<true, false, false>(
870
+ output, input, length, options, last_chunk_options);
871
+ }
872
+ } else {
873
+ if (options == base64_options::base64_default_accept_garbage) {
874
+ return base64::compress_decode_base64<false, true, false>(
875
+ output, input, length, options, last_chunk_options);
876
+ } else {
877
+ return base64::compress_decode_base64<false, false, false>(
878
+ output, input, length, options, last_chunk_options);
879
+ }
880
+ }
881
+ }
882
+
883
+ simdutf_warn_unused result implementation::base64_to_binary(
884
+ const char16_t *input, size_t length, char *output, base64_options options,
885
+ last_chunk_handling_options last_chunk_options) const noexcept {
886
+ if (options & base64_default_or_url) {
887
+ if (options == base64_options::base64_default_or_url_accept_garbage) {
888
+ return base64::compress_decode_base64<false, true, true>(
889
+ output, input, length, options, last_chunk_options);
890
+ } else {
891
+ return base64::compress_decode_base64<false, false, true>(
892
+ output, input, length, options, last_chunk_options);
893
+ }
894
+ } else if (options & base64_url) {
895
+ if (options == base64_options::base64_url_accept_garbage) {
896
+ return base64::compress_decode_base64<true, true, false>(
897
+ output, input, length, options, last_chunk_options);
898
+ } else {
899
+ return base64::compress_decode_base64<true, false, false>(
900
+ output, input, length, options, last_chunk_options);
901
+ }
902
+ } else {
903
+ if (options == base64_options::base64_default_accept_garbage) {
904
+ return base64::compress_decode_base64<false, true, false>(
905
+ output, input, length, options, last_chunk_options);
906
+ } else {
907
+ return base64::compress_decode_base64<false, false, false>(
908
+ output, input, length, options, last_chunk_options);
909
+ }
910
+ }
911
+ }
912
+
913
+ simdutf_warn_unused full_result implementation::base64_to_binary_details(
914
+ const char16_t *input, size_t length, char *output, base64_options options,
915
+ last_chunk_handling_options last_chunk_options) const noexcept {
916
+ if (options & base64_default_or_url) {
917
+ if (options == base64_options::base64_default_or_url_accept_garbage) {
918
+ return base64::compress_decode_base64<false, true, true>(
919
+ output, input, length, options, last_chunk_options);
920
+ } else {
921
+ return base64::compress_decode_base64<false, false, true>(
922
+ output, input, length, options, last_chunk_options);
923
+ }
924
+ } else if (options & base64_url) {
925
+ if (options == base64_options::base64_url_accept_garbage) {
926
+ return base64::compress_decode_base64<true, true, false>(
927
+ output, input, length, options, last_chunk_options);
928
+ } else {
929
+ return base64::compress_decode_base64<true, false, false>(
930
+ output, input, length, options, last_chunk_options);
931
+ }
932
+ } else {
933
+ if (options == base64_options::base64_default_accept_garbage) {
934
+ return base64::compress_decode_base64<false, true, false>(
935
+ output, input, length, options, last_chunk_options);
936
+ } else {
937
+ return base64::compress_decode_base64<false, false, false>(
938
+ output, input, length, options, last_chunk_options);
939
+ }
940
+ }
941
+ }
942
+
943
+ size_t implementation::binary_to_base64(const char *input, size_t length,
944
+ char *output,
945
+ base64_options options) const noexcept {
946
+ if (options & base64_url) {
947
+ return encode_base64<true>(output, input, length, options);
948
+ } else {
949
+ return encode_base64<false>(output, input, length, options);
950
+ }
951
+ }
952
+
953
+ size_t implementation::binary_to_base64_with_lines(
954
+ const char *input, size_t length, char *output, size_t line_length,
955
+ base64_options options) const noexcept {
956
+ return scalar::base64::tail_encode_base64_impl<true>(output, input, length,
957
+ options, line_length);
958
+ }
959
+
960
+ const char *implementation::find(const char *start, const char *end,
961
+ char character) const noexcept {
962
+ return util::find(start, end, character);
963
+ }
964
+
965
+ const char16_t *implementation::find(const char16_t *start, const char16_t *end,
966
+ char16_t character) const noexcept {
967
+ return util::find(start, end, character);
968
+ }
969
+ #endif // SIMDUTF_FEATURE_BASE64
970
+
971
+ #ifdef SIMDUTF_INTERNAL_TESTS
972
+ std::vector<implementation::TestProcedure>
973
+ implementation::internal_tests() const {
974
+ #define entry(proc) \
975
+ TestProcedure { #proc, proc }
976
+ return {entry(base64_encoding_translate_6bit_values),
977
+ entry(base64_encoding_expand_6bit_fields),
978
+ entry(base64_decoding_valid),
979
+ entry(base64_decoding_invalid_ignore_errors),
980
+ entry(base64url_decoding_invalid_ignore_errors),
981
+ entry(base64_decoding_invalid_strict_errors),
982
+ entry(base64url_decoding_invalid_strict_errors),
983
+ entry(base64_decoding_pack),
984
+ entry(base64_compress)};
985
+ #undef entry
986
+ }
987
+ #endif
988
+
989
+ } // namespace SIMDUTF_IMPLEMENTATION
990
+ } // namespace simdutf
991
+
992
+ #include "simdutf/ppc64/end.h"