react-native-quick-crypto 1.0.18 → 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.
- package/QuickCrypto.podspec +12 -38
- package/README.md +2 -0
- package/android/CMakeLists.txt +3 -0
- package/cpp/utils/HybridUtils.cpp +39 -77
- package/deps/simdutf/.clang-format +4 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +62 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +35 -0
- package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +29 -0
- package/deps/simdutf/.github/pull_request_template.md +51 -0
- package/deps/simdutf/.github/workflows/aarch64.yml +39 -0
- package/deps/simdutf/.github/workflows/alpine.yml +27 -0
- package/deps/simdutf/.github/workflows/amalgamation_demos.yml +34 -0
- package/deps/simdutf/.github/workflows/armv7.yml +32 -0
- package/deps/simdutf/.github/workflows/atomic_fuzz.yml +25 -0
- package/deps/simdutf/.github/workflows/cifuzz.yml +37 -0
- package/deps/simdutf/.github/workflows/clangformat.yml +36 -0
- package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +40 -0
- package/deps/simdutf/.github/workflows/debian.yml +33 -0
- package/deps/simdutf/.github/workflows/documentation.yml +36 -0
- package/deps/simdutf/.github/workflows/emscripten.yml +19 -0
- package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +39 -0
- package/deps/simdutf/.github/workflows/macos-latest.yml +29 -0
- package/deps/simdutf/.github/workflows/msys2-clang.yml +48 -0
- package/deps/simdutf/.github/workflows/msys2.yml +50 -0
- package/deps/simdutf/.github/workflows/ppc64le.yml +29 -0
- package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +35 -0
- package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +35 -0
- package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +31 -0
- package/deps/simdutf/.github/workflows/s390x.yml +29 -0
- package/deps/simdutf/.github/workflows/selective-amalgamation.yml +29 -0
- package/deps/simdutf/.github/workflows/typos.yml +19 -0
- package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +30 -0
- package/deps/simdutf/.github/workflows/ubuntu22.yml +32 -0
- package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +27 -0
- package/deps/simdutf/.github/workflows/ubuntu22sani.yml +29 -0
- package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +34 -0
- package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +34 -0
- package/deps/simdutf/.github/workflows/ubuntu24.yml +32 -0
- package/deps/simdutf/.github/workflows/ubuntu24sani.yml +36 -0
- package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +29 -0
- package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +21 -0
- package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-ci.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +41 -0
- package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +36 -0
- package/deps/simdutf/AI_USAGE_POLICY.md +56 -0
- package/deps/simdutf/AUTHORS +6 -0
- package/deps/simdutf/CMakeLists.txt +231 -0
- package/deps/simdutf/CONTRIBUTING.md +214 -0
- package/deps/simdutf/CONTRIBUTORS +1 -0
- package/deps/simdutf/Doxyfile +2584 -0
- package/deps/simdutf/LICENSE-APACHE +201 -0
- package/deps/simdutf/LICENSE-MIT +18 -0
- package/deps/simdutf/Makefile.crosscompile +54 -0
- package/deps/simdutf/README-RVV.md +16 -0
- package/deps/simdutf/README.md +2782 -0
- package/deps/simdutf/SECURITY.md +8 -0
- package/deps/simdutf/benchmarks/CMakeLists.txt +101 -0
- package/deps/simdutf/benchmarks/alignment.cpp +150 -0
- package/deps/simdutf/benchmarks/base64/CMakeLists.txt +30 -0
- package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +875 -0
- package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +49 -0
- package/deps/simdutf/benchmarks/base64/node_base64.h +227 -0
- package/deps/simdutf/benchmarks/base64/openssl3_base64.h +334 -0
- package/deps/simdutf/benchmarks/benchmark.cpp +65 -0
- package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +347 -0
- package/deps/simdutf/benchmarks/competition/.clang-format-ignore +5 -0
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +1276 -0
- package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +595 -0
- package/deps/simdutf/benchmarks/competition/README.md +7 -0
- package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +91 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +444 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +13183 -0
- package/deps/simdutf/benchmarks/competition/inoue2008/script.py +73 -0
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +738 -0
- package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +293 -0
- package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +8 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Makefile +44 -0
- package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +169 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +148 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +45 -0
- package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +34 -0
- package/deps/simdutf/benchmarks/competition/u8u16/README +56 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +43 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +27 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +16 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +18 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +16 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +28 -0
- package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +20 -0
- package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +440 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +121 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +158 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +270 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +141 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +216 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +119 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +2430 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +39 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +421 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +836 -0
- package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +222 -0
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +4 -0
- package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +5 -0
- package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +390 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +18 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +448 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +284 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +1975 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +2263 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +239 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +232 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +194 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +193 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +167 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +288 -0
- package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +117 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +3 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +2 -0
- package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +3 -0
- package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +2 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +23 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +44 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +106 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +14 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +8 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +14 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +8 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +11 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +13 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +10 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +9 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +25 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +94 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +20 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +2 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +1 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +75 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +47 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +17 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +76 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +35 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +117 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +210 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +158 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +104 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +334 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +186 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +140 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +42 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +100 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +57 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +85 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +27 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +126 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +108 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +139 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +74 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +65 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +91 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +772 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +12 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +486 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +162 -0
- package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +15 -0
- package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +292 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +23 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/README.md +1503 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +335 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +338 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +103 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +103 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +274 -0
- package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +34 -0
- package/deps/simdutf/benchmarks/dataset/README.md +155 -0
- package/deps/simdutf/benchmarks/dataset/emoji.txt +204 -0
- package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +40 -0
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +80 -0
- package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +20 -0
- package/deps/simdutf/benchmarks/find/CMakeLists.txt +6 -0
- package/deps/simdutf/benchmarks/find/findbenchmark.cpp +63 -0
- package/deps/simdutf/benchmarks/find/findbenchmarker.h +46 -0
- package/deps/simdutf/benchmarks/shortbench.cpp +555 -0
- package/deps/simdutf/benchmarks/src/CMakeLists.txt +52 -0
- package/deps/simdutf/benchmarks/src/apple_arm_events.h +1104 -0
- package/deps/simdutf/benchmarks/src/benchmark.cpp +3899 -0
- package/deps/simdutf/benchmarks/src/benchmark.h +317 -0
- package/deps/simdutf/benchmarks/src/benchmark_base.cpp +144 -0
- package/deps/simdutf/benchmarks/src/benchmark_base.h +98 -0
- package/deps/simdutf/benchmarks/src/cmdline.cpp +176 -0
- package/deps/simdutf/benchmarks/src/cmdline.h +35 -0
- package/deps/simdutf/benchmarks/src/event_counter.h +162 -0
- package/deps/simdutf/benchmarks/src/linux-perf-events.h +104 -0
- package/deps/simdutf/benchmarks/stream.cpp +209 -0
- package/deps/simdutf/benchmarks/threaded.cpp +123 -0
- package/deps/simdutf/cmake/CPM.cmake +1363 -0
- package/deps/simdutf/cmake/JoinPaths.cmake +23 -0
- package/deps/simdutf/cmake/add_cpp_test.cmake +68 -0
- package/deps/simdutf/cmake/simdutf-config.cmake.in +2 -0
- package/deps/simdutf/cmake/simdutf-flags.cmake +26 -0
- package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +4 -0
- package/deps/simdutf/cmake/toolchains-dev/README.md +32 -0
- package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +14 -0
- package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +22 -0
- package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +16 -0
- package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +38 -0
- package/deps/simdutf/doc/avx512.png +0 -0
- package/deps/simdutf/doc/logo.png +0 -0
- package/deps/simdutf/doc/logo.svg +165 -0
- package/deps/simdutf/doc/node2023.png +0 -0
- package/deps/simdutf/doc/shortinput.md +78 -0
- package/deps/simdutf/doc/utf16utf8.png +0 -0
- package/deps/simdutf/doc/utf8utf16.png +0 -0
- package/deps/simdutf/doc/widelogo.png +0 -0
- package/deps/simdutf/doxygen.py +50 -0
- package/deps/simdutf/fuzz/.clang-format +9 -0
- package/deps/simdutf/fuzz/CMakeLists.txt +45 -0
- package/deps/simdutf/fuzz/README.md +168 -0
- package/deps/simdutf/fuzz/atomic_base64.cpp +448 -0
- package/deps/simdutf/fuzz/base64.cpp +278 -0
- package/deps/simdutf/fuzz/build.sh +83 -0
- package/deps/simdutf/fuzz/conversion.cpp +669 -0
- package/deps/simdutf/fuzz/helpers/.clang-format-ignore +1 -0
- package/deps/simdutf/fuzz/helpers/common.h +135 -0
- package/deps/simdutf/fuzz/helpers/nameof.hpp +1258 -0
- package/deps/simdutf/fuzz/main.cpp +72 -0
- package/deps/simdutf/fuzz/minimize_and_cleanse.sh +87 -0
- package/deps/simdutf/fuzz/misc.cpp +216 -0
- package/deps/simdutf/fuzz/random_fuzz.sh +154 -0
- package/deps/simdutf/fuzz/roundtrip.cpp +588 -0
- package/deps/simdutf/fuzz/safe_conversion.cpp +104 -0
- package/deps/simdutf/include/simdutf/avx512.h +79 -0
- package/deps/simdutf/include/simdutf/base64_implementation.h +158 -0
- package/deps/simdutf/include/simdutf/base64_tables.h +887 -0
- package/deps/simdutf/include/simdutf/common_defs.h +186 -0
- package/deps/simdutf/include/simdutf/compiler_check.h +50 -0
- package/deps/simdutf/include/simdutf/constexpr_ptr.h +138 -0
- package/deps/simdutf/include/simdutf/encoding_types.h +189 -0
- package/deps/simdutf/include/simdutf/error.h +126 -0
- package/deps/simdutf/include/simdutf/implementation.h +7081 -0
- package/deps/simdutf/include/simdutf/internal/isadetection.h +325 -0
- package/deps/simdutf/include/simdutf/portability.h +285 -0
- package/deps/simdutf/include/simdutf/scalar/ascii.h +86 -0
- package/deps/simdutf/include/simdutf/scalar/atomic_util.h +105 -0
- package/deps/simdutf/include/simdutf/scalar/base64.h +911 -0
- package/deps/simdutf/include/simdutf/scalar/latin1.h +26 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf16/latin1_to_utf16.h +52 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf32/latin1_to_utf32.h +27 -0
- package/deps/simdutf/include/simdutf/scalar/latin1_to_utf8/latin1_to_utf8.h +191 -0
- package/deps/simdutf/include/simdutf/scalar/swap_bytes.h +35 -0
- package/deps/simdutf/include/simdutf/scalar/utf16.h +226 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/utf16_to_latin1.h +108 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/valid_utf16_to_latin1.h +40 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/utf16_to_utf32.h +86 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/valid_utf16_to_utf32.h +44 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/utf16_to_utf8.h +295 -0
- package/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/valid_utf16_to_utf8.h +91 -0
- package/deps/simdutf/include/simdutf/scalar/utf32.h +82 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/utf32_to_latin1.h +68 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/valid_utf32_to_latin1.h +67 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/utf32_to_utf16.h +84 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/valid_utf32_to_utf16.h +44 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/utf32_to_utf8.h +142 -0
- package/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/valid_utf32_to_utf8.h +72 -0
- package/deps/simdutf/include/simdutf/scalar/utf8.h +326 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/utf8_to_latin1.h +225 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/valid_utf8_to_latin1.h +87 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/utf8_to_utf16.h +342 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/valid_utf8_to_utf16.h +106 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/utf8_to_utf32.h +299 -0
- package/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/valid_utf8_to_utf32.h +83 -0
- package/deps/simdutf/include/simdutf/simdutf_version.h +26 -0
- package/deps/simdutf/include/simdutf.h +26 -0
- package/deps/simdutf/include/simdutf_c.h +342 -0
- package/deps/simdutf/riscv/Dockerfile +16 -0
- package/deps/simdutf/riscv/README.md +24 -0
- package/deps/simdutf/riscv/remove-docker-station +8 -0
- package/deps/simdutf/riscv/run-docker-station +31 -0
- package/deps/simdutf/scripts/.flake8 +2 -0
- package/deps/simdutf/scripts/Makefile +2 -0
- package/deps/simdutf/scripts/README_ADD_FUNCTION.md +49 -0
- package/deps/simdutf/scripts/add_function.py +330 -0
- package/deps/simdutf/scripts/amalgamation_tests.py +156 -0
- package/deps/simdutf/scripts/base64/Makefile +2 -0
- package/deps/simdutf/scripts/base64/README.md +2 -0
- package/deps/simdutf/scripts/base64/avx512.py +76 -0
- package/deps/simdutf/scripts/base64/neon_decode.py +143 -0
- package/deps/simdutf/scripts/base64/neon_generate_lut.py +101 -0
- package/deps/simdutf/scripts/base64/sse.py +252 -0
- package/deps/simdutf/scripts/base64/sseregular.py +160 -0
- package/deps/simdutf/scripts/base64/sseurl.py +283 -0
- package/deps/simdutf/scripts/base64/table.py +59 -0
- package/deps/simdutf/scripts/base64bench_print.py +145 -0
- package/deps/simdutf/scripts/benchmark-all.py +119 -0
- package/deps/simdutf/scripts/benchmark_print.py +324 -0
- package/deps/simdutf/scripts/check_feature_macros.py +156 -0
- package/deps/simdutf/scripts/check_typos.sh +13 -0
- package/deps/simdutf/scripts/clang_format.sh +35 -0
- package/deps/simdutf/scripts/clang_format_docker.sh +38 -0
- package/deps/simdutf/scripts/common.py +24 -0
- package/deps/simdutf/scripts/compilation_benchmark.py +55 -0
- package/deps/simdutf/scripts/compile_many_variations.sh +64 -0
- package/deps/simdutf/scripts/create_latex_table.py +62 -0
- package/deps/simdutf/scripts/docker/Dockerfile +14 -0
- package/deps/simdutf/scripts/docker/Makefile +9 -0
- package/deps/simdutf/scripts/docker/README.md +30 -0
- package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
- package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +155 -0
- package/deps/simdutf/scripts/prepare_doxygen.sh +21 -0
- package/deps/simdutf/scripts/release.py +197 -0
- package/deps/simdutf/scripts/shortinputplots.py +97 -0
- package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +422 -0
- package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +105 -0
- package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +186 -0
- package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +137 -0
- package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +129 -0
- package/deps/simdutf/scripts/table.py +207 -0
- package/deps/simdutf/scripts/tests/new.txt +33 -0
- package/deps/simdutf/scripts/tests/old.txt +33 -0
- package/deps/simdutf/scripts/tests/results.txt +272 -0
- package/deps/simdutf/simdutf.pc.in +11 -0
- package/deps/simdutf/singleheader/.flake8 +2 -0
- package/deps/simdutf/singleheader/CMakeLists.txt +64 -0
- package/deps/simdutf/singleheader/README-dev.md +81 -0
- package/deps/simdutf/singleheader/README.md +19 -0
- package/deps/simdutf/singleheader/amalgamate.py +513 -0
- package/deps/simdutf/singleheader/amalgamation_demo.c +59 -0
- package/deps/simdutf/singleheader/amalgamation_demo.cpp +54 -0
- package/deps/simdutf/singleheader/test-features.py +262 -0
- package/deps/simdutf/src/CMakeLists.txt +78 -0
- package/deps/simdutf/src/arm64/arm_base64.cpp +791 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf16.cpp +24 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf32.cpp +24 -0
- package/deps/simdutf/src/arm64/arm_convert_latin1_to_utf8.cpp +70 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_latin1.cpp +61 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf32.cpp +185 -0
- package/deps/simdutf/src/arm64/arm_convert_utf16_to_utf8.cpp +780 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_latin1.cpp +60 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf16.cpp +208 -0
- package/deps/simdutf/src/arm64/arm_convert_utf32_to_utf8.cpp +505 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_latin1.cpp +69 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf16.cpp +313 -0
- package/deps/simdutf/src/arm64/arm_convert_utf8_to_utf32.cpp +179 -0
- package/deps/simdutf/src/arm64/arm_find.cpp +199 -0
- package/deps/simdutf/src/arm64/arm_utf16fix.cpp +185 -0
- package/deps/simdutf/src/arm64/arm_validate_utf16.cpp +165 -0
- package/deps/simdutf/src/arm64/arm_validate_utf32le.cpp +65 -0
- package/deps/simdutf/src/arm64/implementation.cpp +1442 -0
- package/deps/simdutf/src/encoding_types.cpp +67 -0
- package/deps/simdutf/src/error.cpp +3 -0
- package/deps/simdutf/src/fallback/implementation.cpp +589 -0
- package/deps/simdutf/src/generic/ascii_validation.h +50 -0
- package/deps/simdutf/src/generic/base64.h +233 -0
- package/deps/simdutf/src/generic/base64lengths.h +63 -0
- package/deps/simdutf/src/generic/buf_block_reader.h +109 -0
- package/deps/simdutf/src/generic/find.h +75 -0
- package/deps/simdutf/src/generic/utf16/change_endianness.h +24 -0
- package/deps/simdutf/src/generic/utf16/count_code_points_bytemask.h +58 -0
- package/deps/simdutf/src/generic/utf16/to_well_formed.h +93 -0
- package/deps/simdutf/src/generic/utf16/utf32_length_from_utf16.h +15 -0
- package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16.h +35 -0
- package/deps/simdutf/src/generic/utf16/utf8_length_from_utf16_bytemask.h +199 -0
- package/deps/simdutf/src/generic/utf16.h +73 -0
- package/deps/simdutf/src/generic/utf32.h +136 -0
- package/deps/simdutf/src/generic/utf8/utf16_length_from_utf8_bytemask.h +53 -0
- package/deps/simdutf/src/generic/utf8.h +92 -0
- package/deps/simdutf/src/generic/utf8_to_latin1/utf8_to_latin1.h +316 -0
- package/deps/simdutf/src/generic/utf8_to_latin1/valid_utf8_to_latin1.h +78 -0
- package/deps/simdutf/src/generic/utf8_to_utf16/utf8_to_utf16.h +332 -0
- package/deps/simdutf/src/generic/utf8_to_utf16/valid_utf8_to_utf16.h +74 -0
- package/deps/simdutf/src/generic/utf8_to_utf32/utf8_to_utf32.h +318 -0
- package/deps/simdutf/src/generic/utf8_to_utf32/valid_utf8_to_utf32.h +42 -0
- package/deps/simdutf/src/generic/utf8_validation/utf8_lookup4_algorithm.h +223 -0
- package/deps/simdutf/src/generic/utf8_validation/utf8_validator.h +84 -0
- package/deps/simdutf/src/generic/validate_utf16.h +164 -0
- package/deps/simdutf/src/generic/validate_utf32.h +99 -0
- package/deps/simdutf/src/haswell/avx2_base64.cpp +837 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf16.cpp +28 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf32.cpp +20 -0
- package/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf8.cpp +83 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_latin1.cpp +83 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf32.cpp +210 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf8.cpp +602 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_latin1.cpp +116 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf16.cpp +164 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf8.cpp +569 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_latin1.cpp +60 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf16.cpp +195 -0
- package/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf32.cpp +135 -0
- package/deps/simdutf/src/haswell/avx2_utf16fix.cpp +173 -0
- package/deps/simdutf/src/haswell/avx2_validate_utf16.cpp +17 -0
- package/deps/simdutf/src/haswell/implementation.cpp +1447 -0
- package/deps/simdutf/src/icelake/icelake_ascii_validation.inl.cpp +19 -0
- package/deps/simdutf/src/icelake/icelake_base64.inl.cpp +630 -0
- package/deps/simdutf/src/icelake/icelake_common.inl.cpp +37 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf16.inl.cpp +36 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf32.inl.cpp +23 -0
- package/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf8.inl.cpp +107 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_latin1.inl.cpp +103 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf32.inl.cpp +136 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf8.inl.cpp +206 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_latin1.inl.cpp +74 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf16.inl.cpp +338 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf8.inl.cpp +574 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf8_to_latin1.inl.cpp +104 -0
- package/deps/simdutf/src/icelake/icelake_convert_utf8_to_utf16.inl.cpp +75 -0
- package/deps/simdutf/src/icelake/icelake_convert_valid_utf8_to_latin1.inl.cpp +69 -0
- package/deps/simdutf/src/icelake/icelake_find.inl.cpp +146 -0
- package/deps/simdutf/src/icelake/icelake_from_utf8.inl.cpp +266 -0
- package/deps/simdutf/src/icelake/icelake_from_valid_utf8.inl.cpp +136 -0
- package/deps/simdutf/src/icelake/icelake_macros.inl.cpp +143 -0
- package/deps/simdutf/src/icelake/icelake_utf16fix.cpp +138 -0
- package/deps/simdutf/src/icelake/icelake_utf32_validation.inl.cpp +63 -0
- package/deps/simdutf/src/icelake/icelake_utf8_common.inl.cpp +753 -0
- package/deps/simdutf/src/icelake/icelake_utf8_length_from_utf16.inl.cpp +269 -0
- package/deps/simdutf/src/icelake/icelake_utf8_validation.inl.cpp +116 -0
- package/deps/simdutf/src/icelake/implementation.cpp +1903 -0
- package/deps/simdutf/src/implementation.cpp +2526 -0
- package/deps/simdutf/src/lasx/implementation.cpp +1531 -0
- package/deps/simdutf/src/lasx/lasx_base64.cpp +695 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf16.cpp +76 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf32.cpp +55 -0
- package/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf8.cpp +65 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_latin1.cpp +64 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf32.cpp +183 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf8.cpp +550 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_latin1.cpp +73 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf16.cpp +218 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf8.cpp +589 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_latin1.cpp +72 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf16.cpp +296 -0
- package/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf32.cpp +190 -0
- package/deps/simdutf/src/lasx/lasx_find.cpp +64 -0
- package/deps/simdutf/src/lasx/lasx_validate_utf16.cpp +13 -0
- package/deps/simdutf/src/lasx/lasx_validate_utf32le.cpp +84 -0
- package/deps/simdutf/src/lsx/implementation.cpp +1417 -0
- package/deps/simdutf/src/lsx/lsx_base64.cpp +675 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf16.cpp +39 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf32.cpp +27 -0
- package/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf8.cpp +56 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_latin1.cpp +64 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf32.cpp +133 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf8.cpp +518 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_latin1.cpp +66 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf16.cpp +155 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf8.cpp +459 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_latin1.cpp +75 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf16.cpp +291 -0
- package/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf32.cpp +179 -0
- package/deps/simdutf/src/lsx/lsx_find.cpp +60 -0
- package/deps/simdutf/src/lsx/lsx_validate_utf16.cpp +13 -0
- package/deps/simdutf/src/lsx/lsx_validate_utf32le.cpp +68 -0
- package/deps/simdutf/src/ppc64/implementation.cpp +992 -0
- package/deps/simdutf/src/ppc64/ppc64_base64.cpp +480 -0
- package/deps/simdutf/src/ppc64/ppc64_base64_internal_tests.cpp +401 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf16.cpp +12 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf32.cpp +12 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf8.cpp +149 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_latin1.cpp +67 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf32.cpp +87 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf8.cpp +296 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_latin1.cpp +57 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf16.cpp +117 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf8.cpp +166 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_latin1.cpp +69 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf16.cpp +211 -0
- package/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf32.cpp +153 -0
- package/deps/simdutf/src/ppc64/ppc64_utf16_to_utf8_tables.h +1011 -0
- package/deps/simdutf/src/ppc64/ppc64_utf8_length_from_latin1.cpp +37 -0
- package/deps/simdutf/src/ppc64/ppc64_validate_utf16.cpp +19 -0
- package/deps/simdutf/src/ppc64/templates.cpp +91 -0
- package/deps/simdutf/src/rvv/implementation.cpp +138 -0
- package/deps/simdutf/src/rvv/rvv_find.cpp +27 -0
- package/deps/simdutf/src/rvv/rvv_helpers.inl.cpp +23 -0
- package/deps/simdutf/src/rvv/rvv_latin1_to.inl.cpp +71 -0
- package/deps/simdutf/src/rvv/rvv_length_from.inl.cpp +164 -0
- package/deps/simdutf/src/rvv/rvv_utf16_to.inl.cpp +399 -0
- package/deps/simdutf/src/rvv/rvv_utf16fix.cpp +110 -0
- package/deps/simdutf/src/rvv/rvv_utf32_to.inl.cpp +307 -0
- package/deps/simdutf/src/rvv/rvv_utf8_to.inl.cpp +435 -0
- package/deps/simdutf/src/rvv/rvv_validate.inl.cpp +275 -0
- package/deps/simdutf/src/simdutf/arm64/begin.h +2 -0
- package/deps/simdutf/src/simdutf/arm64/bitmanipulation.h +34 -0
- package/deps/simdutf/src/simdutf/arm64/end.h +2 -0
- package/deps/simdutf/src/simdutf/arm64/implementation.h +307 -0
- package/deps/simdutf/src/simdutf/arm64/intrinsics.h +10 -0
- package/deps/simdutf/src/simdutf/arm64/simd.h +547 -0
- package/deps/simdutf/src/simdutf/arm64/simd16-inl.h +403 -0
- package/deps/simdutf/src/simdutf/arm64/simd32-inl.h +129 -0
- package/deps/simdutf/src/simdutf/arm64/simd64-inl.h +28 -0
- package/deps/simdutf/src/simdutf/arm64.h +43 -0
- package/deps/simdutf/src/simdutf/fallback/begin.h +1 -0
- package/deps/simdutf/src/simdutf/fallback/bitmanipulation.h +13 -0
- package/deps/simdutf/src/simdutf/fallback/end.h +1 -0
- package/deps/simdutf/src/simdutf/fallback/implementation.h +331 -0
- package/deps/simdutf/src/simdutf/fallback.h +42 -0
- package/deps/simdutf/src/simdutf/haswell/begin.h +15 -0
- package/deps/simdutf/src/simdutf/haswell/bitmanipulation.h +35 -0
- package/deps/simdutf/src/simdutf/haswell/end.h +13 -0
- package/deps/simdutf/src/simdutf/haswell/implementation.h +338 -0
- package/deps/simdutf/src/simdutf/haswell/intrinsics.h +67 -0
- package/deps/simdutf/src/simdutf/haswell/simd.h +363 -0
- package/deps/simdutf/src/simdutf/haswell/simd16-inl.h +261 -0
- package/deps/simdutf/src/simdutf/haswell/simd32-inl.h +111 -0
- package/deps/simdutf/src/simdutf/haswell/simd64-inl.h +34 -0
- package/deps/simdutf/src/simdutf/haswell.h +63 -0
- package/deps/simdutf/src/simdutf/icelake/begin.h +14 -0
- package/deps/simdutf/src/simdutf/icelake/bitmanipulation.h +44 -0
- package/deps/simdutf/src/simdutf/icelake/end.h +12 -0
- package/deps/simdutf/src/simdutf/icelake/implementation.h +346 -0
- package/deps/simdutf/src/simdutf/icelake/intrinsics.h +138 -0
- package/deps/simdutf/src/simdutf/icelake/simd.h +17 -0
- package/deps/simdutf/src/simdutf/icelake/simd16-inl.h +90 -0
- package/deps/simdutf/src/simdutf/icelake/simd32-inl.h +47 -0
- package/deps/simdutf/src/simdutf/icelake.h +81 -0
- package/deps/simdutf/src/simdutf/lasx/begin.h +8 -0
- package/deps/simdutf/src/simdutf/lasx/bitmanipulation.h +25 -0
- package/deps/simdutf/src/simdutf/lasx/end.h +8 -0
- package/deps/simdutf/src/simdutf/lasx/implementation.h +310 -0
- package/deps/simdutf/src/simdutf/lasx/intrinsics.h +319 -0
- package/deps/simdutf/src/simdutf/lasx/simd.h +551 -0
- package/deps/simdutf/src/simdutf/lasx/simd16-inl.h +234 -0
- package/deps/simdutf/src/simdutf/lasx/simd32-inl.h +74 -0
- package/deps/simdutf/src/simdutf/lasx/simd64-inl.h +52 -0
- package/deps/simdutf/src/simdutf/lasx.h +49 -0
- package/deps/simdutf/src/simdutf/lsx/begin.h +2 -0
- package/deps/simdutf/src/simdutf/lsx/bitmanipulation.h +25 -0
- package/deps/simdutf/src/simdutf/lsx/end.h +2 -0
- package/deps/simdutf/src/simdutf/lsx/implementation.h +309 -0
- package/deps/simdutf/src/simdutf/lsx/intrinsics.h +196 -0
- package/deps/simdutf/src/simdutf/lsx/simd.h +421 -0
- package/deps/simdutf/src/simdutf/lsx/simd16-inl.h +242 -0
- package/deps/simdutf/src/simdutf/lsx/simd32-inl.h +69 -0
- package/deps/simdutf/src/simdutf/lsx/simd64-inl.h +50 -0
- package/deps/simdutf/src/simdutf/lsx.h +52 -0
- package/deps/simdutf/src/simdutf/ppc64/begin.h +1 -0
- package/deps/simdutf/src/simdutf/ppc64/bitmanipulation.h +29 -0
- package/deps/simdutf/src/simdutf/ppc64/end.h +1 -0
- package/deps/simdutf/src/simdutf/ppc64/implementation.h +348 -0
- package/deps/simdutf/src/simdutf/ppc64/intrinsics.h +19 -0
- package/deps/simdutf/src/simdutf/ppc64/simd.h +177 -0
- package/deps/simdutf/src/simdutf/ppc64/simd16-inl.h +327 -0
- package/deps/simdutf/src/simdutf/ppc64/simd32-inl.h +247 -0
- package/deps/simdutf/src/simdutf/ppc64/simd8-inl.h +618 -0
- package/deps/simdutf/src/simdutf/ppc64.h +40 -0
- package/deps/simdutf/src/simdutf/rvv/begin.h +7 -0
- package/deps/simdutf/src/simdutf/rvv/end.h +7 -0
- package/deps/simdutf/src/simdutf/rvv/implementation.h +321 -0
- package/deps/simdutf/src/simdutf/rvv/intrinsics.h +131 -0
- package/deps/simdutf/src/simdutf/rvv.h +41 -0
- package/deps/simdutf/src/simdutf/westmere/begin.h +8 -0
- package/deps/simdutf/src/simdutf/westmere/bitmanipulation.h +37 -0
- package/deps/simdutf/src/simdutf/westmere/end.h +8 -0
- package/deps/simdutf/src/simdutf/westmere/implementation.h +338 -0
- package/deps/simdutf/src/simdutf/westmere/intrinsics.h +38 -0
- package/deps/simdutf/src/simdutf/westmere/simd.h +379 -0
- package/deps/simdutf/src/simdutf/westmere/simd16-inl.h +242 -0
- package/deps/simdutf/src/simdutf/westmere/simd32-inl.h +151 -0
- package/deps/simdutf/src/simdutf/westmere/simd64-inl.h +33 -0
- package/deps/simdutf/src/simdutf/westmere.h +59 -0
- package/deps/simdutf/src/simdutf.cpp +152 -0
- package/deps/simdutf/src/simdutf_c.cpp +525 -0
- package/deps/simdutf/src/tables/utf16_to_utf8_tables.h +768 -0
- package/deps/simdutf/src/tables/utf32_to_utf16_tables.h +53 -0
- package/deps/simdutf/src/tables/utf8_to_utf16_tables.h +826 -0
- package/deps/simdutf/src/westmere/implementation.cpp +1479 -0
- package/deps/simdutf/src/westmere/internal/loader.cpp +7 -0
- package/deps/simdutf/src/westmere/internal/write_v_u16_11bits_to_utf8.cpp +66 -0
- package/deps/simdutf/src/westmere/sse_base64.cpp +672 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf16.cpp +21 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf32.cpp +31 -0
- package/deps/simdutf/src/westmere/sse_convert_latin1_to_utf8.cpp +71 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_latin1.cpp +70 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf32.cpp +206 -0
- package/deps/simdutf/src/westmere/sse_convert_utf16_to_utf8.cpp +504 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_latin1.cpp +82 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf16.cpp +209 -0
- package/deps/simdutf/src/westmere/sse_convert_utf32_to_utf8.cpp +589 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_latin1.cpp +58 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf16.cpp +197 -0
- package/deps/simdutf/src/westmere/sse_convert_utf8_to_utf32.cpp +141 -0
- package/deps/simdutf/src/westmere/sse_utf16fix.cpp +82 -0
- package/deps/simdutf/src/westmere/sse_validate_utf16.cpp +17 -0
- package/deps/simdutf/tests/CMakeLists.txt +483 -0
- package/deps/simdutf/tests/atomic_base64_tests.cpp +2845 -0
- package/deps/simdutf/tests/base64_tests.cpp +3617 -0
- package/deps/simdutf/tests/basic_fuzzer.cpp +805 -0
- package/deps/simdutf/tests/bele_tests.cpp +182 -0
- package/deps/simdutf/tests/constexpr_base64_tests.cpp +387 -0
- package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +52 -0
- package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +80 -0
- package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +66 -0
- package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +120 -0
- package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +203 -0
- package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +276 -0
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +109 -0
- package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +136 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +193 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +381 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +259 -0
- package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +266 -0
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +148 -0
- package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +176 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +213 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +318 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +343 -0
- package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +271 -0
- package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +111 -0
- package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +96 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +148 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +192 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +166 -0
- package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +215 -0
- package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +181 -0
- package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +261 -0
- package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +516 -0
- package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +579 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +412 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +480 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +671 -0
- package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +455 -0
- package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +1204 -0
- package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +337 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +37 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +97 -0
- package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +126 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +71 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +122 -0
- package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +244 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +49 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +92 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +114 -0
- package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +109 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +84 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +124 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +221 -0
- package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +155 -0
- package/deps/simdutf/tests/count_utf16be.cpp +64 -0
- package/deps/simdutf/tests/count_utf16le.cpp +61 -0
- package/deps/simdutf/tests/count_utf8.cpp +87 -0
- package/deps/simdutf/tests/detect_encodings_tests.cpp +312 -0
- package/deps/simdutf/tests/embed/valid_utf8.txt +1 -0
- package/deps/simdutf/tests/embed_tests.cpp +22 -0
- package/deps/simdutf/tests/find_tests.cpp +77 -0
- package/deps/simdutf/tests/fixed_string_tests.cpp +153 -0
- package/deps/simdutf/tests/helpers/CMakeLists.txt +25 -0
- package/deps/simdutf/tests/helpers/compiletime_conversions.h +222 -0
- package/deps/simdutf/tests/helpers/fixed_string.h +267 -0
- package/deps/simdutf/tests/helpers/random_int.cpp +30 -0
- package/deps/simdutf/tests/helpers/random_int.h +39 -0
- package/deps/simdutf/tests/helpers/random_utf16.cpp +123 -0
- package/deps/simdutf/tests/helpers/random_utf16.h +52 -0
- package/deps/simdutf/tests/helpers/random_utf32.cpp +41 -0
- package/deps/simdutf/tests/helpers/random_utf32.h +40 -0
- package/deps/simdutf/tests/helpers/random_utf8.cpp +93 -0
- package/deps/simdutf/tests/helpers/random_utf8.h +36 -0
- package/deps/simdutf/tests/helpers/test.cpp +231 -0
- package/deps/simdutf/tests/helpers/test.h +193 -0
- package/deps/simdutf/tests/helpers/transcode_test_base.cpp +1257 -0
- package/deps/simdutf/tests/helpers/transcode_test_base.h +683 -0
- package/deps/simdutf/tests/helpers/utf16.h +27 -0
- package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +43 -0
- package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +47 -0
- package/deps/simdutf/tests/internal_tests.cpp +27 -0
- package/deps/simdutf/tests/null_safety_tests.cpp +94 -0
- package/deps/simdutf/tests/random_fuzzer.cpp +779 -0
- package/deps/simdutf/tests/readme_tests.cpp +274 -0
- package/deps/simdutf/tests/reference/CMakeLists.txt +23 -0
- package/deps/simdutf/tests/reference/decode_utf16.h +81 -0
- package/deps/simdutf/tests/reference/decode_utf32.h +47 -0
- package/deps/simdutf/tests/reference/encode_latin1.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_latin1.h +32 -0
- package/deps/simdutf/tests/reference/encode_utf16.cpp +49 -0
- package/deps/simdutf/tests/reference/encode_utf16.h +20 -0
- package/deps/simdutf/tests/reference/encode_utf32.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_utf32.h +36 -0
- package/deps/simdutf/tests/reference/encode_utf8.cpp +1 -0
- package/deps/simdutf/tests/reference/encode_utf8.h +40 -0
- package/deps/simdutf/tests/reference/validate_utf16.cpp +60 -0
- package/deps/simdutf/tests/reference/validate_utf16.h +14 -0
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +35 -0
- package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +13 -0
- package/deps/simdutf/tests/reference/validate_utf32.cpp +27 -0
- package/deps/simdutf/tests/reference/validate_utf32.h +12 -0
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +27 -0
- package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +12 -0
- package/deps/simdutf/tests/reference/validate_utf8.cpp +82 -0
- package/deps/simdutf/tests/reference/validate_utf8.h +11 -0
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +43 -0
- package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +12 -0
- package/deps/simdutf/tests/select_implementation.cpp +43 -0
- package/deps/simdutf/tests/simdutf_c_tests.cpp +244 -0
- package/deps/simdutf/tests/span_tests.cpp +401 -0
- package/deps/simdutf/tests/special_tests.cpp +559 -0
- package/deps/simdutf/tests/straight_c_test.c +187 -0
- package/deps/simdutf/tests/text_encoding_tests.cpp +77 -0
- package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +377 -0
- package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +202 -0
- package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +165 -0
- package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +77 -0
- package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +175 -0
- package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +188 -0
- package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +268 -0
- package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +274 -0
- package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +92 -0
- package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +114 -0
- package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +178 -0
- package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +88 -0
- package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +33 -0
- package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +228 -0
- package/deps/simdutf/tools/CMakeLists.txt +85 -0
- package/deps/simdutf/tools/fastbase64.cpp +250 -0
- package/deps/simdutf/tools/sutf.cpp +556 -0
- package/deps/simdutf/tools/sutf.h +40 -0
- package/lib/commonjs/blake3.js +2 -1
- package/lib/commonjs/blake3.js.map +1 -1
- package/lib/commonjs/diffie-hellman.js +5 -4
- package/lib/commonjs/diffie-hellman.js.map +1 -1
- package/lib/commonjs/ecdh.js +5 -4
- package/lib/commonjs/ecdh.js.map +1 -1
- package/lib/module/blake3.js +2 -1
- package/lib/module/blake3.js.map +1 -1
- package/lib/module/diffie-hellman.js +5 -4
- package/lib/module/diffie-hellman.js.map +1 -1
- package/lib/module/ecdh.js +5 -4
- package/lib/module/ecdh.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/typescript/blake3.d.ts.map +1 -1
- package/lib/typescript/diffie-hellman.d.ts.map +1 -1
- package/lib/typescript/ecdh.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/blake3.ts +2 -1
- package/src/diffie-hellman.ts +5 -7
- package/src/ecdh.ts +5 -8
|
@@ -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"
|