wasmtime 9.0.4 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1933) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +184 -101
  3. data/ext/Cargo.toml +6 -6
  4. data/ext/build.rs +2 -2
  5. data/ext/cargo-vendor/cranelift-bforest-0.97.1/.cargo-checksum.json +1 -0
  6. data/ext/cargo-vendor/cranelift-bforest-0.97.1/Cargo.toml +31 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.97.1/.cargo-checksum.json +1 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.97.1/Cargo.toml +158 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.97.1/benches/x64-evex-encoding.rs +52 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/ir/trapcode.rs +144 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/abi.rs +1294 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst/emit.rs +3684 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst/emit_tests.rs +7895 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst/imms.rs +1210 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst/mod.rs +2966 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst.isle +4037 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/lower/isle.rs +816 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/lower.isle +2906 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/mod.rs +238 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/mod.rs +424 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/abi.rs +825 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/args.rs +1812 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/emit.rs +3008 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/emit_tests.rs +2338 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/encode.rs +262 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/imms.rs +250 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/mod.rs +1963 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/regs.rs +223 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/unwind/systemv.rs +174 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/vector.rs +669 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst.isle +2915 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst_vector.isle +760 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/lower/isle.rs +553 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/lower.isle +1409 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/mod.rs +216 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/abi.rs +957 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/inst/emit.rs +3707 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/inst/emit_tests.rs +13409 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/inst/mod.rs +3426 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/inst.isle +5046 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/lower.isle +3991 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/mod.rs +213 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/abi.rs +985 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/encoding/evex.rs +749 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/encoding/rex.rs +588 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/encoding/vex.rs +492 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst/args.rs +2193 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst/emit.rs +4090 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst/emit_tests.rs +5674 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst/mod.rs +2667 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst.isle +5104 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/lower/isle.rs +1148 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/lower.isle +4481 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/lower.rs +328 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/mod.rs +251 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isle_prelude.rs +862 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/abi.rs +2455 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/buffer.rs +2277 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/compile.rs +92 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/isle.rs +827 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/lower.rs +1388 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/mod.rs +549 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/reg.rs +537 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/vcode.rs +1580 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/prelude.isle +578 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/prelude_lower.isle +1012 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/settings.rs +600 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/verifier/mod.rs +1884 -0
  69. data/ext/cargo-vendor/cranelift-codegen-meta-0.97.1/.cargo-checksum.json +1 -0
  70. data/ext/cargo-vendor/cranelift-codegen-meta-0.97.1/Cargo.toml +23 -0
  71. data/ext/cargo-vendor/cranelift-codegen-meta-0.97.1/src/isa/x86.rs +444 -0
  72. data/ext/cargo-vendor/cranelift-codegen-meta-0.97.1/src/shared/settings.rs +348 -0
  73. data/ext/cargo-vendor/cranelift-codegen-shared-0.97.1/.cargo-checksum.json +1 -0
  74. data/ext/cargo-vendor/cranelift-codegen-shared-0.97.1/Cargo.toml +22 -0
  75. data/ext/cargo-vendor/cranelift-control-0.97.1/.cargo-checksum.json +1 -0
  76. data/ext/cargo-vendor/cranelift-control-0.97.1/Cargo.toml +30 -0
  77. data/ext/cargo-vendor/cranelift-control-0.97.1/src/chaos.rs +125 -0
  78. data/ext/cargo-vendor/cranelift-control-0.97.1/src/lib.rs +45 -0
  79. data/ext/cargo-vendor/cranelift-control-0.97.1/src/zero_sized.rs +53 -0
  80. data/ext/cargo-vendor/cranelift-entity-0.97.1/.cargo-checksum.json +1 -0
  81. data/ext/cargo-vendor/cranelift-entity-0.97.1/Cargo.toml +35 -0
  82. data/ext/cargo-vendor/cranelift-entity-0.97.1/src/list.rs +955 -0
  83. data/ext/cargo-vendor/cranelift-frontend-0.97.1/.cargo-checksum.json +1 -0
  84. data/ext/cargo-vendor/cranelift-frontend-0.97.1/Cargo.toml +53 -0
  85. data/ext/cargo-vendor/cranelift-isle-0.97.1/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/cranelift-isle-0.97.1/Cargo.toml +37 -0
  87. data/ext/cargo-vendor/cranelift-native-0.97.1/.cargo-checksum.json +1 -0
  88. data/ext/cargo-vendor/cranelift-native-0.97.1/Cargo.toml +38 -0
  89. data/ext/cargo-vendor/cranelift-native-0.97.1/src/lib.rs +215 -0
  90. data/ext/cargo-vendor/cranelift-wasm-0.97.1/.cargo-checksum.json +1 -0
  91. data/ext/cargo-vendor/cranelift-wasm-0.97.1/Cargo.toml +85 -0
  92. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/code_translator.rs +3538 -0
  93. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/environ/dummy.rs +924 -0
  94. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/environ/spec.rs +834 -0
  95. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/func_translator.rs +440 -0
  96. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/sections_translator.rs +417 -0
  97. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/translation_utils.rs +99 -0
  98. data/ext/cargo-vendor/encoding_rs-0.8.32/.cargo-checksum.json +1 -0
  99. data/ext/cargo-vendor/encoding_rs-0.8.32/CONTRIBUTING.md +48 -0
  100. data/ext/cargo-vendor/encoding_rs-0.8.32/COPYRIGHT +17 -0
  101. data/ext/cargo-vendor/encoding_rs-0.8.32/Cargo.toml +84 -0
  102. data/ext/cargo-vendor/encoding_rs-0.8.32/Ideas.md +106 -0
  103. data/ext/cargo-vendor/encoding_rs-0.8.32/LICENSE-APACHE +202 -0
  104. data/ext/cargo-vendor/encoding_rs-0.8.32/LICENSE-MIT +25 -0
  105. data/ext/cargo-vendor/encoding_rs-0.8.32/LICENSE-WHATWG +26 -0
  106. data/ext/cargo-vendor/encoding_rs-0.8.32/README.md +827 -0
  107. data/ext/cargo-vendor/encoding_rs-0.8.32/ci/miri.sh +14 -0
  108. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/Big5.txt +16 -0
  109. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/EUC-JP.txt +12 -0
  110. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/EUC-KR.txt +10 -0
  111. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/GBK.txt +16 -0
  112. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/IBM866.txt +8 -0
  113. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-2022-JP.txt +10 -0
  114. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-10.txt +8 -0
  115. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-13.txt +8 -0
  116. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-14.txt +8 -0
  117. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-15.txt +7 -0
  118. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-16.txt +8 -0
  119. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-2.txt +6 -0
  120. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-3.txt +6 -0
  121. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-4.txt +6 -0
  122. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-5.txt +6 -0
  123. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-6.txt +7 -0
  124. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-7.txt +11 -0
  125. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-8-I.txt +9 -0
  126. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-8.txt +9 -0
  127. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/KOI8-R.txt +6 -0
  128. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/KOI8-U.txt +6 -0
  129. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/Shift_JIS.txt +8 -0
  130. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/UTF-16BE.txt +8 -0
  131. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/UTF-16LE.txt +8 -0
  132. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/UTF-8.txt +5 -0
  133. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/gb18030.txt +9 -0
  134. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/macintosh.txt +7 -0
  135. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/replacement.txt +10 -0
  136. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1250.txt +6 -0
  137. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1251.txt +6 -0
  138. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1252.txt +7 -0
  139. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1253.txt +8 -0
  140. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1254.txt +7 -0
  141. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1255.txt +8 -0
  142. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1256.txt +6 -0
  143. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1257.txt +7 -0
  144. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1258.txt +11 -0
  145. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-874.txt +7 -0
  146. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/x-mac-cyrillic.txt +6 -0
  147. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/x-user-defined.txt +6 -0
  148. data/ext/cargo-vendor/encoding_rs-0.8.32/generate-encoding-data.py +2008 -0
  149. data/ext/cargo-vendor/encoding_rs-0.8.32/rustfmt.toml +1 -0
  150. data/ext/cargo-vendor/encoding_rs-0.8.32/src/ascii.rs +1546 -0
  151. data/ext/cargo-vendor/encoding_rs-0.8.32/src/big5.rs +427 -0
  152. data/ext/cargo-vendor/encoding_rs-0.8.32/src/data.rs +114378 -0
  153. data/ext/cargo-vendor/encoding_rs-0.8.32/src/euc_jp.rs +469 -0
  154. data/ext/cargo-vendor/encoding_rs-0.8.32/src/euc_kr.rs +442 -0
  155. data/ext/cargo-vendor/encoding_rs-0.8.32/src/gb18030.rs +767 -0
  156. data/ext/cargo-vendor/encoding_rs-0.8.32/src/handles.rs +1969 -0
  157. data/ext/cargo-vendor/encoding_rs-0.8.32/src/iso_2022_jp.rs +1068 -0
  158. data/ext/cargo-vendor/encoding_rs-0.8.32/src/lib.rs +6133 -0
  159. data/ext/cargo-vendor/encoding_rs-0.8.32/src/macros.rs +1622 -0
  160. data/ext/cargo-vendor/encoding_rs-0.8.32/src/mem.rs +3354 -0
  161. data/ext/cargo-vendor/encoding_rs-0.8.32/src/replacement.rs +104 -0
  162. data/ext/cargo-vendor/encoding_rs-0.8.32/src/shift_jis.rs +426 -0
  163. data/ext/cargo-vendor/encoding_rs-0.8.32/src/simd_funcs.rs +453 -0
  164. data/ext/cargo-vendor/encoding_rs-0.8.32/src/single_byte.rs +714 -0
  165. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/big5_in.txt +19787 -0
  166. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/big5_in_ref.txt +19787 -0
  167. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/big5_out.txt +14601 -0
  168. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/big5_out_ref.txt +14601 -0
  169. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/euc_kr_in.txt +23945 -0
  170. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/euc_kr_in_ref.txt +23945 -0
  171. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/euc_kr_out.txt +17053 -0
  172. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/euc_kr_out_ref.txt +17053 -0
  173. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/gb18030_in.txt +23945 -0
  174. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/gb18030_in_ref.txt +23945 -0
  175. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/gb18030_out.txt +23944 -0
  176. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/gb18030_out_ref.txt +23944 -0
  177. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/iso_2022_jp_in.txt +8841 -0
  178. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/iso_2022_jp_in_ref.txt +8841 -0
  179. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/iso_2022_jp_out.txt +7404 -0
  180. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/iso_2022_jp_out_ref.txt +7404 -0
  181. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0208_in.txt +8841 -0
  182. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0208_in_ref.txt +8841 -0
  183. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0208_out.txt +7341 -0
  184. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0208_out_ref.txt +7341 -0
  185. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0212_in.txt +8841 -0
  186. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0212_in_ref.txt +8841 -0
  187. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/shift_jis_in.txt +11285 -0
  188. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/shift_jis_in_ref.txt +11285 -0
  189. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/shift_jis_out.txt +7355 -0
  190. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/shift_jis_out_ref.txt +7355 -0
  191. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_labels_names.rs +242 -0
  192. data/ext/cargo-vendor/encoding_rs-0.8.32/src/testing.rs +262 -0
  193. data/ext/cargo-vendor/encoding_rs-0.8.32/src/utf_16.rs +472 -0
  194. data/ext/cargo-vendor/encoding_rs-0.8.32/src/utf_8.rs +1629 -0
  195. data/ext/cargo-vendor/encoding_rs-0.8.32/src/variant.rs +400 -0
  196. data/ext/cargo-vendor/encoding_rs-0.8.32/src/x_user_defined.rs +249 -0
  197. data/ext/cargo-vendor/equivalent-1.0.1/.cargo-checksum.json +1 -0
  198. data/ext/cargo-vendor/equivalent-1.0.1/Cargo.toml +27 -0
  199. data/ext/cargo-vendor/equivalent-1.0.1/LICENSE-APACHE +201 -0
  200. data/ext/cargo-vendor/equivalent-1.0.1/LICENSE-MIT +25 -0
  201. data/ext/cargo-vendor/equivalent-1.0.1/README.md +25 -0
  202. data/ext/cargo-vendor/equivalent-1.0.1/src/lib.rs +113 -0
  203. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/.cargo-checksum.json +1 -0
  204. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/Cargo.toml +36 -0
  205. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/run-tests.sh +12 -0
  206. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/src/lib.rs +200 -0
  207. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/tests/test.rs +323 -0
  208. data/ext/cargo-vendor/hashbrown-0.14.0/.cargo-checksum.json +1 -0
  209. data/ext/cargo-vendor/hashbrown-0.14.0/CHANGELOG.md +475 -0
  210. data/ext/cargo-vendor/hashbrown-0.14.0/Cargo.toml +131 -0
  211. data/ext/cargo-vendor/hashbrown-0.14.0/LICENSE-APACHE +201 -0
  212. data/ext/cargo-vendor/hashbrown-0.14.0/LICENSE-MIT +25 -0
  213. data/ext/cargo-vendor/hashbrown-0.14.0/README.md +125 -0
  214. data/ext/cargo-vendor/hashbrown-0.14.0/benches/bench.rs +331 -0
  215. data/ext/cargo-vendor/hashbrown-0.14.0/benches/insert_unique_unchecked.rs +32 -0
  216. data/ext/cargo-vendor/hashbrown-0.14.0/clippy.toml +1 -0
  217. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/mod.rs +6 -0
  218. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/helpers.rs +27 -0
  219. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/map.rs +731 -0
  220. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/mod.rs +4 -0
  221. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/raw.rs +231 -0
  222. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/set.rs +659 -0
  223. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rkyv/hash_map.rs +125 -0
  224. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rkyv/hash_set.rs +123 -0
  225. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rkyv/mod.rs +2 -0
  226. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/serde.rs +201 -0
  227. data/ext/cargo-vendor/hashbrown-0.14.0/src/lib.rs +165 -0
  228. data/ext/cargo-vendor/hashbrown-0.14.0/src/macros.rs +70 -0
  229. data/ext/cargo-vendor/hashbrown-0.14.0/src/map.rs +8506 -0
  230. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/alloc.rs +86 -0
  231. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/bitmask.rs +133 -0
  232. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/generic.rs +157 -0
  233. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/mod.rs +3378 -0
  234. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/neon.rs +124 -0
  235. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/sse2.rs +149 -0
  236. data/ext/cargo-vendor/hashbrown-0.14.0/src/rustc_entry.rs +630 -0
  237. data/ext/cargo-vendor/hashbrown-0.14.0/src/scopeguard.rs +72 -0
  238. data/ext/cargo-vendor/hashbrown-0.14.0/src/set.rs +2903 -0
  239. data/ext/cargo-vendor/hashbrown-0.14.0/tests/equivalent_trait.rs +53 -0
  240. data/ext/cargo-vendor/hashbrown-0.14.0/tests/hasher.rs +65 -0
  241. data/ext/cargo-vendor/hashbrown-0.14.0/tests/raw.rs +11 -0
  242. data/ext/cargo-vendor/hashbrown-0.14.0/tests/rayon.rs +535 -0
  243. data/ext/cargo-vendor/hashbrown-0.14.0/tests/serde.rs +65 -0
  244. data/ext/cargo-vendor/hashbrown-0.14.0/tests/set.rs +34 -0
  245. data/ext/cargo-vendor/indexmap-2.0.0/.cargo-checksum.json +1 -0
  246. data/ext/cargo-vendor/indexmap-2.0.0/Cargo.toml +112 -0
  247. data/ext/cargo-vendor/indexmap-2.0.0/LICENSE-APACHE +201 -0
  248. data/ext/cargo-vendor/indexmap-2.0.0/LICENSE-MIT +25 -0
  249. data/ext/cargo-vendor/indexmap-2.0.0/README.md +55 -0
  250. data/ext/cargo-vendor/indexmap-2.0.0/RELEASES.md +424 -0
  251. data/ext/cargo-vendor/indexmap-2.0.0/benches/bench.rs +763 -0
  252. data/ext/cargo-vendor/indexmap-2.0.0/benches/faststring.rs +185 -0
  253. data/ext/cargo-vendor/indexmap-2.0.0/src/arbitrary.rs +77 -0
  254. data/ext/cargo-vendor/indexmap-2.0.0/src/lib.rs +278 -0
  255. data/ext/cargo-vendor/indexmap-2.0.0/src/macros.rs +178 -0
  256. data/ext/cargo-vendor/indexmap-2.0.0/src/map/core/raw.rs +217 -0
  257. data/ext/cargo-vendor/indexmap-2.0.0/src/map/core.rs +742 -0
  258. data/ext/cargo-vendor/indexmap-2.0.0/src/map/iter.rs +541 -0
  259. data/ext/cargo-vendor/indexmap-2.0.0/src/map/serde_seq.rs +138 -0
  260. data/ext/cargo-vendor/indexmap-2.0.0/src/map/slice.rs +471 -0
  261. data/ext/cargo-vendor/indexmap-2.0.0/src/map/tests.rs +449 -0
  262. data/ext/cargo-vendor/indexmap-2.0.0/src/map.rs +1223 -0
  263. data/ext/cargo-vendor/indexmap-2.0.0/src/mutable_keys.rs +91 -0
  264. data/ext/cargo-vendor/indexmap-2.0.0/src/rayon/map.rs +679 -0
  265. data/ext/cargo-vendor/indexmap-2.0.0/src/rayon/mod.rs +27 -0
  266. data/ext/cargo-vendor/indexmap-2.0.0/src/rayon/set.rs +774 -0
  267. data/ext/cargo-vendor/indexmap-2.0.0/src/rustc.rs +158 -0
  268. data/ext/cargo-vendor/indexmap-2.0.0/src/serde.rs +151 -0
  269. data/ext/cargo-vendor/indexmap-2.0.0/src/set/iter.rs +543 -0
  270. data/ext/cargo-vendor/indexmap-2.0.0/src/set/slice.rs +278 -0
  271. data/ext/cargo-vendor/indexmap-2.0.0/src/set/tests.rs +545 -0
  272. data/ext/cargo-vendor/indexmap-2.0.0/src/set.rs +1011 -0
  273. data/ext/cargo-vendor/indexmap-2.0.0/src/util.rs +53 -0
  274. data/ext/cargo-vendor/indexmap-2.0.0/tests/equivalent_trait.rs +53 -0
  275. data/ext/cargo-vendor/indexmap-2.0.0/tests/macros_full_path.rs +19 -0
  276. data/ext/cargo-vendor/indexmap-2.0.0/tests/quick.rs +579 -0
  277. data/ext/cargo-vendor/indexmap-2.0.0/tests/tests.rs +28 -0
  278. data/ext/cargo-vendor/regalloc2-0.9.2/.cargo-checksum.json +1 -0
  279. data/ext/cargo-vendor/regalloc2-0.9.2/Cargo.toml +72 -0
  280. data/ext/cargo-vendor/regalloc2-0.9.2/deny.toml +28 -0
  281. data/ext/cargo-vendor/regalloc2-0.9.2/src/checker.rs +1089 -0
  282. data/ext/cargo-vendor/regalloc2-0.9.2/src/fuzzing/func.rs +702 -0
  283. data/ext/cargo-vendor/regalloc2-0.9.2/src/index.rs +268 -0
  284. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/data_structures.rs +857 -0
  285. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/liveranges.rs +961 -0
  286. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/merge.rs +368 -0
  287. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/mod.rs +150 -0
  288. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/moves.rs +1017 -0
  289. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/process.rs +1307 -0
  290. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/requirement.rs +174 -0
  291. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/spill.rs +165 -0
  292. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/stackmap.rs +79 -0
  293. data/ext/cargo-vendor/regalloc2-0.9.2/src/lib.rs +1526 -0
  294. data/ext/cargo-vendor/regalloc2-0.9.2/src/moves.rs +439 -0
  295. data/ext/cargo-vendor/regalloc2-0.9.2/src/serialize.rs +311 -0
  296. data/ext/cargo-vendor/semver-1.0.18/.cargo-checksum.json +1 -0
  297. data/ext/cargo-vendor/semver-1.0.18/Cargo.toml +47 -0
  298. data/ext/cargo-vendor/semver-1.0.18/LICENSE-APACHE +176 -0
  299. data/ext/cargo-vendor/semver-1.0.18/LICENSE-MIT +23 -0
  300. data/ext/cargo-vendor/semver-1.0.18/README.md +84 -0
  301. data/ext/cargo-vendor/semver-1.0.18/benches/parse.rs +24 -0
  302. data/ext/cargo-vendor/semver-1.0.18/build.rs +75 -0
  303. data/ext/cargo-vendor/semver-1.0.18/src/backport.rs +23 -0
  304. data/ext/cargo-vendor/semver-1.0.18/src/display.rs +165 -0
  305. data/ext/cargo-vendor/semver-1.0.18/src/error.rs +126 -0
  306. data/ext/cargo-vendor/semver-1.0.18/src/eval.rs +181 -0
  307. data/ext/cargo-vendor/semver-1.0.18/src/identifier.rs +422 -0
  308. data/ext/cargo-vendor/semver-1.0.18/src/impls.rs +156 -0
  309. data/ext/cargo-vendor/semver-1.0.18/src/lib.rs +533 -0
  310. data/ext/cargo-vendor/semver-1.0.18/src/parse.rs +409 -0
  311. data/ext/cargo-vendor/semver-1.0.18/src/serde.rs +109 -0
  312. data/ext/cargo-vendor/semver-1.0.18/tests/node/mod.rs +43 -0
  313. data/ext/cargo-vendor/semver-1.0.18/tests/test_autotrait.rs +14 -0
  314. data/ext/cargo-vendor/semver-1.0.18/tests/test_identifier.rs +45 -0
  315. data/ext/cargo-vendor/semver-1.0.18/tests/test_version.rs +238 -0
  316. data/ext/cargo-vendor/semver-1.0.18/tests/test_version_req.rs +443 -0
  317. data/ext/cargo-vendor/semver-1.0.18/tests/util/mod.rs +39 -0
  318. data/ext/cargo-vendor/sptr-0.3.2/.cargo-checksum.json +1 -0
  319. data/ext/cargo-vendor/sptr-0.3.2/Cargo.toml +28 -0
  320. data/ext/cargo-vendor/sptr-0.3.2/README.md +73 -0
  321. data/ext/cargo-vendor/sptr-0.3.2/src/func.rs +83 -0
  322. data/ext/cargo-vendor/sptr-0.3.2/src/int.rs +364 -0
  323. data/ext/cargo-vendor/sptr-0.3.2/src/lib.rs +756 -0
  324. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.0/.cargo-checksum.json +1 -0
  325. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.0/Cargo.toml +90 -0
  326. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.0/src/dir.rs +464 -0
  327. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.0/src/lib.rs +141 -0
  328. data/ext/cargo-vendor/wasi-common-10.0.0/.cargo-checksum.json +1 -0
  329. data/ext/cargo-vendor/wasi-common-10.0.0/Cargo.toml +87 -0
  330. data/ext/cargo-vendor/wasi-common-10.0.0/src/ctx.rs +128 -0
  331. data/ext/cargo-vendor/wasi-common-10.0.0/src/file.rs +262 -0
  332. data/ext/cargo-vendor/wasi-common-10.0.0/src/snapshots/preview_1.rs +1490 -0
  333. data/ext/cargo-vendor/wasm-encoder-0.29.0/.cargo-checksum.json +1 -0
  334. data/ext/cargo-vendor/wasm-encoder-0.29.0/Cargo.toml +33 -0
  335. data/ext/cargo-vendor/wasm-encoder-0.29.0/README.md +80 -0
  336. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/aliases.rs +160 -0
  337. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/canonicals.rs +159 -0
  338. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/components.rs +29 -0
  339. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/exports.rs +127 -0
  340. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/imports.rs +200 -0
  341. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/instances.rs +200 -0
  342. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/modules.rs +29 -0
  343. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/names.rs +149 -0
  344. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/start.rs +52 -0
  345. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/types.rs +759 -0
  346. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component.rs +160 -0
  347. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/code.rs +2913 -0
  348. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/custom.rs +55 -0
  349. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/data.rs +185 -0
  350. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/dump.rs +627 -0
  351. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/elements.rs +224 -0
  352. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/exports.rs +85 -0
  353. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/functions.rs +63 -0
  354. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/globals.rs +90 -0
  355. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/imports.rs +142 -0
  356. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/linking.rs +263 -0
  357. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/memories.rs +99 -0
  358. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/names.rs +265 -0
  359. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/producers.rs +180 -0
  360. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/start.rs +39 -0
  361. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/tables.rs +104 -0
  362. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/tags.rs +85 -0
  363. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/types.rs +246 -0
  364. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core.rs +168 -0
  365. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/lib.rs +215 -0
  366. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/raw.rs +30 -0
  367. data/ext/cargo-vendor/wasmparser-0.107.0/.cargo-checksum.json +1 -0
  368. data/ext/cargo-vendor/wasmparser-0.107.0/Cargo.lock +621 -0
  369. data/ext/cargo-vendor/wasmparser-0.107.0/Cargo.toml +54 -0
  370. data/ext/cargo-vendor/wasmparser-0.107.0/benches/benchmark.rs +351 -0
  371. data/ext/cargo-vendor/wasmparser-0.107.0/src/binary_reader.rs +1706 -0
  372. data/ext/cargo-vendor/wasmparser-0.107.0/src/lib.rs +723 -0
  373. data/ext/cargo-vendor/wasmparser-0.107.0/src/parser.rs +1535 -0
  374. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/canonicals.rs +119 -0
  375. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/exports.rs +117 -0
  376. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/imports.rs +137 -0
  377. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/instances.rs +163 -0
  378. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/types.rs +548 -0
  379. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/core/coredumps.rs +243 -0
  380. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/core/producers.rs +83 -0
  381. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/core/types.rs +874 -0
  382. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/core.rs +35 -0
  383. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/component.rs +3082 -0
  384. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/core.rs +1334 -0
  385. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/names.rs +606 -0
  386. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/operators.rs +3463 -0
  387. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/types.rs +3070 -0
  388. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator.rs +1589 -0
  389. data/ext/cargo-vendor/wasmparser-0.111.0/.cargo-checksum.json +1 -0
  390. data/ext/cargo-vendor/wasmparser-0.111.0/Cargo.lock +644 -0
  391. data/ext/cargo-vendor/wasmparser-0.111.0/Cargo.toml +54 -0
  392. data/ext/cargo-vendor/wasmparser-0.111.0/README.md +36 -0
  393. data/ext/cargo-vendor/wasmparser-0.111.0/benches/benchmark.rs +349 -0
  394. data/ext/cargo-vendor/wasmparser-0.111.0/examples/simple.rs +37 -0
  395. data/ext/cargo-vendor/wasmparser-0.111.0/src/binary_reader.rs +1706 -0
  396. data/ext/cargo-vendor/wasmparser-0.111.0/src/lib.rs +726 -0
  397. data/ext/cargo-vendor/wasmparser-0.111.0/src/limits.rs +59 -0
  398. data/ext/cargo-vendor/wasmparser-0.111.0/src/parser.rs +1612 -0
  399. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/aliases.rs +119 -0
  400. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/canonicals.rs +120 -0
  401. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/exports.rs +117 -0
  402. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/imports.rs +137 -0
  403. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/instances.rs +163 -0
  404. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/names.rs +102 -0
  405. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/start.rs +30 -0
  406. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/types.rs +548 -0
  407. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component.rs +17 -0
  408. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/code.rs +146 -0
  409. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/coredumps.rs +243 -0
  410. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/custom.rs +63 -0
  411. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/data.rs +96 -0
  412. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/dylink0.rs +132 -0
  413. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/elements.rs +152 -0
  414. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/exports.rs +65 -0
  415. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/functions.rs +17 -0
  416. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/globals.rs +49 -0
  417. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/imports.rs +76 -0
  418. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/init.rs +51 -0
  419. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/memories.rs +56 -0
  420. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/names.rs +153 -0
  421. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/operators.rs +354 -0
  422. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/producers.rs +83 -0
  423. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/tables.rs +87 -0
  424. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/tags.rs +32 -0
  425. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/types.rs +1141 -0
  426. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core.rs +37 -0
  427. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers.rs +316 -0
  428. data/ext/cargo-vendor/wasmparser-0.111.0/src/resources.rs +398 -0
  429. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/component.rs +3148 -0
  430. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/core.rs +1314 -0
  431. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/func.rs +348 -0
  432. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/names.rs +606 -0
  433. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/operators.rs +3466 -0
  434. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/types.rs +3283 -0
  435. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator.rs +1568 -0
  436. data/ext/cargo-vendor/wasmparser-0.111.0/tests/big-module.rs +33 -0
  437. data/ext/cargo-vendor/wasmprinter-0.2.63/.cargo-checksum.json +1 -0
  438. data/ext/cargo-vendor/wasmprinter-0.2.63/Cargo.toml +39 -0
  439. data/ext/cargo-vendor/wasmprinter-0.2.63/README.md +47 -0
  440. data/ext/cargo-vendor/wasmprinter-0.2.63/src/lib.rs +2962 -0
  441. data/ext/cargo-vendor/wasmprinter-0.2.63/src/operator.rs +873 -0
  442. data/ext/cargo-vendor/wasmprinter-0.2.63/tests/all.rs +278 -0
  443. data/ext/cargo-vendor/wasmtime-10.0.0/.cargo-checksum.json +1 -0
  444. data/ext/cargo-vendor/wasmtime-10.0.0/Cargo.toml +183 -0
  445. data/ext/cargo-vendor/wasmtime-10.0.0/src/compiler.rs +710 -0
  446. data/ext/cargo-vendor/wasmtime-10.0.0/src/component/component.rs +382 -0
  447. data/ext/cargo-vendor/wasmtime-10.0.0/src/component/instance.rs +727 -0
  448. data/ext/cargo-vendor/wasmtime-10.0.0/src/component/matching.rs +112 -0
  449. data/ext/cargo-vendor/wasmtime-10.0.0/src/component/mod.rs +313 -0
  450. data/ext/cargo-vendor/wasmtime-10.0.0/src/config.rs +2066 -0
  451. data/ext/cargo-vendor/wasmtime-10.0.0/src/engine/serialization.rs +622 -0
  452. data/ext/cargo-vendor/wasmtime-10.0.0/src/engine.rs +757 -0
  453. data/ext/cargo-vendor/wasmtime-10.0.0/src/externals.rs +763 -0
  454. data/ext/cargo-vendor/wasmtime-10.0.0/src/func/typed.rs +638 -0
  455. data/ext/cargo-vendor/wasmtime-10.0.0/src/func.rs +2355 -0
  456. data/ext/cargo-vendor/wasmtime-10.0.0/src/instance.rs +905 -0
  457. data/ext/cargo-vendor/wasmtime-10.0.0/src/lib.rs +486 -0
  458. data/ext/cargo-vendor/wasmtime-10.0.0/src/linker.rs +1479 -0
  459. data/ext/cargo-vendor/wasmtime-10.0.0/src/memory.rs +950 -0
  460. data/ext/cargo-vendor/wasmtime-10.0.0/src/module.rs +1274 -0
  461. data/ext/cargo-vendor/wasmtime-10.0.0/src/ref.rs +109 -0
  462. data/ext/cargo-vendor/wasmtime-10.0.0/src/store/context.rs +243 -0
  463. data/ext/cargo-vendor/wasmtime-10.0.0/src/store/func_refs.rs +85 -0
  464. data/ext/cargo-vendor/wasmtime-10.0.0/src/store.rs +2166 -0
  465. data/ext/cargo-vendor/wasmtime-10.0.0/src/trampoline/func.rs +133 -0
  466. data/ext/cargo-vendor/wasmtime-10.0.0/src/trampoline/global.rs +67 -0
  467. data/ext/cargo-vendor/wasmtime-10.0.0/src/types/matching.rs +312 -0
  468. data/ext/cargo-vendor/wasmtime-10.0.0/src/types.rs +572 -0
  469. data/ext/cargo-vendor/wasmtime-10.0.0/src/values.rs +290 -0
  470. data/ext/cargo-vendor/wasmtime-asm-macros-10.0.0/.cargo-checksum.json +1 -0
  471. data/ext/cargo-vendor/wasmtime-asm-macros-10.0.0/Cargo.toml +22 -0
  472. data/ext/cargo-vendor/wasmtime-cache-10.0.0/.cargo-checksum.json +1 -0
  473. data/ext/cargo-vendor/wasmtime-cache-10.0.0/Cargo.toml +73 -0
  474. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/.cargo-checksum.json +1 -0
  475. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/Cargo.toml +58 -0
  476. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/src/bindgen.rs +316 -0
  477. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/char.wit +13 -0
  478. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/conventions.wit +39 -0
  479. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/direct-import.wit +5 -0
  480. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/empty.wit +2 -0
  481. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/flags.wit +55 -0
  482. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/floats.wit +13 -0
  483. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/function-new.wit +4 -0
  484. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/integers.wit +40 -0
  485. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/lists.wit +85 -0
  486. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/many-arguments.wit +52 -0
  487. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/multi-return.wit +14 -0
  488. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/records.wit +61 -0
  489. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/rename.wit +16 -0
  490. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/share-types.wit +21 -0
  491. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/simple-functions.wit +17 -0
  492. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/simple-lists.wit +13 -0
  493. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/simple-wasi.wit +23 -0
  494. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/small-anonymous.wit +15 -0
  495. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/smoke-default.wit +5 -0
  496. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/smoke-export.wit +7 -0
  497. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/smoke.wit +7 -0
  498. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/strings.wit +12 -0
  499. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/unions.wit +66 -0
  500. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/use-paths.wit +29 -0
  501. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/variants.wit +147 -0
  502. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/worlds-with-types.wit +16 -0
  503. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen.rs +24 -0
  504. data/ext/cargo-vendor/wasmtime-component-util-10.0.0/.cargo-checksum.json +1 -0
  505. data/ext/cargo-vendor/wasmtime-component-util-10.0.0/Cargo.toml +25 -0
  506. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/.cargo-checksum.json +1 -0
  507. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/Cargo.toml +90 -0
  508. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/src/compiler.rs +1200 -0
  509. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/src/debug/transform/simulate.rs +410 -0
  510. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/src/func_environ.rs +2206 -0
  511. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/src/lib.rs +178 -0
  512. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.0/.cargo-checksum.json +1 -0
  513. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.0/Cargo.toml +57 -0
  514. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.0/src/lib.rs +120 -0
  515. data/ext/cargo-vendor/wasmtime-environ-10.0.0/.cargo-checksum.json +1 -0
  516. data/ext/cargo-vendor/wasmtime-environ-10.0.0/Cargo.lock +681 -0
  517. data/ext/cargo-vendor/wasmtime-environ-10.0.0/Cargo.toml +116 -0
  518. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/component/compiler.rs +84 -0
  519. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/component/translate/inline.rs +1067 -0
  520. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/component/translate.rs +1070 -0
  521. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/component/types.rs +1916 -0
  522. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/fact.rs +623 -0
  523. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/module.rs +1083 -0
  524. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/module_environ.rs +884 -0
  525. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/trap_encoding.rs +238 -0
  526. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/.cargo-checksum.json +1 -0
  527. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/Cargo.toml +46 -0
  528. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/src/lib.rs +305 -0
  529. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/src/unix.rs +212 -0
  530. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/src/windows.rs +161 -0
  531. data/ext/cargo-vendor/wasmtime-jit-10.0.0/.cargo-checksum.json +1 -0
  532. data/ext/cargo-vendor/wasmtime-jit-10.0.0/Cargo.toml +104 -0
  533. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/instantiate.rs +760 -0
  534. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/lib.rs +38 -0
  535. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/profiling/jitdump.rs +66 -0
  536. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/profiling/perfmap.rs +47 -0
  537. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/profiling/vtune.rs +80 -0
  538. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/profiling.rs +108 -0
  539. data/ext/cargo-vendor/wasmtime-jit-debug-10.0.0/.cargo-checksum.json +1 -0
  540. data/ext/cargo-vendor/wasmtime-jit-debug-10.0.0/Cargo.toml +55 -0
  541. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-10.0.0/.cargo-checksum.json +1 -0
  542. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-10.0.0/Cargo.toml +37 -0
  543. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/.cargo-checksum.json +1 -0
  544. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/Cargo.toml +110 -0
  545. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/component.rs +701 -0
  546. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/cow.rs +1060 -0
  547. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/debug_builtins.rs +58 -0
  548. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/externref.rs +1073 -0
  549. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/instance/allocator/pooling.rs +1368 -0
  550. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/instance/allocator.rs +531 -0
  551. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/instance.rs +1345 -0
  552. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/lib.rs +285 -0
  553. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/libcalls.rs +578 -0
  554. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/memory.rs +958 -0
  555. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/mmap/miri.rs +94 -0
  556. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/mmap/unix.rs +148 -0
  557. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/mmap/windows.rs +208 -0
  558. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/send_sync_ptr.rs +69 -0
  559. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/table.rs +595 -0
  560. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/traphandlers/unix.rs +387 -0
  561. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/traphandlers.rs +749 -0
  562. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/vmcontext/vm_host_func_context.rs +137 -0
  563. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/vmcontext.rs +1221 -0
  564. data/ext/cargo-vendor/wasmtime-types-10.0.1/.cargo-checksum.json +1 -0
  565. data/ext/cargo-vendor/wasmtime-types-10.0.1/Cargo.toml +34 -0
  566. data/ext/cargo-vendor/wasmtime-types-10.0.1/src/lib.rs +462 -0
  567. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/.cargo-checksum.json +1 -0
  568. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/Cargo.toml +153 -0
  569. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/lib.rs +130 -0
  570. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/clocks/host.rs +73 -0
  571. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/clocks.rs +17 -0
  572. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/ctx.rs +206 -0
  573. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/error.rs +16 -0
  574. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/filesystem.rs +269 -0
  575. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/mod.rs +44 -0
  576. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/pipe.rs +233 -0
  577. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview1/mod.rs +1860 -0
  578. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/clocks.rs +80 -0
  579. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/env.rs +48 -0
  580. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/exit.rs +12 -0
  581. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/filesystem.rs +1020 -0
  582. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/io.rs +215 -0
  583. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/mod.rs +7 -0
  584. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/poll.rs +84 -0
  585. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/random.rs +41 -0
  586. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/random.rs +58 -0
  587. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/sched/subscription.rs +104 -0
  588. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/sched/sync.rs +156 -0
  589. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/sched.rs +105 -0
  590. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/stdio.rs +176 -0
  591. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/stream.rs +210 -0
  592. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/table.rs +107 -0
  593. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/wasi/command.rs +43 -0
  594. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/wasi/mod.rs +30 -0
  595. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/clocks/monotonic-clock.wit +34 -0
  596. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/clocks/timezone.wit +63 -0
  597. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/clocks/wall-clock.wit +43 -0
  598. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/filesystem/filesystem.wit +782 -0
  599. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/http/incoming-handler.wit +24 -0
  600. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/http/outgoing-handler.wit +18 -0
  601. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/http/types.wit +159 -0
  602. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/io/streams.wit +215 -0
  603. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/logging/handler.wit +34 -0
  604. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/poll/poll.wit +41 -0
  605. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/preview/command-extended.wit +36 -0
  606. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/preview/command.wit +26 -0
  607. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/preview/proxy.wit +9 -0
  608. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/preview/reactor.wit +24 -0
  609. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/random/insecure-seed.wit +24 -0
  610. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/random/insecure.wit +21 -0
  611. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/random/random.wit +25 -0
  612. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/instance-network.wit +9 -0
  613. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/ip-name-lookup.wit +69 -0
  614. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/network.wit +187 -0
  615. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/tcp-create-socket.wit +27 -0
  616. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/tcp.wit +255 -0
  617. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/udp-create-socket.wit +27 -0
  618. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/udp.wit +211 -0
  619. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/wasi-cli-base/environment.wit +16 -0
  620. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/wasi-cli-base/exit.wit +4 -0
  621. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/wasi-cli-base/preopens.wit +7 -0
  622. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/wasi-cli-base/stdio.wit +17 -0
  623. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/main.wit +1 -0
  624. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/test.wit +19 -0
  625. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/witx/typenames.witx +750 -0
  626. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/witx/wasi_snapshot_preview1.witx +521 -0
  627. data/ext/cargo-vendor/wasmtime-winch-10.0.0/.cargo-checksum.json +1 -0
  628. data/ext/cargo-vendor/wasmtime-winch-10.0.0/Cargo.toml +63 -0
  629. data/ext/cargo-vendor/wasmtime-winch-10.0.0/src/compiler.rs +220 -0
  630. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.0/.cargo-checksum.json +1 -0
  631. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.0/Cargo.toml +29 -0
  632. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.0/src/lib.rs +1631 -0
  633. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.0/src/types.rs +179 -0
  634. data/ext/cargo-vendor/wiggle-10.0.0/.cargo-checksum.json +1 -0
  635. data/ext/cargo-vendor/wiggle-10.0.0/Cargo.toml +106 -0
  636. data/ext/cargo-vendor/wiggle-10.0.0/LICENSE +220 -0
  637. data/ext/cargo-vendor/wiggle-10.0.0/README.md +18 -0
  638. data/ext/cargo-vendor/wiggle-generate-10.0.0/.cargo-checksum.json +1 -0
  639. data/ext/cargo-vendor/wiggle-generate-10.0.0/Cargo.toml +58 -0
  640. data/ext/cargo-vendor/wiggle-generate-10.0.0/LICENSE +220 -0
  641. data/ext/cargo-vendor/wiggle-macro-10.0.0/.cargo-checksum.json +1 -0
  642. data/ext/cargo-vendor/wiggle-macro-10.0.0/Cargo.toml +55 -0
  643. data/ext/cargo-vendor/wiggle-macro-10.0.0/LICENSE +220 -0
  644. data/ext/cargo-vendor/wiggle-macro-10.0.0/src/lib.rs +210 -0
  645. data/ext/cargo-vendor/winch-codegen-0.8.0/.cargo-checksum.json +1 -0
  646. data/ext/cargo-vendor/winch-codegen-0.8.0/Cargo.toml +62 -0
  647. data/ext/cargo-vendor/winch-codegen-0.8.0/src/abi/local.rs +70 -0
  648. data/ext/cargo-vendor/winch-codegen-0.8.0/src/abi/mod.rs +237 -0
  649. data/ext/cargo-vendor/winch-codegen-0.8.0/src/codegen/call.rs +225 -0
  650. data/ext/cargo-vendor/winch-codegen-0.8.0/src/codegen/context.rs +270 -0
  651. data/ext/cargo-vendor/winch-codegen-0.8.0/src/codegen/env.rs +52 -0
  652. data/ext/cargo-vendor/winch-codegen-0.8.0/src/codegen/mod.rs +214 -0
  653. data/ext/cargo-vendor/winch-codegen-0.8.0/src/frame/mod.rs +172 -0
  654. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/abi.rs +243 -0
  655. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/asm.rs +300 -0
  656. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/masm.rs +230 -0
  657. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/mod.rs +127 -0
  658. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/regs.rs +166 -0
  659. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/mod.rs +215 -0
  660. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/abi.rs +369 -0
  661. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/address.rs +17 -0
  662. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/asm.rs +576 -0
  663. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/masm.rs +288 -0
  664. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/mod.rs +149 -0
  665. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/regs.rs +192 -0
  666. data/ext/cargo-vendor/winch-codegen-0.8.0/src/lib.rs +21 -0
  667. data/ext/cargo-vendor/winch-codegen-0.8.0/src/masm.rs +255 -0
  668. data/ext/cargo-vendor/winch-codegen-0.8.0/src/regalloc.rs +70 -0
  669. data/ext/cargo-vendor/winch-codegen-0.8.0/src/stack.rs +235 -0
  670. data/ext/cargo-vendor/winch-codegen-0.8.0/src/trampoline.rs +494 -0
  671. data/ext/cargo-vendor/winch-codegen-0.8.0/src/visitor.rs +353 -0
  672. data/ext/cargo-vendor/wit-parser-0.8.0/.cargo-checksum.json +1 -0
  673. data/ext/cargo-vendor/wit-parser-0.8.0/Cargo.toml +62 -0
  674. data/ext/cargo-vendor/wit-parser-0.8.0/src/ast/lex.rs +679 -0
  675. data/ext/cargo-vendor/wit-parser-0.8.0/src/ast/resolve.rs +1122 -0
  676. data/ext/cargo-vendor/wit-parser-0.8.0/src/ast.rs +1207 -0
  677. data/ext/cargo-vendor/wit-parser-0.8.0/src/lib.rs +622 -0
  678. data/ext/cargo-vendor/wit-parser-0.8.0/src/live.rs +111 -0
  679. data/ext/cargo-vendor/wit-parser-0.8.0/src/resolve.rs +1307 -0
  680. data/ext/cargo-vendor/wit-parser-0.8.0/tests/all.rs +168 -0
  681. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/comments.wit +25 -0
  682. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/diamond1/deps/dep1/types.wit +2 -0
  683. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/diamond1/deps/dep2/types.wit +2 -0
  684. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/diamond1/join.wit +6 -0
  685. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/disambiguate-diamond/shared1.wit +3 -0
  686. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/disambiguate-diamond/shared2.wit +3 -0
  687. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/disambiguate-diamond/world.wit +13 -0
  688. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/embedded.wit.md +34 -0
  689. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/empty.wit +1 -0
  690. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +3 -0
  691. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/corp/saas.wit +4 -0
  692. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +2 -0
  693. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +5 -0
  694. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +13 -0
  695. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/wasi/clocks.wit +5 -0
  696. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/wasi/filesystem.wit +7 -0
  697. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/root.wit +44 -0
  698. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/functions.wit +14 -0
  699. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/many-names/a.wit +2 -0
  700. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/many-names/b.wit +5 -0
  701. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/multi-file/bar.wit +21 -0
  702. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/multi-file/cycle-a.wit +7 -0
  703. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/multi-file/cycle-b.wit +3 -0
  704. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/multi-file/foo.wit +31 -0
  705. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/package-syntax1.wit +1 -0
  706. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/package-syntax3.wit +1 -0
  707. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/package-syntax4.wit +1 -0
  708. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/alias-no-type.wit.result +1 -0
  709. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-function.wit +7 -0
  710. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-function.wit.result +5 -0
  711. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-function2.wit +7 -0
  712. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-function2.wit.result +5 -0
  713. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg1/root.wit +5 -0
  714. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg1.wit.result +8 -0
  715. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +1 -0
  716. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg2/root.wit +5 -0
  717. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg2.wit.result +5 -0
  718. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +2 -0
  719. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg3/root.wit +5 -0
  720. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg3.wit.result +5 -0
  721. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +4 -0
  722. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg4/root.wit +4 -0
  723. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg4.wit.result +5 -0
  724. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +3 -0
  725. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg5/root.wit +4 -0
  726. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg5.wit.result +5 -0
  727. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +4 -0
  728. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg6/root.wit +4 -0
  729. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg6.wit.result +5 -0
  730. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-world-type1.wit +5 -0
  731. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-world-type1.wit.result +5 -0
  732. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/conflicting-package/a.wit +1 -0
  733. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/conflicting-package/b.wit +1 -0
  734. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/conflicting-package.wit.result +8 -0
  735. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle.wit +6 -0
  736. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle.wit.result +5 -0
  737. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle2.wit +7 -0
  738. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle2.wit.result +5 -0
  739. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle3.wit +7 -0
  740. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle3.wit.result +5 -0
  741. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle4.wit +7 -0
  742. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle4.wit.result +5 -0
  743. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle5.wit +7 -0
  744. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle5.wit.result +5 -0
  745. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-functions.wit +8 -0
  746. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-functions.wit.result +5 -0
  747. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface.wit +6 -0
  748. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface.wit.result +5 -0
  749. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface2/foo.wit +3 -0
  750. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface2/foo2.wit +3 -0
  751. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface2.wit.result +8 -0
  752. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-type.wit +7 -0
  753. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-type.wit.result +5 -0
  754. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-enum.wit +6 -0
  755. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-enum.wit.result +5 -0
  756. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-union.wit +6 -0
  757. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-union.wit.result +5 -0
  758. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-variant1.wit +6 -0
  759. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-variant1.wit.result +5 -0
  760. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/export-twice.wit +8 -0
  761. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/export-twice.wit.result +5 -0
  762. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-export-overlap1.wit +5 -0
  763. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-export-overlap1.wit.result +5 -0
  764. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-export-overlap2.wit +5 -0
  765. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-export-overlap2.wit.result +5 -0
  766. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-twice.wit +8 -0
  767. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-twice.wit.result +5 -0
  768. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-md.wit.result +5 -0
  769. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-type-reference.wit +10 -0
  770. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-type-reference.wit.result +5 -0
  771. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-type-reference2.wit +6 -0
  772. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-type-reference2.wit.result +5 -0
  773. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/missing-package.wit.result +1 -0
  774. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +1 -0
  775. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +5 -0
  776. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +8 -0
  777. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +4 -0
  778. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle/root.wit +4 -0
  779. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle.wit.result +5 -0
  780. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +4 -0
  781. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +4 -0
  782. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle2/root.wit +4 -0
  783. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle2.wit.result +5 -0
  784. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/undefined-typed.wit +6 -0
  785. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/undefined-typed.wit.result +5 -0
  786. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unknown-interface.wit +7 -0
  787. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unknown-interface.wit.result +5 -0
  788. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface1.wit +7 -0
  789. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface1.wit.result +5 -0
  790. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface2.wit +8 -0
  791. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface2.wit.result +5 -0
  792. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface3.wit +5 -0
  793. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface3.wit.result +5 -0
  794. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface4.wit +7 -0
  795. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface4.wit.result +5 -0
  796. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use1.wit +7 -0
  797. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use1.wit.result +5 -0
  798. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use10/bar.wit +5 -0
  799. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use10.wit.result +8 -0
  800. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use2.wit +10 -0
  801. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use2.wit.result +5 -0
  802. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use3.wit +11 -0
  803. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use3.wit.result +5 -0
  804. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use7.wit +10 -0
  805. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use7.wit.result +5 -0
  806. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use8.wit +9 -0
  807. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use8.wit.result +5 -0
  808. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use9.wit +9 -0
  809. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use9.wit.result +5 -0
  810. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict.wit +11 -0
  811. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict.wit.result +5 -0
  812. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict2.wit +13 -0
  813. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict2.wit.result +5 -0
  814. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict3.wit +13 -0
  815. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict3.wit.result +5 -0
  816. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-cycle1.wit +7 -0
  817. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-cycle1.wit.result +5 -0
  818. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-cycle4.wit +14 -0
  819. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-cycle4.wit.result +5 -0
  820. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-shadow1.wit +7 -0
  821. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-shadow1.wit.result +5 -0
  822. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-interface-clash.wit +3 -0
  823. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-interface-clash.wit.result +5 -0
  824. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-same-fields2.wit +8 -0
  825. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-same-fields2.wit.result +5 -0
  826. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-same-fields3.wit +8 -0
  827. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-same-fields3.wit.result +5 -0
  828. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-top-level-func.wit +5 -0
  829. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-top-level-func.wit.result +5 -0
  830. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-top-level-func2.wit +4 -0
  831. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-top-level-func2.wit.result +5 -0
  832. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/shared-types.wit +10 -0
  833. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/type-then-eof.wit +5 -0
  834. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/types.wit +61 -0
  835. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/use-chain.wit +11 -0
  836. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/use.wit +34 -0
  837. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/versions/deps/a1/foo.wit +5 -0
  838. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/versions/deps/a2/foo.wit +5 -0
  839. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/versions/foo.wit +7 -0
  840. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/wasi.wit +178 -0
  841. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-diamond.wit +22 -0
  842. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-iface-no-collide.wit +11 -0
  843. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-implicit-import1.wit +12 -0
  844. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-implicit-import2.wit +11 -0
  845. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-implicit-import3.wit +11 -0
  846. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-same-fields4.wit +13 -0
  847. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-top-level-funcs.wit +9 -0
  848. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/worlds-same-fields5.wit +17 -0
  849. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/worlds-with-types.wit +34 -0
  850. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/worlds.wit +37 -0
  851. data/ext/src/ruby_api/global.rs +3 -3
  852. data/ext/src/ruby_api/memory/unsafe_slice.rs +9 -3
  853. data/ext/src/ruby_api/params.rs +14 -12
  854. data/ext/src/ruby_api/table.rs +1 -1
  855. data/lib/wasmtime/version.rb +1 -1
  856. metadata +1418 -1079
  857. data/ext/cargo-vendor/cranelift-bforest-0.96.4/.cargo-checksum.json +0 -1
  858. data/ext/cargo-vendor/cranelift-bforest-0.96.4/Cargo.toml +0 -31
  859. data/ext/cargo-vendor/cranelift-codegen-0.96.4/.cargo-checksum.json +0 -1
  860. data/ext/cargo-vendor/cranelift-codegen-0.96.4/Cargo.toml +0 -159
  861. data/ext/cargo-vendor/cranelift-codegen-0.96.4/benches/x64-evex-encoding.rs +0 -53
  862. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/ir/trapcode.rs +0 -138
  863. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/abi.rs +0 -1281
  864. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst/emit.rs +0 -3658
  865. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst/emit_tests.rs +0 -7868
  866. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst/imms.rs +0 -1215
  867. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst/mod.rs +0 -2945
  868. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst.isle +0 -4035
  869. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/lower/isle.rs +0 -813
  870. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/lower.isle +0 -2906
  871. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/mod.rs +0 -240
  872. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/mod.rs +0 -420
  873. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/abi.rs +0 -726
  874. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/args.rs +0 -1822
  875. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/emit.rs +0 -2914
  876. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/emit_tests.rs +0 -2317
  877. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/encode.rs +0 -188
  878. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/imms.rs +0 -244
  879. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/mod.rs +0 -1823
  880. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/regs.rs +0 -231
  881. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/unwind/systemv.rs +0 -177
  882. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/vector.rs +0 -354
  883. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst.isle +0 -2746
  884. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst_vector.isle +0 -224
  885. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/lower/isle.rs +0 -544
  886. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/lower.isle +0 -1012
  887. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/mod.rs +0 -219
  888. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/abi.rs +0 -947
  889. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/inst/emit.rs +0 -3697
  890. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/inst/emit_tests.rs +0 -13397
  891. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/inst/mod.rs +0 -3409
  892. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/inst.isle +0 -5045
  893. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/lower.isle +0 -3991
  894. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/mod.rs +0 -215
  895. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/abi.rs +0 -978
  896. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/encoding/evex.rs +0 -403
  897. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/encoding/rex.rs +0 -565
  898. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/encoding/vex.rs +0 -498
  899. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst/args.rs +0 -2168
  900. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst/emit.rs +0 -3938
  901. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst/emit_tests.rs +0 -5669
  902. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst/mod.rs +0 -2763
  903. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst.isle +0 -5186
  904. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/lower/isle.rs +0 -1158
  905. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/lower.isle +0 -4262
  906. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/lower.rs +0 -328
  907. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/mod.rs +0 -250
  908. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isle_prelude.rs +0 -818
  909. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/abi.rs +0 -2410
  910. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/buffer.rs +0 -2219
  911. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/compile.rs +0 -92
  912. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/isle.rs +0 -827
  913. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/lower.rs +0 -1366
  914. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/mod.rs +0 -538
  915. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/reg.rs +0 -532
  916. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/vcode.rs +0 -1571
  917. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/prelude.isle +0 -552
  918. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/prelude_lower.isle +0 -1012
  919. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/settings.rs +0 -599
  920. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/verifier/mod.rs +0 -1881
  921. data/ext/cargo-vendor/cranelift-codegen-meta-0.96.4/.cargo-checksum.json +0 -1
  922. data/ext/cargo-vendor/cranelift-codegen-meta-0.96.4/Cargo.toml +0 -23
  923. data/ext/cargo-vendor/cranelift-codegen-meta-0.96.4/src/isa/x86.rs +0 -445
  924. data/ext/cargo-vendor/cranelift-codegen-meta-0.96.4/src/shared/settings.rs +0 -331
  925. data/ext/cargo-vendor/cranelift-codegen-shared-0.96.4/.cargo-checksum.json +0 -1
  926. data/ext/cargo-vendor/cranelift-codegen-shared-0.96.4/Cargo.toml +0 -22
  927. data/ext/cargo-vendor/cranelift-control-0.96.4/.cargo-checksum.json +0 -1
  928. data/ext/cargo-vendor/cranelift-control-0.96.4/Cargo.toml +0 -30
  929. data/ext/cargo-vendor/cranelift-control-0.96.4/src/chaos.rs +0 -78
  930. data/ext/cargo-vendor/cranelift-control-0.96.4/src/lib.rs +0 -30
  931. data/ext/cargo-vendor/cranelift-control-0.96.4/src/zero_sized.rs +0 -42
  932. data/ext/cargo-vendor/cranelift-entity-0.96.4/.cargo-checksum.json +0 -1
  933. data/ext/cargo-vendor/cranelift-entity-0.96.4/Cargo.toml +0 -35
  934. data/ext/cargo-vendor/cranelift-entity-0.96.4/src/list.rs +0 -868
  935. data/ext/cargo-vendor/cranelift-frontend-0.96.4/.cargo-checksum.json +0 -1
  936. data/ext/cargo-vendor/cranelift-frontend-0.96.4/Cargo.toml +0 -53
  937. data/ext/cargo-vendor/cranelift-isle-0.96.4/.cargo-checksum.json +0 -1
  938. data/ext/cargo-vendor/cranelift-isle-0.96.4/Cargo.toml +0 -37
  939. data/ext/cargo-vendor/cranelift-native-0.96.4/.cargo-checksum.json +0 -1
  940. data/ext/cargo-vendor/cranelift-native-0.96.4/Cargo.toml +0 -38
  941. data/ext/cargo-vendor/cranelift-native-0.96.4/src/lib.rs +0 -216
  942. data/ext/cargo-vendor/cranelift-wasm-0.96.4/.cargo-checksum.json +0 -1
  943. data/ext/cargo-vendor/cranelift-wasm-0.96.4/Cargo.toml +0 -85
  944. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/code_translator.rs +0 -3479
  945. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/environ/dummy.rs +0 -901
  946. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/environ/spec.rs +0 -807
  947. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/func_translator.rs +0 -419
  948. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/sections_translator.rs +0 -429
  949. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/translation_utils.rs +0 -108
  950. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/.cargo-checksum.json +0 -1
  951. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/Cargo.toml +0 -36
  952. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/run-tests.sh +0 -11
  953. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/src/lib.rs +0 -162
  954. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/tests/test.rs +0 -267
  955. data/ext/cargo-vendor/regalloc2-0.8.1/.cargo-checksum.json +0 -1
  956. data/ext/cargo-vendor/regalloc2-0.8.1/Cargo.toml +0 -72
  957. data/ext/cargo-vendor/regalloc2-0.8.1/deny.toml +0 -28
  958. data/ext/cargo-vendor/regalloc2-0.8.1/src/checker.rs +0 -1089
  959. data/ext/cargo-vendor/regalloc2-0.8.1/src/fuzzing/func.rs +0 -673
  960. data/ext/cargo-vendor/regalloc2-0.8.1/src/index.rs +0 -188
  961. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/data_structures.rs +0 -688
  962. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/liveranges.rs +0 -1012
  963. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/merge.rs +0 -394
  964. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/mod.rs +0 -152
  965. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/moves.rs +0 -985
  966. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/process.rs +0 -1322
  967. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/requirement.rs +0 -174
  968. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/spill.rs +0 -198
  969. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/stackmap.rs +0 -74
  970. data/ext/cargo-vendor/regalloc2-0.8.1/src/lib.rs +0 -1523
  971. data/ext/cargo-vendor/regalloc2-0.8.1/src/moves.rs +0 -438
  972. data/ext/cargo-vendor/wasi-cap-std-sync-9.0.4/.cargo-checksum.json +0 -1
  973. data/ext/cargo-vendor/wasi-cap-std-sync-9.0.4/Cargo.toml +0 -89
  974. data/ext/cargo-vendor/wasi-cap-std-sync-9.0.4/src/dir.rs +0 -465
  975. data/ext/cargo-vendor/wasi-cap-std-sync-9.0.4/src/lib.rs +0 -140
  976. data/ext/cargo-vendor/wasi-common-9.0.4/.cargo-checksum.json +0 -1
  977. data/ext/cargo-vendor/wasi-common-9.0.4/Cargo.toml +0 -86
  978. data/ext/cargo-vendor/wasi-common-9.0.4/src/ctx.rs +0 -127
  979. data/ext/cargo-vendor/wasi-common-9.0.4/src/file.rs +0 -260
  980. data/ext/cargo-vendor/wasi-common-9.0.4/src/snapshots/preview_1.rs +0 -1490
  981. data/ext/cargo-vendor/wasmparser-0.103.0/.cargo-checksum.json +0 -1
  982. data/ext/cargo-vendor/wasmparser-0.103.0/Cargo.lock +0 -692
  983. data/ext/cargo-vendor/wasmparser-0.103.0/Cargo.toml +0 -54
  984. data/ext/cargo-vendor/wasmparser-0.103.0/benches/benchmark.rs +0 -350
  985. data/ext/cargo-vendor/wasmparser-0.103.0/src/binary_reader.rs +0 -1682
  986. data/ext/cargo-vendor/wasmparser-0.103.0/src/lib.rs +0 -712
  987. data/ext/cargo-vendor/wasmparser-0.103.0/src/parser.rs +0 -1496
  988. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/canonicals.rs +0 -95
  989. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/exports.rs +0 -105
  990. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/imports.rs +0 -109
  991. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/instances.rs +0 -164
  992. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/types.rs +0 -508
  993. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/core/producers.rs +0 -78
  994. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/core/types.rs +0 -511
  995. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/core.rs +0 -33
  996. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator/component.rs +0 -2097
  997. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator/core.rs +0 -1278
  998. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator/operators.rs +0 -3456
  999. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator/types.rs +0 -2159
  1000. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator.rs +0 -1514
  1001. data/ext/cargo-vendor/wasmtime-9.0.4/.cargo-checksum.json +0 -1
  1002. data/ext/cargo-vendor/wasmtime-9.0.4/Cargo.toml +0 -183
  1003. data/ext/cargo-vendor/wasmtime-9.0.4/build.rs +0 -20
  1004. data/ext/cargo-vendor/wasmtime-9.0.4/src/component/component.rs +0 -519
  1005. data/ext/cargo-vendor/wasmtime-9.0.4/src/component/instance.rs +0 -728
  1006. data/ext/cargo-vendor/wasmtime-9.0.4/src/component/matching.rs +0 -112
  1007. data/ext/cargo-vendor/wasmtime-9.0.4/src/component/mod.rs +0 -313
  1008. data/ext/cargo-vendor/wasmtime-9.0.4/src/config.rs +0 -2036
  1009. data/ext/cargo-vendor/wasmtime-9.0.4/src/engine/serialization.rs +0 -613
  1010. data/ext/cargo-vendor/wasmtime-9.0.4/src/engine.rs +0 -729
  1011. data/ext/cargo-vendor/wasmtime-9.0.4/src/externals.rs +0 -762
  1012. data/ext/cargo-vendor/wasmtime-9.0.4/src/func/typed.rs +0 -638
  1013. data/ext/cargo-vendor/wasmtime-9.0.4/src/func.rs +0 -2385
  1014. data/ext/cargo-vendor/wasmtime-9.0.4/src/instance.rs +0 -905
  1015. data/ext/cargo-vendor/wasmtime-9.0.4/src/lib.rs +0 -481
  1016. data/ext/cargo-vendor/wasmtime-9.0.4/src/linker.rs +0 -1479
  1017. data/ext/cargo-vendor/wasmtime-9.0.4/src/memory.rs +0 -948
  1018. data/ext/cargo-vendor/wasmtime-9.0.4/src/module.rs +0 -1542
  1019. data/ext/cargo-vendor/wasmtime-9.0.4/src/ref.rs +0 -108
  1020. data/ext/cargo-vendor/wasmtime-9.0.4/src/store/context.rs +0 -243
  1021. data/ext/cargo-vendor/wasmtime-9.0.4/src/store/func_refs.rs +0 -110
  1022. data/ext/cargo-vendor/wasmtime-9.0.4/src/store.rs +0 -2059
  1023. data/ext/cargo-vendor/wasmtime-9.0.4/src/trampoline/func.rs +0 -171
  1024. data/ext/cargo-vendor/wasmtime-9.0.4/src/trampoline/global.rs +0 -71
  1025. data/ext/cargo-vendor/wasmtime-9.0.4/src/types/matching.rs +0 -254
  1026. data/ext/cargo-vendor/wasmtime-9.0.4/src/types.rs +0 -551
  1027. data/ext/cargo-vendor/wasmtime-9.0.4/src/values.rs +0 -290
  1028. data/ext/cargo-vendor/wasmtime-asm-macros-9.0.4/.cargo-checksum.json +0 -1
  1029. data/ext/cargo-vendor/wasmtime-asm-macros-9.0.4/Cargo.toml +0 -22
  1030. data/ext/cargo-vendor/wasmtime-cache-9.0.4/.cargo-checksum.json +0 -1
  1031. data/ext/cargo-vendor/wasmtime-cache-9.0.4/Cargo.toml +0 -73
  1032. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/.cargo-checksum.json +0 -1
  1033. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/Cargo.toml +0 -58
  1034. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/src/bindgen.rs +0 -316
  1035. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/char.wit +0 -11
  1036. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/conventions.wit +0 -38
  1037. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/direct-import.wit +0 -3
  1038. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/empty.wit +0 -1
  1039. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/flags.wit +0 -53
  1040. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/floats.wit +0 -11
  1041. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/function-new.wit +0 -3
  1042. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/integers.wit +0 -38
  1043. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/lists.wit +0 -83
  1044. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/many-arguments.wit +0 -50
  1045. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/multi-return.wit +0 -12
  1046. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/records.wit +0 -59
  1047. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/rename.wit +0 -14
  1048. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/share-types.wit +0 -19
  1049. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/simple-functions.wit +0 -15
  1050. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/simple-lists.wit +0 -11
  1051. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/simple-wasi.wit +0 -21
  1052. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/small-anonymous.wit +0 -13
  1053. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/smoke-default.wit +0 -3
  1054. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/smoke-export.wit +0 -5
  1055. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/smoke.wit +0 -5
  1056. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/strings.wit +0 -10
  1057. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/unions.wit +0 -64
  1058. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/use-paths.wit +0 -27
  1059. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/variants.wit +0 -145
  1060. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/worlds-with-types.wit +0 -14
  1061. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen.rs +0 -30
  1062. data/ext/cargo-vendor/wasmtime-component-util-9.0.4/.cargo-checksum.json +0 -1
  1063. data/ext/cargo-vendor/wasmtime-component-util-9.0.4/Cargo.toml +0 -25
  1064. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/.cargo-checksum.json +0 -1
  1065. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/Cargo.toml +0 -90
  1066. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/src/compiler.rs +0 -1200
  1067. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/src/debug/transform/simulate.rs +0 -411
  1068. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/src/func_environ.rs +0 -2162
  1069. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/src/lib.rs +0 -177
  1070. data/ext/cargo-vendor/wasmtime-cranelift-shared-9.0.4/.cargo-checksum.json +0 -1
  1071. data/ext/cargo-vendor/wasmtime-cranelift-shared-9.0.4/Cargo.toml +0 -57
  1072. data/ext/cargo-vendor/wasmtime-cranelift-shared-9.0.4/src/lib.rs +0 -119
  1073. data/ext/cargo-vendor/wasmtime-environ-9.0.4/.cargo-checksum.json +0 -1
  1074. data/ext/cargo-vendor/wasmtime-environ-9.0.4/Cargo.lock +0 -735
  1075. data/ext/cargo-vendor/wasmtime-environ-9.0.4/Cargo.toml +0 -116
  1076. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/component/compiler.rs +0 -84
  1077. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/component/translate/inline.rs +0 -1064
  1078. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/component/translate.rs +0 -1066
  1079. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/component/types.rs +0 -1903
  1080. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/fact.rs +0 -622
  1081. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/module.rs +0 -1043
  1082. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/module_environ.rs +0 -841
  1083. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/trap_encoding.rs +0 -234
  1084. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/.cargo-checksum.json +0 -1
  1085. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/Cargo.toml +0 -46
  1086. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/src/lib.rs +0 -293
  1087. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/src/unix.rs +0 -199
  1088. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/src/windows.rs +0 -156
  1089. data/ext/cargo-vendor/wasmtime-jit-9.0.4/.cargo-checksum.json +0 -1
  1090. data/ext/cargo-vendor/wasmtime-jit-9.0.4/Cargo.toml +0 -100
  1091. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/instantiate.rs +0 -786
  1092. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/lib.rs +0 -39
  1093. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/jitdump_disabled.rs +0 -32
  1094. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/jitdump_linux.rs +0 -444
  1095. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/perfmap_disabled.rs +0 -28
  1096. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/perfmap_linux.rs +0 -104
  1097. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/vtune.rs +0 -147
  1098. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/vtune_disabled.rs +0 -32
  1099. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling.rs +0 -74
  1100. data/ext/cargo-vendor/wasmtime-jit-debug-9.0.4/.cargo-checksum.json +0 -1
  1101. data/ext/cargo-vendor/wasmtime-jit-debug-9.0.4/Cargo.toml +0 -55
  1102. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-9.0.4/.cargo-checksum.json +0 -1
  1103. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-9.0.4/Cargo.toml +0 -37
  1104. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/.cargo-checksum.json +0 -1
  1105. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/Cargo.toml +0 -107
  1106. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/component.rs +0 -724
  1107. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/cow.rs +0 -1063
  1108. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/debug_builtins.rs +0 -56
  1109. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/externref.rs +0 -1078
  1110. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/instance/allocator/pooling.rs +0 -1371
  1111. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/instance/allocator.rs +0 -528
  1112. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/instance.rs +0 -1267
  1113. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/lib.rs +0 -286
  1114. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/libcalls.rs +0 -597
  1115. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/memory.rs +0 -945
  1116. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/mmap/miri.rs +0 -93
  1117. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/mmap/unix.rs +0 -147
  1118. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/mmap/windows.rs +0 -207
  1119. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/table.rs +0 -573
  1120. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/traphandlers/unix.rs +0 -387
  1121. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/traphandlers.rs +0 -664
  1122. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/vmcontext/vm_host_func_context.rs +0 -147
  1123. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/vmcontext.rs +0 -1244
  1124. data/ext/cargo-vendor/wasmtime-types-9.0.4/.cargo-checksum.json +0 -1
  1125. data/ext/cargo-vendor/wasmtime-types-9.0.4/Cargo.toml +0 -34
  1126. data/ext/cargo-vendor/wasmtime-types-9.0.4/src/lib.rs +0 -413
  1127. data/ext/cargo-vendor/wasmtime-wasi-9.0.4/.cargo-checksum.json +0 -1
  1128. data/ext/cargo-vendor/wasmtime-wasi-9.0.4/Cargo.toml +0 -67
  1129. data/ext/cargo-vendor/wasmtime-wasi-9.0.4/src/lib.rs +0 -128
  1130. data/ext/cargo-vendor/wasmtime-winch-9.0.4/.cargo-checksum.json +0 -1
  1131. data/ext/cargo-vendor/wasmtime-winch-9.0.4/Cargo.toml +0 -66
  1132. data/ext/cargo-vendor/wasmtime-winch-9.0.4/src/compiler.rs +0 -191
  1133. data/ext/cargo-vendor/wasmtime-wit-bindgen-9.0.4/.cargo-checksum.json +0 -1
  1134. data/ext/cargo-vendor/wasmtime-wit-bindgen-9.0.4/Cargo.toml +0 -29
  1135. data/ext/cargo-vendor/wasmtime-wit-bindgen-9.0.4/src/lib.rs +0 -1488
  1136. data/ext/cargo-vendor/wasmtime-wit-bindgen-9.0.4/src/types.rs +0 -178
  1137. data/ext/cargo-vendor/wiggle-9.0.4/.cargo-checksum.json +0 -1
  1138. data/ext/cargo-vendor/wiggle-9.0.4/Cargo.toml +0 -106
  1139. data/ext/cargo-vendor/wiggle-9.0.4/README.md +0 -18
  1140. data/ext/cargo-vendor/wiggle-generate-9.0.4/.cargo-checksum.json +0 -1
  1141. data/ext/cargo-vendor/wiggle-generate-9.0.4/Cargo.toml +0 -58
  1142. data/ext/cargo-vendor/wiggle-macro-9.0.4/.cargo-checksum.json +0 -1
  1143. data/ext/cargo-vendor/wiggle-macro-9.0.4/Cargo.toml +0 -55
  1144. data/ext/cargo-vendor/wiggle-macro-9.0.4/src/lib.rs +0 -210
  1145. data/ext/cargo-vendor/winch-codegen-0.7.4/.cargo-checksum.json +0 -1
  1146. data/ext/cargo-vendor/winch-codegen-0.7.4/Cargo.toml +0 -59
  1147. data/ext/cargo-vendor/winch-codegen-0.7.4/src/abi/local.rs +0 -69
  1148. data/ext/cargo-vendor/winch-codegen-0.7.4/src/abi/mod.rs +0 -223
  1149. data/ext/cargo-vendor/winch-codegen-0.7.4/src/codegen/call.rs +0 -215
  1150. data/ext/cargo-vendor/winch-codegen-0.7.4/src/codegen/context.rs +0 -259
  1151. data/ext/cargo-vendor/winch-codegen-0.7.4/src/codegen/env.rs +0 -19
  1152. data/ext/cargo-vendor/winch-codegen-0.7.4/src/codegen/mod.rs +0 -183
  1153. data/ext/cargo-vendor/winch-codegen-0.7.4/src/frame/mod.rs +0 -166
  1154. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/abi.rs +0 -221
  1155. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/asm.rs +0 -244
  1156. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/masm.rs +0 -221
  1157. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/mod.rs +0 -122
  1158. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/regs.rs +0 -160
  1159. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/mod.rs +0 -202
  1160. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/abi.rs +0 -337
  1161. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/address.rs +0 -17
  1162. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/asm.rs +0 -499
  1163. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/masm.rs +0 -267
  1164. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/mod.rs +0 -135
  1165. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/regs.rs +0 -178
  1166. data/ext/cargo-vendor/winch-codegen-0.7.4/src/lib.rs +0 -20
  1167. data/ext/cargo-vendor/winch-codegen-0.7.4/src/masm.rs +0 -213
  1168. data/ext/cargo-vendor/winch-codegen-0.7.4/src/regalloc.rs +0 -61
  1169. data/ext/cargo-vendor/winch-codegen-0.7.4/src/stack.rs +0 -230
  1170. data/ext/cargo-vendor/winch-codegen-0.7.4/src/trampoline.rs +0 -206
  1171. data/ext/cargo-vendor/winch-codegen-0.7.4/src/visitor.rs +0 -215
  1172. data/ext/cargo-vendor/winch-environ-0.7.4/.cargo-checksum.json +0 -1
  1173. data/ext/cargo-vendor/winch-environ-0.7.4/Cargo.toml +0 -28
  1174. data/ext/cargo-vendor/winch-environ-0.7.4/src/lib.rs +0 -41
  1175. data/ext/cargo-vendor/wit-parser-0.7.1/.cargo-checksum.json +0 -1
  1176. data/ext/cargo-vendor/wit-parser-0.7.1/Cargo.toml +0 -59
  1177. data/ext/cargo-vendor/wit-parser-0.7.1/src/ast/lex.rs +0 -662
  1178. data/ext/cargo-vendor/wit-parser-0.7.1/src/ast/resolve.rs +0 -1072
  1179. data/ext/cargo-vendor/wit-parser-0.7.1/src/ast.rs +0 -1099
  1180. data/ext/cargo-vendor/wit-parser-0.7.1/src/lib.rs +0 -617
  1181. data/ext/cargo-vendor/wit-parser-0.7.1/src/live.rs +0 -123
  1182. data/ext/cargo-vendor/wit-parser-0.7.1/src/resolve.rs +0 -1478
  1183. data/ext/cargo-vendor/wit-parser-0.7.1/tests/all.rs +0 -168
  1184. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/comments.wit +0 -23
  1185. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/disambiguate-diamond/shared1.wit +0 -3
  1186. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/disambiguate-diamond/shared2.wit +0 -3
  1187. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/disambiguate-diamond/world.wit +0 -11
  1188. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/embedded.wit.md +0 -32
  1189. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -1
  1190. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/corp/saas.wit +0 -2
  1191. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -1
  1192. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -3
  1193. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -11
  1194. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -3
  1195. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -5
  1196. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/root.wit +0 -31
  1197. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/functions.wit +0 -12
  1198. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/multi-file/bar.wit +0 -19
  1199. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/multi-file/foo.wit +0 -15
  1200. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/alias-no-type.wit.result +0 -5
  1201. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-diamond/a.wit +0 -9
  1202. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-diamond/b.wit +0 -9
  1203. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-diamond/join.wit +0 -4
  1204. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-diamond.wit.result +0 -8
  1205. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-function.wit +0 -5
  1206. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-function.wit.result +0 -5
  1207. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-function2.wit +0 -5
  1208. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-function2.wit.result +0 -5
  1209. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg1/root.wit +0 -3
  1210. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg1.wit.result +0 -5
  1211. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg2/root.wit +0 -3
  1212. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg2.wit.result +0 -5
  1213. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  1214. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg3/root.wit +0 -3
  1215. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg3.wit.result +0 -5
  1216. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -3
  1217. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg4/root.wit +0 -3
  1218. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg4.wit.result +0 -5
  1219. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -2
  1220. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg5/root.wit +0 -3
  1221. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg5.wit.result +0 -5
  1222. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  1223. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg6/root.wit +0 -3
  1224. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg6.wit.result +0 -5
  1225. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-world-type1.wit +0 -4
  1226. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-world-type1.wit.result +0 -5
  1227. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-world-type2.wit +0 -9
  1228. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-world-type2.wit.result +0 -5
  1229. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle.wit +0 -5
  1230. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle.wit.result +0 -5
  1231. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle2.wit +0 -6
  1232. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle2.wit.result +0 -5
  1233. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle3.wit +0 -6
  1234. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle3.wit.result +0 -5
  1235. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle4.wit +0 -6
  1236. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle4.wit.result +0 -5
  1237. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle5.wit +0 -6
  1238. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle5.wit.result +0 -5
  1239. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/default-interface1.wit +0 -3
  1240. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/default-interface1.wit.result +0 -5
  1241. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/default-world1.wit +0 -3
  1242. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/default-world1.wit.result +0 -5
  1243. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-functions.wit +0 -6
  1244. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-functions.wit.result +0 -5
  1245. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-interface.wit +0 -4
  1246. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-interface.wit.result +0 -5
  1247. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-type.wit +0 -6
  1248. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-type.wit.result +0 -5
  1249. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-enum.wit +0 -5
  1250. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-enum.wit.result +0 -5
  1251. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-union.wit +0 -5
  1252. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-union.wit.result +0 -5
  1253. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-variant1.wit +0 -5
  1254. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-variant1.wit.result +0 -5
  1255. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap1.wit +0 -4
  1256. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap1.wit.result +0 -5
  1257. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap2.wit +0 -4
  1258. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap2.wit.result +0 -5
  1259. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap3.wit +0 -11
  1260. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap3.wit.result +0 -6
  1261. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-md.wit.result +0 -5
  1262. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-type-reference.wit +0 -8
  1263. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -5
  1264. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-type-reference2.wit +0 -4
  1265. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -5
  1266. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid@filename.wit +0 -0
  1267. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid@filename.wit.result +0 -4
  1268. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -3
  1269. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle/root.wit +0 -3
  1270. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle.wit.result +0 -5
  1271. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -3
  1272. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -3
  1273. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -3
  1274. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -5
  1275. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/undefined-typed.wit +0 -5
  1276. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/undefined-typed.wit.result +0 -5
  1277. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unknown-interface.wit +0 -5
  1278. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unknown-interface.wit.result +0 -5
  1279. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface1.wit +0 -5
  1280. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -5
  1281. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface2.wit +0 -6
  1282. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -5
  1283. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface3.wit +0 -5
  1284. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -5
  1285. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface4.wit +0 -5
  1286. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -5
  1287. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface5.wit +0 -5
  1288. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface5.wit.result +0 -5
  1289. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use1.wit +0 -5
  1290. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use1.wit.result +0 -5
  1291. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -3
  1292. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use10.wit.result +0 -8
  1293. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use11/bar.wit +0 -3
  1294. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use11/foo.wit +0 -2
  1295. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use11.wit.result +0 -8
  1296. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use2.wit +0 -8
  1297. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use2.wit.result +0 -5
  1298. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use3.wit +0 -9
  1299. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use3.wit.result +0 -5
  1300. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use4.wit +0 -5
  1301. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use4.wit.result +0 -5
  1302. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use5.wit +0 -6
  1303. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use5.wit.result +0 -5
  1304. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use6.wit +0 -5
  1305. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use6.wit.result +0 -5
  1306. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use7.wit +0 -8
  1307. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use7.wit.result +0 -5
  1308. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use8.wit +0 -7
  1309. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use8.wit.result +0 -5
  1310. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use9.wit +0 -7
  1311. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use9.wit.result +0 -5
  1312. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict.wit +0 -9
  1313. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict.wit.result +0 -5
  1314. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict2.wit +0 -11
  1315. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict2.wit.result +0 -5
  1316. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict3.wit +0 -11
  1317. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict3.wit.result +0 -5
  1318. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle1.wit +0 -5
  1319. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle1.wit.result +0 -5
  1320. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle2.wit +0 -5
  1321. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle2.wit.result +0 -5
  1322. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle3.wit +0 -6
  1323. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle3.wit.result +0 -5
  1324. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle4.wit +0 -13
  1325. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle4.wit.result +0 -5
  1326. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world.wit +0 -8
  1327. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world.wit.result +0 -5
  1328. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world2/bar.wit +0 -3
  1329. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world2/foo.wit +0 -2
  1330. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world2.wit.result +0 -8
  1331. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import1.wit +0 -10
  1332. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import1.wit.result +0 -6
  1333. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import2.wit +0 -9
  1334. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import2.wit.result +0 -5
  1335. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import3.wit +0 -9
  1336. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import3.wit.result +0 -5
  1337. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-interface-clash.wit +0 -2
  1338. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-interface-clash.wit.result +0 -5
  1339. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields.wit +0 -9
  1340. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields.wit.result +0 -5
  1341. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields2.wit +0 -6
  1342. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields2.wit.result +0 -5
  1343. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields3.wit +0 -6
  1344. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields3.wit.result +0 -5
  1345. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields4.wit +0 -11
  1346. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields4.wit.result +0 -8
  1347. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-import.wit +0 -6
  1348. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-import.wit.result +0 -5
  1349. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-top-level-func.wit +0 -4
  1350. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-top-level-func.wit.result +0 -5
  1351. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-top-level-func2.wit +0 -3
  1352. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -5
  1353. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/worlds-same-fields5.wit +0 -16
  1354. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/worlds-same-fields5.wit.result +0 -9
  1355. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/shared-types.wit +0 -8
  1356. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/type-then-eof.wit +0 -3
  1357. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/types.wit +0 -59
  1358. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/use.wit +0 -33
  1359. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/wasi.wit +0 -176
  1360. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/world-diamond.wit +0 -20
  1361. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/world-top-level-funcs.wit +0 -7
  1362. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/worlds-with-types.wit +0 -32
  1363. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/worlds.wit +0 -40
  1364. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/LICENSE +0 -0
  1365. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/README.md +0 -0
  1366. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/lib.rs +0 -0
  1367. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/map.rs +0 -0
  1368. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/node.rs +0 -0
  1369. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/path.rs +0 -0
  1370. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/pool.rs +0 -0
  1371. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/set.rs +0 -0
  1372. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/LICENSE +0 -0
  1373. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/README.md +0 -0
  1374. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/build.rs +0 -0
  1375. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/alias_analysis.rs +0 -0
  1376. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/binemit/mod.rs +0 -0
  1377. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/binemit/stack_map.rs +0 -0
  1378. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/bitset.rs +0 -0
  1379. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/cfg_printer.rs +0 -0
  1380. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/constant_hash.rs +0 -0
  1381. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/context.rs +0 -0
  1382. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ctxhash.rs +0 -0
  1383. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/cursor.rs +0 -0
  1384. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/data_value.rs +0 -0
  1385. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/dbg.rs +0 -0
  1386. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/dce.rs +0 -0
  1387. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/dominator_tree.rs +0 -0
  1388. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/egraph/cost.rs +0 -0
  1389. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/egraph/domtree.rs +0 -0
  1390. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/egraph/elaborate.rs +0 -0
  1391. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/egraph.rs +0 -0
  1392. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/flowgraph.rs +0 -0
  1393. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/fx.rs +0 -0
  1394. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/incremental_cache.rs +0 -0
  1395. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/inst_predicates.rs +0 -0
  1396. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/atomic_rmw_op.rs +0 -0
  1397. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/builder.rs +0 -0
  1398. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/condcodes.rs +0 -0
  1399. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/constant.rs +0 -0
  1400. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/dfg.rs +0 -0
  1401. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/dynamic_type.rs +0 -0
  1402. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/entities.rs +0 -0
  1403. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/extfunc.rs +0 -0
  1404. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/extname.rs +0 -0
  1405. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/function.rs +0 -0
  1406. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/globalvalue.rs +0 -0
  1407. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/immediates.rs +0 -0
  1408. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/instructions.rs +0 -0
  1409. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/jumptable.rs +0 -0
  1410. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/known_symbol.rs +0 -0
  1411. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/layout.rs +0 -0
  1412. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/libcall.rs +0 -0
  1413. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/memflags.rs +0 -0
  1414. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/mod.rs +0 -0
  1415. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/progpoint.rs +0 -0
  1416. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/sourceloc.rs +0 -0
  1417. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/stackslot.rs +0 -0
  1418. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/table.rs +0 -0
  1419. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/types.rs +0 -0
  1420. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst/args.rs +0 -0
  1421. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst/regs.rs +0 -0
  1422. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  1423. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst/unwind.rs +0 -0
  1424. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst_neon.isle +0 -0
  1425. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1426. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/lower.rs +0 -0
  1427. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1428. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/settings.rs +0 -0
  1429. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/call_conv.rs +0 -0
  1430. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/riscv64/inst/unwind.rs +0 -0
  1431. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1432. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/riscv64/lower.rs +0 -0
  1433. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/riscv64/settings.rs +0 -0
  1434. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/args.rs +0 -0
  1435. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/imms.rs +0 -0
  1436. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/regs.rs +0 -0
  1437. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1438. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/unwind.rs +0 -0
  1439. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1440. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/lower/isle.rs +0 -0
  1441. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/lower.rs +0 -0
  1442. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/settings.rs +0 -0
  1443. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/unwind/systemv.rs +0 -0
  1444. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/unwind/winx64.rs +0 -0
  1445. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/unwind.rs +0 -0
  1446. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/encoding/mod.rs +0 -0
  1447. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/inst/regs.rs +0 -0
  1448. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1449. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1450. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/inst/unwind.rs +0 -0
  1451. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1452. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/settings.rs +0 -0
  1453. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/iterators.rs +0 -0
  1454. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/legalizer/globalvalue.rs +0 -0
  1455. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/legalizer/mod.rs +0 -0
  1456. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/legalizer/table.rs +0 -0
  1457. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/lib.rs +0 -0
  1458. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/loop_analysis.rs +0 -0
  1459. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/machinst/blockorder.rs +0 -0
  1460. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/machinst/helpers.rs +0 -0
  1461. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/machinst/inst_common.rs +0 -0
  1462. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/machinst/valueregs.rs +0 -0
  1463. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/nan_canonicalization.rs +0 -0
  1464. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/README.md +0 -0
  1465. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/arithmetic.isle +0 -0
  1466. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/bitops.isle +0 -0
  1467. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/cprop.isle +0 -0
  1468. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/extends.isle +0 -0
  1469. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/generated_code.rs +0 -0
  1470. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/icmp.isle +0 -0
  1471. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/remat.isle +0 -0
  1472. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/selects.isle +0 -0
  1473. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/shifts.isle +0 -0
  1474. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts.rs +0 -0
  1475. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/prelude_opt.isle +0 -0
  1476. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/print_errors.rs +0 -0
  1477. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/remove_constant_phis.rs +0 -0
  1478. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/result.rs +0 -0
  1479. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/scoped_hash_map.rs +0 -0
  1480. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/souper_harvest.rs +0 -0
  1481. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/timing.rs +0 -0
  1482. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/unionfind.rs +0 -0
  1483. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/unreachable_code.rs +0 -0
  1484. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/value_label.rs +0 -0
  1485. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/write.rs +0 -0
  1486. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/LICENSE +0 -0
  1487. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/README.md +0 -0
  1488. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/formats.rs +0 -0
  1489. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/instructions.rs +0 -0
  1490. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/isa.rs +0 -0
  1491. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/mod.rs +0 -0
  1492. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/operands.rs +0 -0
  1493. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/settings.rs +0 -0
  1494. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/types.rs +0 -0
  1495. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/typevar.rs +0 -0
  1496. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/constant_hash.rs +0 -0
  1497. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/error.rs +0 -0
  1498. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/gen_inst.rs +0 -0
  1499. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/gen_settings.rs +0 -0
  1500. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/gen_types.rs +0 -0
  1501. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/isa/arm64.rs +0 -0
  1502. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/isa/mod.rs +0 -0
  1503. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/isa/riscv64.rs +0 -0
  1504. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/isa/s390x.rs +0 -0
  1505. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/lib.rs +0 -0
  1506. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/entities.rs +0 -0
  1507. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/formats.rs +0 -0
  1508. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/immediates.rs +0 -0
  1509. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/instructions.rs +0 -0
  1510. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/mod.rs +0 -0
  1511. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/types.rs +0 -0
  1512. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/srcgen.rs +0 -0
  1513. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/unique_table.rs +0 -0
  1514. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/LICENSE +0 -0
  1515. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/README.md +0 -0
  1516. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/src/constant_hash.rs +0 -0
  1517. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/src/constants.rs +0 -0
  1518. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/src/lib.rs +0 -0
  1519. /data/ext/cargo-vendor/{cranelift-control-0.96.4 → cranelift-control-0.97.1}/LICENSE +0 -0
  1520. /data/ext/cargo-vendor/{cranelift-control-0.96.4 → cranelift-control-0.97.1}/README.md +0 -0
  1521. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/LICENSE +0 -0
  1522. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/README.md +0 -0
  1523. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/boxed_slice.rs +0 -0
  1524. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/iter.rs +0 -0
  1525. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/keys.rs +0 -0
  1526. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/lib.rs +0 -0
  1527. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/map.rs +0 -0
  1528. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/packed_option.rs +0 -0
  1529. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/primary.rs +0 -0
  1530. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/set.rs +0 -0
  1531. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/sparse.rs +0 -0
  1532. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/LICENSE +0 -0
  1533. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/README.md +0 -0
  1534. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/frontend.rs +0 -0
  1535. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/lib.rs +0 -0
  1536. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/ssa.rs +0 -0
  1537. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/switch.rs +0 -0
  1538. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/variable.rs +0 -0
  1539. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/README.md +0 -0
  1540. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/build.rs +0 -0
  1541. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/bad_converters.isle +0 -0
  1542. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1543. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1544. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/error1.isle +0 -0
  1545. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/extra_parens.isle +0 -0
  1546. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/impure_expression.isle +0 -0
  1547. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/impure_rhs.isle +0 -0
  1548. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1549. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/multi_prio.isle +0 -0
  1550. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/borrows.isle +0 -0
  1551. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/borrows_main.rs +0 -0
  1552. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/iflets.isle +0 -0
  1553. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/iflets_main.rs +0 -0
  1554. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/multi_constructor.isle +0 -0
  1555. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/multi_constructor_main.rs +0 -0
  1556. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/multi_extractor.isle +0 -0
  1557. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/multi_extractor_main.rs +0 -0
  1558. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/test.isle +0 -0
  1559. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/test_main.rs +0 -0
  1560. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/bound_var.isle +0 -0
  1561. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/construct_and_extract.isle +0 -0
  1562. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/conversions.isle +0 -0
  1563. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/conversions_extern.isle +0 -0
  1564. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/let.isle +0 -0
  1565. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/nodebug.isle +0 -0
  1566. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1567. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/test2.isle +0 -0
  1568. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/test3.isle +0 -0
  1569. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/test4.isle +0 -0
  1570. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/tutorial.isle +0 -0
  1571. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/run/iconst.isle +0 -0
  1572. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/run/iconst_main.rs +0 -0
  1573. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/run/let_shadowing.isle +0 -0
  1574. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/run/let_shadowing_main.rs +0 -0
  1575. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/ast.rs +0 -0
  1576. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/codegen.rs +0 -0
  1577. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/compile.rs +0 -0
  1578. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/error.rs +0 -0
  1579. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/lexer.rs +0 -0
  1580. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/lib.rs +0 -0
  1581. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/log.rs +0 -0
  1582. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/overlap.rs +0 -0
  1583. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/parser.rs +0 -0
  1584. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/sema.rs +0 -0
  1585. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/serialize.rs +0 -0
  1586. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/trie_again.rs +0 -0
  1587. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/tests/run_tests.rs +0 -0
  1588. /data/ext/cargo-vendor/{cranelift-native-0.96.4 → cranelift-native-0.97.1}/LICENSE +0 -0
  1589. /data/ext/cargo-vendor/{cranelift-native-0.96.4 → cranelift-native-0.97.1}/README.md +0 -0
  1590. /data/ext/cargo-vendor/{cranelift-native-0.96.4 → cranelift-native-0.97.1}/src/riscv.rs +0 -0
  1591. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/LICENSE +0 -0
  1592. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/README.md +0 -0
  1593. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/code_translator/bounds_checks.rs +0 -0
  1594. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/environ/mod.rs +0 -0
  1595. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/heap.rs +0 -0
  1596. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/lib.rs +0 -0
  1597. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/module_translator.rs +0 -0
  1598. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/state.rs +0 -0
  1599. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/tests/wasm_testsuite.rs +0 -0
  1600. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/arith.wat +0 -0
  1601. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/br_table.wat +0 -0
  1602. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/call-simd.wat +0 -0
  1603. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/call.wat +0 -0
  1604. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/embenchen_fannkuch.wat +0 -0
  1605. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/embenchen_fasta.wat +0 -0
  1606. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/embenchen_ifs.wat +0 -0
  1607. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/embenchen_primes.wat +0 -0
  1608. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/fac-multi-value.wat +0 -0
  1609. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/fibonacci.wat +0 -0
  1610. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/globals.wat +0 -0
  1611. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/icall-simd.wat +0 -0
  1612. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/icall.wat +0 -0
  1613. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-0.wat +0 -0
  1614. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-1.wat +0 -0
  1615. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-2.wat +0 -0
  1616. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-3.wat +0 -0
  1617. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-4.wat +0 -0
  1618. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-5.wat +0 -0
  1619. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-6.wat +0 -0
  1620. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-unreachable-else-params-2.wat +0 -0
  1621. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-unreachable-else-params.wat +0 -0
  1622. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  1623. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/memory.wat +0 -0
  1624. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-0.wat +0 -0
  1625. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-1.wat +0 -0
  1626. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-10.wat +0 -0
  1627. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-11.wat +0 -0
  1628. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-12.wat +0 -0
  1629. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-13.wat +0 -0
  1630. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-14.wat +0 -0
  1631. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-15.wat +0 -0
  1632. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-16.wat +0 -0
  1633. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-17.wat +0 -0
  1634. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-2.wat +0 -0
  1635. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-3.wat +0 -0
  1636. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-4.wat +0 -0
  1637. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-5.wat +0 -0
  1638. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-6.wat +0 -0
  1639. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-7.wat +0 -0
  1640. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-8.wat +0 -0
  1641. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-9.wat +0 -0
  1642. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/nullref.wat +0 -0
  1643. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/passive-data.wat +0 -0
  1644. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/pr2303.wat +0 -0
  1645. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/pr2559.wat +0 -0
  1646. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/ref-func-0.wat +0 -0
  1647. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/rust_fannkuch.wat +0 -0
  1648. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/select.wat +0 -0
  1649. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/simd-store.wat +0 -0
  1650. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/simd.wat +0 -0
  1651. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/table-copy.wat +0 -0
  1652. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/unreachable_code.wat +0 -0
  1653. /data/ext/cargo-vendor/{file-per-thread-logger-0.1.6 → file-per-thread-logger-0.2.0}/LICENSE +0 -0
  1654. /data/ext/cargo-vendor/{file-per-thread-logger-0.1.6 → file-per-thread-logger-0.2.0}/README.md +0 -0
  1655. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/LICENSE +0 -0
  1656. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/README.md +0 -0
  1657. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/doc/DESIGN.md +0 -0
  1658. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/doc/TODO +0 -0
  1659. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/cfg.rs +0 -0
  1660. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/domtree.rs +0 -0
  1661. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/fuzzing/mod.rs +0 -0
  1662. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/indexset.rs +0 -0
  1663. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/ion/dump.rs +0 -0
  1664. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/ion/redundant_moves.rs +0 -0
  1665. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/ion/reg_traversal.rs +0 -0
  1666. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/postorder.rs +0 -0
  1667. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/ssa.rs +0 -0
  1668. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/LICENSE +0 -0
  1669. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/README.md +0 -0
  1670. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/clocks.rs +0 -0
  1671. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/file.rs +0 -0
  1672. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/net.rs +0 -0
  1673. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/sched/unix.rs +0 -0
  1674. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/sched/windows.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/sched.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/stdio.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/LICENSE +0 -0
  1678. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/README.md +0 -0
  1679. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/README.md +0 -0
  1680. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/docs/README.md +0 -0
  1681. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/README.md +0 -0
  1682. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/docs.md +0 -0
  1683. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  1684. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  1685. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  1686. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  1687. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  1688. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  1689. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  1690. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  1691. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  1692. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  1693. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  1694. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/old/snapshot_0/docs.md +0 -0
  1695. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  1696. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  1697. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/snapshot/docs.html +0 -0
  1698. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/snapshot/docs.md +0 -0
  1699. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  1700. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  1701. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/proposal-template/README.md +0 -0
  1702. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/proposals/README.md +0 -0
  1703. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/snapshots/README.md +0 -0
  1704. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/standard/README.md +0 -0
  1705. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/build.rs +0 -0
  1706. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/clocks.rs +0 -0
  1707. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/dir.rs +0 -0
  1708. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/error.rs +0 -0
  1709. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/lib.rs +0 -0
  1710. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/pipe.rs +0 -0
  1711. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/random.rs +0 -0
  1712. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/sched/subscription.rs +0 -0
  1713. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/sched.rs +0 -0
  1714. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/snapshots/mod.rs +0 -0
  1715. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/snapshots/preview_0.rs +0 -0
  1716. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/snapshots/preview_1/error.rs +0 -0
  1717. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/string_array.rs +0 -0
  1718. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/table.rs +0 -0
  1719. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasm-encoder-0.29.0}/LICENSE +0 -0
  1720. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmparser-0.107.0}/LICENSE +0 -0
  1721. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/README.md +0 -0
  1722. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/examples/simple.rs +0 -0
  1723. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/limits.rs +0 -0
  1724. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/component/aliases.rs +0 -0
  1725. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/component/names.rs +0 -0
  1726. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/component/start.rs +0 -0
  1727. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/component.rs +0 -0
  1728. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/code.rs +0 -0
  1729. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/custom.rs +0 -0
  1730. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/data.rs +0 -0
  1731. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/elements.rs +0 -0
  1732. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/exports.rs +0 -0
  1733. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/functions.rs +0 -0
  1734. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/globals.rs +0 -0
  1735. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/imports.rs +0 -0
  1736. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/init.rs +0 -0
  1737. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/memories.rs +0 -0
  1738. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/names.rs +0 -0
  1739. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/operators.rs +0 -0
  1740. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/tables.rs +0 -0
  1741. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/tags.rs +0 -0
  1742. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers.rs +0 -0
  1743. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/resources.rs +0 -0
  1744. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/validator/func.rs +0 -0
  1745. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/tests/big-module.rs +0 -0
  1746. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmparser-0.111.0}/LICENSE +0 -0
  1747. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmprinter-0.2.63}/LICENSE +0 -0
  1748. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-10.0.0}/LICENSE +0 -0
  1749. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/README.md +0 -0
  1750. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/code.rs +0 -0
  1751. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/func/host.rs +0 -0
  1752. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/func/options.rs +0 -0
  1753. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/func/typed.rs +0 -0
  1754. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/func.rs +0 -0
  1755. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/linker.rs +0 -0
  1756. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/storage.rs +0 -0
  1757. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/store.rs +0 -0
  1758. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/types.rs +0 -0
  1759. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/values.rs +0 -0
  1760. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/limits.rs +0 -0
  1761. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/module/registry.rs +0 -0
  1762. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/profiling.rs +0 -0
  1763. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/signatures.rs +0 -0
  1764. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/store/data.rs +0 -0
  1765. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/trampoline/memory.rs +0 -0
  1766. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/trampoline/table.rs +0 -0
  1767. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/trampoline.rs +0 -0
  1768. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/trap.rs +0 -0
  1769. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/unix.rs +0 -0
  1770. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/windows.rs +0 -0
  1771. /data/ext/cargo-vendor/{wasmtime-asm-macros-9.0.4 → wasmtime-asm-macros-10.0.0}/src/lib.rs +0 -0
  1772. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-cache-10.0.0}/LICENSE +0 -0
  1773. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/build.rs +0 -0
  1774. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/config/tests.rs +0 -0
  1775. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/config.rs +0 -0
  1776. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/lib.rs +0 -0
  1777. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/tests.rs +0 -0
  1778. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  1779. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/worker/tests.rs +0 -0
  1780. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/worker.rs +0 -0
  1781. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/tests/cache_write_default_config.rs +0 -0
  1782. /data/ext/cargo-vendor/{wasmtime-component-macro-9.0.4 → wasmtime-component-macro-10.0.0}/src/component.rs +0 -0
  1783. /data/ext/cargo-vendor/{wasmtime-component-macro-9.0.4 → wasmtime-component-macro-10.0.0}/src/lib.rs +0 -0
  1784. /data/ext/cargo-vendor/{wasmtime-component-util-9.0.4 → wasmtime-component-util-10.0.0}/src/lib.rs +0 -0
  1785. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-cranelift-10.0.0}/LICENSE +0 -0
  1786. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/SECURITY.md +0 -0
  1787. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/builder.rs +0 -0
  1788. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/compiler/component.rs +0 -0
  1789. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/gc.rs +0 -0
  1790. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/address_transform.rs +0 -0
  1791. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/attr.rs +0 -0
  1792. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/expression.rs +0 -0
  1793. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/line_program.rs +0 -0
  1794. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/mod.rs +0 -0
  1795. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1796. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/refs.rs +0 -0
  1797. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/unit.rs +0 -0
  1798. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/utils.rs +0 -0
  1799. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/write_debuginfo.rs +0 -0
  1800. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug.rs +0 -0
  1801. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.0}/src/compiled_function.rs +0 -0
  1802. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.0}/src/isa_builder.rs +0 -0
  1803. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.0}/src/obj.rs +0 -0
  1804. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-environ-10.0.0}/LICENSE +0 -0
  1805. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/examples/factc.rs +0 -0
  1806. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/address_map.rs +0 -0
  1807. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/builtin.rs +0 -0
  1808. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/compilation.rs +0 -0
  1809. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component/dfg.rs +0 -0
  1810. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component/info.rs +0 -0
  1811. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component/translate/adapt.rs +0 -0
  1812. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1813. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component.rs +0 -0
  1814. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/core_types.rs +0 -0
  1815. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/signature.rs +0 -0
  1816. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/trampoline.rs +0 -0
  1817. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/transcode.rs +0 -0
  1818. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/traps.rs +0 -0
  1819. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/lib.rs +0 -0
  1820. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/module_types.rs +0 -0
  1821. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/obj.rs +0 -0
  1822. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/ref_bits.rs +0 -0
  1823. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/scopevec.rs +0 -0
  1824. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/stack_map.rs +0 -0
  1825. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/tunables.rs +0 -0
  1826. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/vmoffsets.rs +0 -0
  1827. /data/ext/cargo-vendor/{wasmtime-types-9.0.4 → wasmtime-fiber-10.0.0}/LICENSE +0 -0
  1828. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/build.rs +0 -0
  1829. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/aarch64.rs +0 -0
  1830. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/arm.rs +0 -0
  1831. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/riscv64.rs +0 -0
  1832. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/s390x.S +0 -0
  1833. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/x86.rs +0 -0
  1834. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/x86_64.rs +0 -0
  1835. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/windows.c +0 -0
  1836. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-jit-10.0.0}/LICENSE +0 -0
  1837. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/code_memory.rs +0 -0
  1838. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/debug.rs +0 -0
  1839. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/demangling.rs +0 -0
  1840. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/unwind/miri.rs +0 -0
  1841. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/unwind/systemv.rs +0 -0
  1842. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/unwind/winx64.rs +0 -0
  1843. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/unwind.rs +0 -0
  1844. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.0}/README.md +0 -0
  1845. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.0}/src/gdb_jit_int.rs +0 -0
  1846. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.0}/src/lib.rs +0 -0
  1847. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.0}/src/perf_jitdump.rs +0 -0
  1848. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.0}/src/lib.rs +0 -0
  1849. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.0}/src/libc.rs +0 -0
  1850. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.0}/src/miri.rs +0 -0
  1851. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.0}/src/win.rs +0 -0
  1852. /data/ext/cargo-vendor/{wiggle-9.0.4 → wasmtime-runtime-10.0.0}/LICENSE +0 -0
  1853. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/build.rs +0 -0
  1854. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/component/transcode.rs +0 -0
  1855. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/export.rs +0 -0
  1856. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/helpers.c +0 -0
  1857. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/imports.rs +0 -0
  1858. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1859. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/instance/allocator/pooling/unix.rs +0 -0
  1860. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/instance/allocator/pooling/windows.rs +0 -0
  1861. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/mmap.rs +0 -0
  1862. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/mmap_vec.rs +0 -0
  1863. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/module_id.rs +0 -0
  1864. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/parking_spot.rs +0 -0
  1865. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/store_box.rs +0 -0
  1866. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/aarch64.rs +0 -0
  1867. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/riscv64.rs +0 -0
  1868. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/s390x.S +0 -0
  1869. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/s390x.rs +0 -0
  1870. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/x86_64.rs +0 -0
  1871. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines.rs +0 -0
  1872. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace/aarch64.rs +0 -0
  1873. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace/riscv64.rs +0 -0
  1874. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace/s390x.rs +0 -0
  1875. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace/x86_64.rs +0 -0
  1876. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace.rs +0 -0
  1877. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/macos.rs +0 -0
  1878. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/windows.rs +0 -0
  1879. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wasmtime-types-10.0.1}/LICENSE +0 -0
  1880. /data/ext/cargo-vendor/{wasmtime-types-9.0.4 → wasmtime-types-10.0.1}/src/error.rs +0 -0
  1881. /data/ext/cargo-vendor/{wiggle-macro-9.0.4 → wasmtime-wasi-10.0.0}/LICENSE +0 -0
  1882. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-wasi-10.0.0}/README.md +0 -0
  1883. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-wasi-10.0.0}/build.rs +0 -0
  1884. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.0}/LICENSE +0 -0
  1885. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.0}/src/builder.rs +0 -0
  1886. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.0}/src/lib.rs +0 -0
  1887. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-9.0.4 → wasmtime-wit-bindgen-10.0.0}/src/rust.rs +0 -0
  1888. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-9.0.4 → wasmtime-wit-bindgen-10.0.0}/src/source.rs +0 -0
  1889. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/borrow.rs +0 -0
  1890. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/error.rs +0 -0
  1891. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/guest_type.rs +0 -0
  1892. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/lib.rs +0 -0
  1893. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/region.rs +0 -0
  1894. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/wasmtime.rs +0 -0
  1895. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/README.md +0 -0
  1896. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/codegen_settings.rs +0 -0
  1897. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/config.rs +0 -0
  1898. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/funcs.rs +0 -0
  1899. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/lib.rs +0 -0
  1900. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/lifetimes.rs +0 -0
  1901. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/module_trait.rs +0 -0
  1902. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/names.rs +0 -0
  1903. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/error.rs +0 -0
  1904. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/flags.rs +0 -0
  1905. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/handle.rs +0 -0
  1906. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/mod.rs +0 -0
  1907. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/record.rs +0 -0
  1908. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/variant.rs +0 -0
  1909. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/wasmtime.rs +0 -0
  1910. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/LICENSE +0 -0
  1911. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/build.rs +0 -0
  1912. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/src/isa/aarch64/address.rs +0 -0
  1913. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/src/isa/reg.rs +0 -0
  1914. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/src/regset.rs +0 -0
  1915. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/README.md +0 -0
  1916. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/src/abi.rs +0 -0
  1917. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/src/ast/toposort.rs +0 -0
  1918. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/src/sizealign.rs +0 -0
  1919. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  1920. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/async.wit.result +0 -0
  1921. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/async1.wit.result +0 -0
  1922. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/bad-list.wit +0 -0
  1923. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  1924. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/dangling-type.wit +0 -0
  1925. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  1926. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/invalid-md.md +0 -0
  1927. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  1928. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  1929. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/keyword.wit +0 -0
  1930. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/keyword.wit.result +0 -0
  1931. /data/ext/cargo-vendor/{wit-parser-0.7.1/tests/ui/empty.wit → wit-parser-0.8.0/tests/ui/parse-fail/missing-package.wit} +0 -0
  1932. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  1933. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
@@ -0,0 +1,3354 @@
1
+ // Copyright Mozilla Foundation. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution.
3
+ //
4
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5
+ // https://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6
+ // <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
7
+ // option. This file may not be copied, modified, or distributed
8
+ // except according to those terms.
9
+
10
+ //! Functions for converting between different in-RAM representations of text
11
+ //! and for quickly checking if the Unicode Bidirectional Algorithm can be
12
+ //! avoided.
13
+ //!
14
+ //! By using slices for output, the functions here seek to enable by-register
15
+ //! (ALU register or SIMD register as available) operations in order to
16
+ //! outperform iterator-based conversions available in the Rust standard
17
+ //! library.
18
+ //!
19
+ //! _Note:_ "Latin1" in this module refers to the Unicode range from U+0000 to
20
+ //! U+00FF, inclusive, and does not refer to the windows-1252 range. This
21
+ //! in-memory encoding is sometimes used as a storage optimization of text
22
+ //! when UTF-16 indexing and length semantics are exposed.
23
+ //!
24
+ //! The FFI binding for this module are in the
25
+ //! [encoding_c_mem crate](https://github.com/hsivonen/encoding_c_mem).
26
+
27
+ #[cfg(feature = "alloc")]
28
+ use alloc::borrow::Cow;
29
+ #[cfg(feature = "alloc")]
30
+ use alloc::string::String;
31
+ #[cfg(feature = "alloc")]
32
+ use alloc::vec::Vec;
33
+
34
+ use super::in_inclusive_range16;
35
+ use super::in_inclusive_range32;
36
+ use super::in_inclusive_range8;
37
+ use super::in_range16;
38
+ use super::in_range32;
39
+ use super::DecoderResult;
40
+ use crate::ascii::*;
41
+ use crate::utf_8::*;
42
+
43
+ macro_rules! non_fuzz_debug_assert {
44
+ ($($arg:tt)*) => (if !cfg!(fuzzing) { debug_assert!($($arg)*); })
45
+ }
46
+
47
+ cfg_if! {
48
+ if #[cfg(feature = "simd-accel")] {
49
+ use ::core::intrinsics::likely;
50
+ use ::core::intrinsics::unlikely;
51
+ } else {
52
+ #[inline(always)]
53
+ fn likely(b: bool) -> bool {
54
+ b
55
+ }
56
+ #[inline(always)]
57
+ fn unlikely(b: bool) -> bool {
58
+ b
59
+ }
60
+ }
61
+ }
62
+
63
+ /// Classification of text as Latin1 (all code points are below U+0100),
64
+ /// left-to-right with some non-Latin1 characters or as containing at least
65
+ /// some right-to-left characters.
66
+ #[must_use]
67
+ #[derive(Debug, PartialEq, Eq)]
68
+ #[repr(C)]
69
+ pub enum Latin1Bidi {
70
+ /// Every character is below U+0100.
71
+ Latin1 = 0,
72
+ /// There is at least one character that's U+0100 or higher, but there
73
+ /// are no right-to-left characters.
74
+ LeftToRight = 1,
75
+ /// There is at least one right-to-left character.
76
+ Bidi = 2,
77
+ }
78
+
79
+ // `as` truncates, so works on 32-bit, too.
80
+ #[allow(dead_code)]
81
+ const LATIN1_MASK: usize = 0xFF00_FF00_FF00_FF00u64 as usize;
82
+
83
+ #[allow(unused_macros)]
84
+ macro_rules! by_unit_check_alu {
85
+ ($name:ident, $unit:ty, $bound:expr, $mask:ident) => {
86
+ #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))]
87
+ #[inline(always)]
88
+ fn $name(buffer: &[$unit]) -> bool {
89
+ let mut offset = 0usize;
90
+ let mut accu = 0usize;
91
+ let unit_size = ::core::mem::size_of::<$unit>();
92
+ let len = buffer.len();
93
+ if len >= ALU_ALIGNMENT / unit_size {
94
+ // The most common reason to return `false` is for the first code
95
+ // unit to fail the test, so check that first.
96
+ if buffer[0] >= $bound {
97
+ return false;
98
+ }
99
+ let src = buffer.as_ptr();
100
+ let mut until_alignment = ((ALU_ALIGNMENT - ((src as usize) & ALU_ALIGNMENT_MASK))
101
+ & ALU_ALIGNMENT_MASK)
102
+ / unit_size;
103
+ if until_alignment + ALU_ALIGNMENT / unit_size <= len {
104
+ if until_alignment != 0 {
105
+ accu |= buffer[offset] as usize;
106
+ offset += 1;
107
+ until_alignment -= 1;
108
+ while until_alignment != 0 {
109
+ accu |= buffer[offset] as usize;
110
+ offset += 1;
111
+ until_alignment -= 1;
112
+ }
113
+ if accu >= $bound {
114
+ return false;
115
+ }
116
+ }
117
+ let len_minus_stride = len - ALU_ALIGNMENT / unit_size;
118
+ if offset + (4 * (ALU_ALIGNMENT / unit_size)) <= len {
119
+ let len_minus_unroll = len - (4 * (ALU_ALIGNMENT / unit_size));
120
+ loop {
121
+ let unroll_accu = unsafe { *(src.add(offset) as *const usize) }
122
+ | unsafe {
123
+ *(src.add(offset + (ALU_ALIGNMENT / unit_size)) as *const usize)
124
+ }
125
+ | unsafe {
126
+ *(src.add(offset + (2 * (ALU_ALIGNMENT / unit_size)))
127
+ as *const usize)
128
+ }
129
+ | unsafe {
130
+ *(src.add(offset + (3 * (ALU_ALIGNMENT / unit_size)))
131
+ as *const usize)
132
+ };
133
+ if unroll_accu & $mask != 0 {
134
+ return false;
135
+ }
136
+ offset += 4 * (ALU_ALIGNMENT / unit_size);
137
+ if offset > len_minus_unroll {
138
+ break;
139
+ }
140
+ }
141
+ }
142
+ while offset <= len_minus_stride {
143
+ accu |= unsafe { *(src.add(offset) as *const usize) };
144
+ offset += ALU_ALIGNMENT / unit_size;
145
+ }
146
+ }
147
+ }
148
+ for &unit in &buffer[offset..] {
149
+ accu |= unit as usize;
150
+ }
151
+ accu & $mask == 0
152
+ }
153
+ };
154
+ }
155
+
156
+ #[allow(unused_macros)]
157
+ macro_rules! by_unit_check_simd {
158
+ ($name:ident, $unit:ty, $splat:expr, $simd_ty:ty, $bound:expr, $func:ident) => {
159
+ #[inline(always)]
160
+ fn $name(buffer: &[$unit]) -> bool {
161
+ let mut offset = 0usize;
162
+ let mut accu = 0usize;
163
+ let unit_size = ::core::mem::size_of::<$unit>();
164
+ let len = buffer.len();
165
+ if len >= SIMD_STRIDE_SIZE / unit_size {
166
+ // The most common reason to return `false` is for the first code
167
+ // unit to fail the test, so check that first.
168
+ if buffer[0] >= $bound {
169
+ return false;
170
+ }
171
+ let src = buffer.as_ptr();
172
+ let mut until_alignment = ((SIMD_ALIGNMENT
173
+ - ((src as usize) & SIMD_ALIGNMENT_MASK))
174
+ & SIMD_ALIGNMENT_MASK)
175
+ / unit_size;
176
+ if until_alignment + SIMD_STRIDE_SIZE / unit_size <= len {
177
+ if until_alignment != 0 {
178
+ accu |= buffer[offset] as usize;
179
+ offset += 1;
180
+ until_alignment -= 1;
181
+ while until_alignment != 0 {
182
+ accu |= buffer[offset] as usize;
183
+ offset += 1;
184
+ until_alignment -= 1;
185
+ }
186
+ if accu >= $bound {
187
+ return false;
188
+ }
189
+ }
190
+ let len_minus_stride = len - SIMD_STRIDE_SIZE / unit_size;
191
+ if offset + (4 * (SIMD_STRIDE_SIZE / unit_size)) <= len {
192
+ let len_minus_unroll = len - (4 * (SIMD_STRIDE_SIZE / unit_size));
193
+ loop {
194
+ let unroll_accu = unsafe { *(src.add(offset) as *const $simd_ty) }
195
+ | unsafe {
196
+ *(src.add(offset + (SIMD_STRIDE_SIZE / unit_size))
197
+ as *const $simd_ty)
198
+ }
199
+ | unsafe {
200
+ *(src.add(offset + (2 * (SIMD_STRIDE_SIZE / unit_size)))
201
+ as *const $simd_ty)
202
+ }
203
+ | unsafe {
204
+ *(src.add(offset + (3 * (SIMD_STRIDE_SIZE / unit_size)))
205
+ as *const $simd_ty)
206
+ };
207
+ if !$func(unroll_accu) {
208
+ return false;
209
+ }
210
+ offset += 4 * (SIMD_STRIDE_SIZE / unit_size);
211
+ if offset > len_minus_unroll {
212
+ break;
213
+ }
214
+ }
215
+ }
216
+ let mut simd_accu = $splat;
217
+ while offset <= len_minus_stride {
218
+ simd_accu = simd_accu | unsafe { *(src.add(offset) as *const $simd_ty) };
219
+ offset += SIMD_STRIDE_SIZE / unit_size;
220
+ }
221
+ if !$func(simd_accu) {
222
+ return false;
223
+ }
224
+ }
225
+ }
226
+ for &unit in &buffer[offset..] {
227
+ accu |= unit as usize;
228
+ }
229
+ accu < $bound
230
+ }
231
+ };
232
+ }
233
+
234
+ cfg_if! {
235
+ if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
236
+ use crate::simd_funcs::*;
237
+ use packed_simd::u8x16;
238
+ use packed_simd::u16x8;
239
+
240
+ const SIMD_ALIGNMENT: usize = 16;
241
+
242
+ const SIMD_ALIGNMENT_MASK: usize = 15;
243
+
244
+ by_unit_check_simd!(is_ascii_impl, u8, u8x16::splat(0), u8x16, 0x80, simd_is_ascii);
245
+ by_unit_check_simd!(is_basic_latin_impl, u16, u16x8::splat(0), u16x8, 0x80, simd_is_basic_latin);
246
+ by_unit_check_simd!(is_utf16_latin1_impl, u16, u16x8::splat(0), u16x8, 0x100, simd_is_latin1);
247
+
248
+ #[inline(always)]
249
+ fn utf16_valid_up_to_impl(buffer: &[u16]) -> usize {
250
+ // This function is a mess, because it simultaneously tries to do
251
+ // only aligned SIMD (perhaps misguidedly) and needs to deal with
252
+ // the last code unit in a SIMD stride being part of a valid
253
+ // surrogate pair.
254
+ let unit_size = ::core::mem::size_of::<u16>();
255
+ let src = buffer.as_ptr();
256
+ let len = buffer.len();
257
+ let mut offset = 0usize;
258
+ 'outer: loop {
259
+ let until_alignment = ((SIMD_ALIGNMENT - ((unsafe { src.add(offset) } as usize) & SIMD_ALIGNMENT_MASK)) &
260
+ SIMD_ALIGNMENT_MASK) / unit_size;
261
+ if until_alignment == 0 {
262
+ if offset + SIMD_STRIDE_SIZE / unit_size > len {
263
+ break;
264
+ }
265
+ } else {
266
+ let offset_plus_until_alignment = offset + until_alignment;
267
+ let offset_plus_until_alignment_plus_one = offset_plus_until_alignment + 1;
268
+ if offset_plus_until_alignment_plus_one + SIMD_STRIDE_SIZE / unit_size > len {
269
+ break;
270
+ }
271
+ let (up_to, last_valid_low) = utf16_valid_up_to_alu(&buffer[offset..offset_plus_until_alignment_plus_one]);
272
+ if up_to < until_alignment {
273
+ return offset + up_to;
274
+ }
275
+ if last_valid_low {
276
+ offset = offset_plus_until_alignment_plus_one;
277
+ continue;
278
+ }
279
+ offset = offset_plus_until_alignment;
280
+ }
281
+ let len_minus_stride = len - SIMD_STRIDE_SIZE / unit_size;
282
+ loop {
283
+ let offset_plus_stride = offset + SIMD_STRIDE_SIZE / unit_size;
284
+ if contains_surrogates(unsafe { *(src.add(offset) as *const u16x8) }) {
285
+ if offset_plus_stride == len {
286
+ break 'outer;
287
+ }
288
+ let offset_plus_stride_plus_one = offset_plus_stride + 1;
289
+ let (up_to, last_valid_low) = utf16_valid_up_to_alu(&buffer[offset..offset_plus_stride_plus_one]);
290
+ if up_to < SIMD_STRIDE_SIZE / unit_size {
291
+ return offset + up_to;
292
+ }
293
+ if last_valid_low {
294
+ offset = offset_plus_stride_plus_one;
295
+ continue 'outer;
296
+ }
297
+ }
298
+ offset = offset_plus_stride;
299
+ if offset > len_minus_stride {
300
+ break 'outer;
301
+ }
302
+ }
303
+ }
304
+ let (up_to, _) = utf16_valid_up_to_alu(&buffer[offset..]);
305
+ offset + up_to
306
+ }
307
+ } else {
308
+ by_unit_check_alu!(is_ascii_impl, u8, 0x80, ASCII_MASK);
309
+ by_unit_check_alu!(is_basic_latin_impl, u16, 0x80, BASIC_LATIN_MASK);
310
+ by_unit_check_alu!(is_utf16_latin1_impl, u16, 0x100, LATIN1_MASK);
311
+
312
+ #[inline(always)]
313
+ fn utf16_valid_up_to_impl(buffer: &[u16]) -> usize {
314
+ let (up_to, _) = utf16_valid_up_to_alu(buffer);
315
+ up_to
316
+ }
317
+ }
318
+ }
319
+
320
+ /// The second return value is true iff the last code unit of the slice was
321
+ /// reached and turned out to be a low surrogate that is part of a valid pair.
322
+ #[cfg_attr(feature = "cargo-clippy", allow(collapsible_if))]
323
+ #[inline(always)]
324
+ fn utf16_valid_up_to_alu(buffer: &[u16]) -> (usize, bool) {
325
+ let len = buffer.len();
326
+ if len == 0 {
327
+ return (0, false);
328
+ }
329
+ let mut offset = 0usize;
330
+ loop {
331
+ let unit = buffer[offset];
332
+ let next = offset + 1;
333
+ let unit_minus_surrogate_start = unit.wrapping_sub(0xD800);
334
+ if unit_minus_surrogate_start > (0xDFFF - 0xD800) {
335
+ // Not a surrogate
336
+ offset = next;
337
+ if offset == len {
338
+ return (offset, false);
339
+ }
340
+ continue;
341
+ }
342
+ if unit_minus_surrogate_start <= (0xDBFF - 0xD800) {
343
+ // high surrogate
344
+ if next < len {
345
+ let second = buffer[next];
346
+ let second_minus_low_surrogate_start = second.wrapping_sub(0xDC00);
347
+ if second_minus_low_surrogate_start <= (0xDFFF - 0xDC00) {
348
+ // The next code unit is a low surrogate. Advance position.
349
+ offset = next + 1;
350
+ if offset == len {
351
+ return (offset, true);
352
+ }
353
+ continue;
354
+ }
355
+ // The next code unit is not a low surrogate. Don't advance
356
+ // position and treat the high surrogate as unpaired.
357
+ // fall through
358
+ }
359
+ // Unpaired, fall through
360
+ }
361
+ // Unpaired surrogate
362
+ return (offset, false);
363
+ }
364
+ }
365
+
366
+ cfg_if! {
367
+ if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
368
+ #[inline(always)]
369
+ fn is_str_latin1_impl(buffer: &str) -> Option<usize> {
370
+ let mut offset = 0usize;
371
+ let bytes = buffer.as_bytes();
372
+ let len = bytes.len();
373
+ if len >= SIMD_STRIDE_SIZE {
374
+ let src = bytes.as_ptr();
375
+ let mut until_alignment = (SIMD_ALIGNMENT - ((src as usize) & SIMD_ALIGNMENT_MASK)) &
376
+ SIMD_ALIGNMENT_MASK;
377
+ if until_alignment + SIMD_STRIDE_SIZE <= len {
378
+ while until_alignment != 0 {
379
+ if bytes[offset] > 0xC3 {
380
+ return Some(offset);
381
+ }
382
+ offset += 1;
383
+ until_alignment -= 1;
384
+ }
385
+ let len_minus_stride = len - SIMD_STRIDE_SIZE;
386
+ loop {
387
+ if !simd_is_str_latin1(unsafe { *(src.add(offset) as *const u8x16) }) {
388
+ // TODO: Ensure this compiles away when inlined into `is_str_latin1()`.
389
+ while bytes[offset] & 0xC0 == 0x80 {
390
+ offset += 1;
391
+ }
392
+ return Some(offset);
393
+ }
394
+ offset += SIMD_STRIDE_SIZE;
395
+ if offset > len_minus_stride {
396
+ break;
397
+ }
398
+ }
399
+ }
400
+ }
401
+ for i in offset..len {
402
+ if bytes[i] > 0xC3 {
403
+ return Some(i);
404
+ }
405
+ }
406
+ None
407
+ }
408
+ } else {
409
+ #[inline(always)]
410
+ fn is_str_latin1_impl(buffer: &str) -> Option<usize> {
411
+ let mut bytes = buffer.as_bytes();
412
+ let mut total = 0;
413
+ loop {
414
+ if let Some((byte, offset)) = validate_ascii(bytes) {
415
+ total += offset;
416
+ if byte > 0xC3 {
417
+ return Some(total);
418
+ }
419
+ bytes = &bytes[offset + 2..];
420
+ total += 2;
421
+ } else {
422
+ return None;
423
+ }
424
+ }
425
+ }
426
+ }
427
+ }
428
+
429
+ #[inline(always)]
430
+ fn is_utf8_latin1_impl(buffer: &[u8]) -> Option<usize> {
431
+ let mut bytes = buffer;
432
+ let mut total = 0;
433
+ loop {
434
+ if let Some((byte, offset)) = validate_ascii(bytes) {
435
+ total += offset;
436
+ if in_inclusive_range8(byte, 0xC2, 0xC3) {
437
+ let next = offset + 1;
438
+ if next == bytes.len() {
439
+ return Some(total);
440
+ }
441
+ if bytes[next] & 0xC0 != 0x80 {
442
+ return Some(total);
443
+ }
444
+ bytes = &bytes[offset + 2..];
445
+ total += 2;
446
+ } else {
447
+ return Some(total);
448
+ }
449
+ } else {
450
+ return None;
451
+ }
452
+ }
453
+ }
454
+
455
+ cfg_if! {
456
+ if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
457
+ #[inline(always)]
458
+ fn is_utf16_bidi_impl(buffer: &[u16]) -> bool {
459
+ let mut offset = 0usize;
460
+ let len = buffer.len();
461
+ if len >= SIMD_STRIDE_SIZE / 2 {
462
+ let src = buffer.as_ptr();
463
+ let mut until_alignment = ((SIMD_ALIGNMENT - ((src as usize) & SIMD_ALIGNMENT_MASK)) &
464
+ SIMD_ALIGNMENT_MASK) / 2;
465
+ if until_alignment + (SIMD_STRIDE_SIZE / 2) <= len {
466
+ while until_alignment != 0 {
467
+ if is_utf16_code_unit_bidi(buffer[offset]) {
468
+ return true;
469
+ }
470
+ offset += 1;
471
+ until_alignment -= 1;
472
+ }
473
+ let len_minus_stride = len - (SIMD_STRIDE_SIZE / 2);
474
+ loop {
475
+ if is_u16x8_bidi(unsafe { *(src.add(offset) as *const u16x8) }) {
476
+ return true;
477
+ }
478
+ offset += SIMD_STRIDE_SIZE / 2;
479
+ if offset > len_minus_stride {
480
+ break;
481
+ }
482
+ }
483
+ }
484
+ }
485
+ for &u in &buffer[offset..] {
486
+ if is_utf16_code_unit_bidi(u) {
487
+ return true;
488
+ }
489
+ }
490
+ false
491
+ }
492
+ } else {
493
+ #[inline(always)]
494
+ fn is_utf16_bidi_impl(buffer: &[u16]) -> bool {
495
+ for &u in buffer {
496
+ if is_utf16_code_unit_bidi(u) {
497
+ return true;
498
+ }
499
+ }
500
+ false
501
+ }
502
+ }
503
+ }
504
+
505
+ cfg_if! {
506
+ if #[cfg(all(feature = "simd-accel", any(target_feature = "sse2", all(target_endian = "little", target_arch = "aarch64"), all(target_endian = "little", target_feature = "neon"))))] {
507
+ #[inline(always)]
508
+ fn check_utf16_for_latin1_and_bidi_impl(buffer: &[u16]) -> Latin1Bidi {
509
+ let mut offset = 0usize;
510
+ let len = buffer.len();
511
+ if len >= SIMD_STRIDE_SIZE / 2 {
512
+ let src = buffer.as_ptr();
513
+ let mut until_alignment = ((SIMD_ALIGNMENT - ((src as usize) & SIMD_ALIGNMENT_MASK)) &
514
+ SIMD_ALIGNMENT_MASK) / 2;
515
+ if until_alignment + (SIMD_STRIDE_SIZE / 2) <= len {
516
+ while until_alignment != 0 {
517
+ if buffer[offset] > 0xFF {
518
+ // This transition isn't optimal, since the aligment is recomputing
519
+ // but not tweaking further today.
520
+ if is_utf16_bidi_impl(&buffer[offset..]) {
521
+ return Latin1Bidi::Bidi;
522
+ }
523
+ return Latin1Bidi::LeftToRight;
524
+ }
525
+ offset += 1;
526
+ until_alignment -= 1;
527
+ }
528
+ let len_minus_stride = len - (SIMD_STRIDE_SIZE / 2);
529
+ loop {
530
+ let mut s = unsafe { *(src.add(offset) as *const u16x8) };
531
+ if !simd_is_latin1(s) {
532
+ loop {
533
+ if is_u16x8_bidi(s) {
534
+ return Latin1Bidi::Bidi;
535
+ }
536
+ offset += SIMD_STRIDE_SIZE / 2;
537
+ if offset > len_minus_stride {
538
+ for &u in &buffer[offset..] {
539
+ if is_utf16_code_unit_bidi(u) {
540
+ return Latin1Bidi::Bidi;
541
+ }
542
+ }
543
+ return Latin1Bidi::LeftToRight;
544
+ }
545
+ s = unsafe { *(src.add(offset) as *const u16x8) };
546
+ }
547
+ }
548
+ offset += SIMD_STRIDE_SIZE / 2;
549
+ if offset > len_minus_stride {
550
+ break;
551
+ }
552
+ }
553
+ }
554
+ }
555
+ let mut iter = (&buffer[offset..]).iter();
556
+ loop {
557
+ if let Some(&u) = iter.next() {
558
+ if u > 0xFF {
559
+ let mut inner_u = u;
560
+ loop {
561
+ if is_utf16_code_unit_bidi(inner_u) {
562
+ return Latin1Bidi::Bidi;
563
+ }
564
+ if let Some(&code_unit) = iter.next() {
565
+ inner_u = code_unit;
566
+ } else {
567
+ return Latin1Bidi::LeftToRight;
568
+ }
569
+ }
570
+ }
571
+ } else {
572
+ return Latin1Bidi::Latin1;
573
+ }
574
+ }
575
+ }
576
+ } else {
577
+ #[cfg_attr(feature = "cargo-clippy", allow(cast_ptr_alignment))]
578
+ #[inline(always)]
579
+ fn check_utf16_for_latin1_and_bidi_impl(buffer: &[u16]) -> Latin1Bidi {
580
+ let mut offset = 0usize;
581
+ let len = buffer.len();
582
+ if len >= ALU_ALIGNMENT / 2 {
583
+ let src = buffer.as_ptr();
584
+ let mut until_alignment = ((ALU_ALIGNMENT - ((src as usize) & ALU_ALIGNMENT_MASK)) &
585
+ ALU_ALIGNMENT_MASK) / 2;
586
+ if until_alignment + ALU_ALIGNMENT / 2 <= len {
587
+ while until_alignment != 0 {
588
+ if buffer[offset] > 0xFF {
589
+ if is_utf16_bidi_impl(&buffer[offset..]) {
590
+ return Latin1Bidi::Bidi;
591
+ }
592
+ return Latin1Bidi::LeftToRight;
593
+ }
594
+ offset += 1;
595
+ until_alignment -= 1;
596
+ }
597
+ let len_minus_stride = len - ALU_ALIGNMENT / 2;
598
+ loop {
599
+ if unsafe { *(src.add(offset) as *const usize) } & LATIN1_MASK != 0 {
600
+ if is_utf16_bidi_impl(&buffer[offset..]) {
601
+ return Latin1Bidi::Bidi;
602
+ }
603
+ return Latin1Bidi::LeftToRight;
604
+ }
605
+ offset += ALU_ALIGNMENT / 2;
606
+ if offset > len_minus_stride {
607
+ break;
608
+ }
609
+ }
610
+ }
611
+ }
612
+ let mut iter = (&buffer[offset..]).iter();
613
+ loop {
614
+ if let Some(&u) = iter.next() {
615
+ if u > 0xFF {
616
+ let mut inner_u = u;
617
+ loop {
618
+ if is_utf16_code_unit_bidi(inner_u) {
619
+ return Latin1Bidi::Bidi;
620
+ }
621
+ if let Some(&code_unit) = iter.next() {
622
+ inner_u = code_unit;
623
+ } else {
624
+ return Latin1Bidi::LeftToRight;
625
+ }
626
+ }
627
+ }
628
+ } else {
629
+ return Latin1Bidi::Latin1;
630
+ }
631
+ }
632
+ }
633
+ }
634
+ }
635
+
636
+ /// Checks whether the buffer is all-ASCII.
637
+ ///
638
+ /// May read the entire buffer even if it isn't all-ASCII. (I.e. the function
639
+ /// is not guaranteed to fail fast.)
640
+ pub fn is_ascii(buffer: &[u8]) -> bool {
641
+ is_ascii_impl(buffer)
642
+ }
643
+
644
+ /// Checks whether the buffer is all-Basic Latin (i.e. UTF-16 representing
645
+ /// only ASCII characters).
646
+ ///
647
+ /// May read the entire buffer even if it isn't all-ASCII. (I.e. the function
648
+ /// is not guaranteed to fail fast.)
649
+ pub fn is_basic_latin(buffer: &[u16]) -> bool {
650
+ is_basic_latin_impl(buffer)
651
+ }
652
+
653
+ /// Checks whether the buffer is valid UTF-8 representing only code points
654
+ /// less than or equal to U+00FF.
655
+ ///
656
+ /// Fails fast. (I.e. returns before having read the whole buffer if UTF-8
657
+ /// invalidity or code points above U+00FF are discovered.
658
+ pub fn is_utf8_latin1(buffer: &[u8]) -> bool {
659
+ is_utf8_latin1_impl(buffer).is_none()
660
+ }
661
+
662
+ /// Checks whether the buffer represents only code points less than or equal
663
+ /// to U+00FF.
664
+ ///
665
+ /// Fails fast. (I.e. returns before having read the whole buffer if code
666
+ /// points above U+00FF are discovered.
667
+ pub fn is_str_latin1(buffer: &str) -> bool {
668
+ is_str_latin1_impl(buffer).is_none()
669
+ }
670
+
671
+ /// Checks whether the buffer represents only code point less than or equal
672
+ /// to U+00FF.
673
+ ///
674
+ /// May read the entire buffer even if it isn't all-Latin1. (I.e. the function
675
+ /// is not guaranteed to fail fast.)
676
+ pub fn is_utf16_latin1(buffer: &[u16]) -> bool {
677
+ is_utf16_latin1_impl(buffer)
678
+ }
679
+
680
+ /// Checks whether a potentially-invalid UTF-8 buffer contains code points
681
+ /// that trigger right-to-left processing.
682
+ ///
683
+ /// The check is done on a Unicode block basis without regard to assigned
684
+ /// vs. unassigned code points in the block. Hebrew presentation forms in
685
+ /// the Alphabetic Presentation Forms block are treated as if they formed
686
+ /// a block on their own (i.e. it treated as right-to-left). Additionally,
687
+ /// the four RIGHT-TO-LEFT FOO controls in General Punctuation are checked
688
+ /// for. Control characters that are technically bidi controls but do not
689
+ /// cause right-to-left behavior without the presence of right-to-left
690
+ /// characters or right-to-left controls are not checked for. As a special
691
+ /// case, U+FEFF is excluded from Arabic Presentation Forms-B.
692
+ ///
693
+ /// Returns `true` if the input is invalid UTF-8 or the input contains an
694
+ /// RTL character. Returns `false` if the input is valid UTF-8 and contains
695
+ /// no RTL characters.
696
+ #[cfg_attr(feature = "cargo-clippy", allow(collapsible_if, cyclomatic_complexity))]
697
+ #[inline]
698
+ pub fn is_utf8_bidi(buffer: &[u8]) -> bool {
699
+ // As of rustc 1.25.0-nightly (73ac5d6a8 2018-01-11), this is faster
700
+ // than UTF-8 validation followed by `is_str_bidi()` for German,
701
+ // Russian and Japanese. However, this is considerably slower for Thai.
702
+ // Chances are that the compiler makes some branch predictions that are
703
+ // unfortunate for Thai. Not spending the time to manually optimize
704
+ // further at this time, since it's unclear if this variant even has
705
+ // use cases. However, this is worth revisiting once Rust gets the
706
+ // ability to annotate relative priorities of match arms.
707
+
708
+ // U+058F: D6 8F
709
+ // U+0590: D6 90
710
+ // U+08FF: E0 A3 BF
711
+ // U+0900: E0 A4 80
712
+ //
713
+ // U+200F: E2 80 8F
714
+ // U+202B: E2 80 AB
715
+ // U+202E: E2 80 AE
716
+ // U+2067: E2 81 A7
717
+ //
718
+ // U+FB1C: EF AC 9C
719
+ // U+FB1D: EF AC 9D
720
+ // U+FDFF: EF B7 BF
721
+ // U+FE00: EF B8 80
722
+ //
723
+ // U+FE6F: EF B9 AF
724
+ // U+FE70: EF B9 B0
725
+ // U+FEFE: EF BB BE
726
+ // U+FEFF: EF BB BF
727
+ //
728
+ // U+107FF: F0 90 9F BF
729
+ // U+10800: F0 90 A0 80
730
+ // U+10FFF: F0 90 BF BF
731
+ // U+11000: F0 91 80 80
732
+ //
733
+ // U+1E7FF: F0 9E 9F BF
734
+ // U+1E800: F0 9E A0 80
735
+ // U+1EFFF: F0 9E BF BF
736
+ // U+1F000: F0 9F 80 80
737
+ let mut src = buffer;
738
+ 'outer: loop {
739
+ if let Some((mut byte, mut read)) = validate_ascii(src) {
740
+ // Check for the longest sequence to avoid checking twice for the
741
+ // multi-byte sequences.
742
+ if read + 4 <= src.len() {
743
+ 'inner: loop {
744
+ // At this point, `byte` is not included in `read`.
745
+ match byte {
746
+ 0..=0x7F => {
747
+ // ASCII: go back to SIMD.
748
+ read += 1;
749
+ src = &src[read..];
750
+ continue 'outer;
751
+ }
752
+ 0xC2..=0xD5 => {
753
+ // Two-byte
754
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
755
+ if !in_inclusive_range8(second, 0x80, 0xBF) {
756
+ return true;
757
+ }
758
+ read += 2;
759
+ }
760
+ 0xD6 => {
761
+ // Two-byte
762
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
763
+ if !in_inclusive_range8(second, 0x80, 0xBF) {
764
+ return true;
765
+ }
766
+ // XXX consider folding the above and below checks
767
+ if second > 0x8F {
768
+ return true;
769
+ }
770
+ read += 2;
771
+ }
772
+ // two-byte starting with 0xD7 and above is bidi
773
+ 0xE1 | 0xE3..=0xEC | 0xEE => {
774
+ // Three-byte normal
775
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
776
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
777
+ if ((UTF8_DATA.table[usize::from(second)]
778
+ & unsafe {
779
+ *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80))
780
+ })
781
+ | (third >> 6))
782
+ != 2
783
+ {
784
+ return true;
785
+ }
786
+ read += 3;
787
+ }
788
+ 0xE2 => {
789
+ // Three-byte normal, potentially bidi
790
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
791
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
792
+ if ((UTF8_DATA.table[usize::from(second)]
793
+ & unsafe {
794
+ *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80))
795
+ })
796
+ | (third >> 6))
797
+ != 2
798
+ {
799
+ return true;
800
+ }
801
+ if second == 0x80 {
802
+ if third == 0x8F || third == 0xAB || third == 0xAE {
803
+ return true;
804
+ }
805
+ } else if second == 0x81 {
806
+ if third == 0xA7 {
807
+ return true;
808
+ }
809
+ }
810
+ read += 3;
811
+ }
812
+ 0xEF => {
813
+ // Three-byte normal, potentially bidi
814
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
815
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
816
+ if ((UTF8_DATA.table[usize::from(second)]
817
+ & unsafe {
818
+ *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80))
819
+ })
820
+ | (third >> 6))
821
+ != 2
822
+ {
823
+ return true;
824
+ }
825
+ if in_inclusive_range8(second, 0xAC, 0xB7) {
826
+ if second == 0xAC {
827
+ if third > 0x9C {
828
+ return true;
829
+ }
830
+ } else {
831
+ return true;
832
+ }
833
+ } else if in_inclusive_range8(second, 0xB9, 0xBB) {
834
+ if second == 0xB9 {
835
+ if third > 0xAF {
836
+ return true;
837
+ }
838
+ } else if second == 0xBB {
839
+ if third != 0xBF {
840
+ return true;
841
+ }
842
+ } else {
843
+ return true;
844
+ }
845
+ }
846
+ read += 3;
847
+ }
848
+ 0xE0 => {
849
+ // Three-byte special lower bound, potentially bidi
850
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
851
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
852
+ if ((UTF8_DATA.table[usize::from(second)]
853
+ & unsafe {
854
+ *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80))
855
+ })
856
+ | (third >> 6))
857
+ != 2
858
+ {
859
+ return true;
860
+ }
861
+ // XXX can this be folded into the above validity check
862
+ if second < 0xA4 {
863
+ return true;
864
+ }
865
+ read += 3;
866
+ }
867
+ 0xED => {
868
+ // Three-byte special upper bound
869
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
870
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
871
+ if ((UTF8_DATA.table[usize::from(second)]
872
+ & unsafe {
873
+ *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80))
874
+ })
875
+ | (third >> 6))
876
+ != 2
877
+ {
878
+ return true;
879
+ }
880
+ read += 3;
881
+ }
882
+ 0xF1..=0xF4 => {
883
+ // Four-byte normal
884
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
885
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
886
+ let fourth = unsafe { *(src.get_unchecked(read + 3)) };
887
+ if (u16::from(
888
+ UTF8_DATA.table[usize::from(second)]
889
+ & unsafe {
890
+ *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80))
891
+ },
892
+ ) | u16::from(third >> 6)
893
+ | (u16::from(fourth & 0xC0) << 2))
894
+ != 0x202
895
+ {
896
+ return true;
897
+ }
898
+ read += 4;
899
+ }
900
+ 0xF0 => {
901
+ // Four-byte special lower bound, potentially bidi
902
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
903
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
904
+ let fourth = unsafe { *(src.get_unchecked(read + 3)) };
905
+ if (u16::from(
906
+ UTF8_DATA.table[usize::from(second)]
907
+ & unsafe {
908
+ *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80))
909
+ },
910
+ ) | u16::from(third >> 6)
911
+ | (u16::from(fourth & 0xC0) << 2))
912
+ != 0x202
913
+ {
914
+ return true;
915
+ }
916
+ if unlikely(second == 0x90 || second == 0x9E) {
917
+ let third = src[read + 2];
918
+ if third >= 0xA0 {
919
+ return true;
920
+ }
921
+ }
922
+ read += 4;
923
+ }
924
+ _ => {
925
+ // Invalid lead or bidi-only lead
926
+ return true;
927
+ }
928
+ }
929
+ if read + 4 > src.len() {
930
+ if read == src.len() {
931
+ return false;
932
+ }
933
+ byte = src[read];
934
+ break 'inner;
935
+ }
936
+ byte = src[read];
937
+ continue 'inner;
938
+ }
939
+ }
940
+ // We can't have a complete 4-byte sequence, but we could still have
941
+ // a complete shorter sequence.
942
+
943
+ // At this point, `byte` is not included in `read`.
944
+ match byte {
945
+ 0..=0x7F => {
946
+ // ASCII: go back to SIMD.
947
+ read += 1;
948
+ src = &src[read..];
949
+ continue 'outer;
950
+ }
951
+ 0xC2..=0xD5 => {
952
+ // Two-byte
953
+ let new_read = read + 2;
954
+ if new_read > src.len() {
955
+ return true;
956
+ }
957
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
958
+ if !in_inclusive_range8(second, 0x80, 0xBF) {
959
+ return true;
960
+ }
961
+ read = new_read;
962
+ // We need to deal with the case where we came here with 3 bytes
963
+ // left, so we need to take a look at the last one.
964
+ src = &src[read..];
965
+ continue 'outer;
966
+ }
967
+ 0xD6 => {
968
+ // Two-byte, potentially bidi
969
+ let new_read = read + 2;
970
+ if new_read > src.len() {
971
+ return true;
972
+ }
973
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
974
+ if !in_inclusive_range8(second, 0x80, 0xBF) {
975
+ return true;
976
+ }
977
+ // XXX consider folding the above and below checks
978
+ if second > 0x8F {
979
+ return true;
980
+ }
981
+ read = new_read;
982
+ // We need to deal with the case where we came here with 3 bytes
983
+ // left, so we need to take a look at the last one.
984
+ src = &src[read..];
985
+ continue 'outer;
986
+ }
987
+ // two-byte starting with 0xD7 and above is bidi
988
+ 0xE1 | 0xE3..=0xEC | 0xEE => {
989
+ // Three-byte normal
990
+ let new_read = read + 3;
991
+ if new_read > src.len() {
992
+ return true;
993
+ }
994
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
995
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
996
+ if ((UTF8_DATA.table[usize::from(second)]
997
+ & unsafe { *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80)) })
998
+ | (third >> 6))
999
+ != 2
1000
+ {
1001
+ return true;
1002
+ }
1003
+ }
1004
+ 0xE2 => {
1005
+ // Three-byte normal, potentially bidi
1006
+ let new_read = read + 3;
1007
+ if new_read > src.len() {
1008
+ return true;
1009
+ }
1010
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
1011
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
1012
+ if ((UTF8_DATA.table[usize::from(second)]
1013
+ & unsafe { *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80)) })
1014
+ | (third >> 6))
1015
+ != 2
1016
+ {
1017
+ return true;
1018
+ }
1019
+ if second == 0x80 {
1020
+ if third == 0x8F || third == 0xAB || third == 0xAE {
1021
+ return true;
1022
+ }
1023
+ } else if second == 0x81 {
1024
+ if third == 0xA7 {
1025
+ return true;
1026
+ }
1027
+ }
1028
+ }
1029
+ 0xEF => {
1030
+ // Three-byte normal, potentially bidi
1031
+ let new_read = read + 3;
1032
+ if new_read > src.len() {
1033
+ return true;
1034
+ }
1035
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
1036
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
1037
+ if ((UTF8_DATA.table[usize::from(second)]
1038
+ & unsafe { *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80)) })
1039
+ | (third >> 6))
1040
+ != 2
1041
+ {
1042
+ return true;
1043
+ }
1044
+ if in_inclusive_range8(second, 0xAC, 0xB7) {
1045
+ if second == 0xAC {
1046
+ if third > 0x9C {
1047
+ return true;
1048
+ }
1049
+ } else {
1050
+ return true;
1051
+ }
1052
+ } else if in_inclusive_range8(second, 0xB9, 0xBB) {
1053
+ if second == 0xB9 {
1054
+ if third > 0xAF {
1055
+ return true;
1056
+ }
1057
+ } else if second == 0xBB {
1058
+ if third != 0xBF {
1059
+ return true;
1060
+ }
1061
+ } else {
1062
+ return true;
1063
+ }
1064
+ }
1065
+ }
1066
+ 0xE0 => {
1067
+ // Three-byte special lower bound, potentially bidi
1068
+ let new_read = read + 3;
1069
+ if new_read > src.len() {
1070
+ return true;
1071
+ }
1072
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
1073
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
1074
+ if ((UTF8_DATA.table[usize::from(second)]
1075
+ & unsafe { *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80)) })
1076
+ | (third >> 6))
1077
+ != 2
1078
+ {
1079
+ return true;
1080
+ }
1081
+ // XXX can this be folded into the above validity check
1082
+ if second < 0xA4 {
1083
+ return true;
1084
+ }
1085
+ }
1086
+ 0xED => {
1087
+ // Three-byte special upper bound
1088
+ let new_read = read + 3;
1089
+ if new_read > src.len() {
1090
+ return true;
1091
+ }
1092
+ let second = unsafe { *(src.get_unchecked(read + 1)) };
1093
+ let third = unsafe { *(src.get_unchecked(read + 2)) };
1094
+ if ((UTF8_DATA.table[usize::from(second)]
1095
+ & unsafe { *(UTF8_DATA.table.get_unchecked(byte as usize + 0x80)) })
1096
+ | (third >> 6))
1097
+ != 2
1098
+ {
1099
+ return true;
1100
+ }
1101
+ }
1102
+ _ => {
1103
+ // Invalid lead, 4-byte lead or 2-byte bidi-only lead
1104
+ return true;
1105
+ }
1106
+ }
1107
+ return false;
1108
+ } else {
1109
+ return false;
1110
+ }
1111
+ }
1112
+ }
1113
+
1114
+ /// Checks whether a valid UTF-8 buffer contains code points that trigger
1115
+ /// right-to-left processing.
1116
+ ///
1117
+ /// The check is done on a Unicode block basis without regard to assigned
1118
+ /// vs. unassigned code points in the block. Hebrew presentation forms in
1119
+ /// the Alphabetic Presentation Forms block are treated as if they formed
1120
+ /// a block on their own (i.e. it treated as right-to-left). Additionally,
1121
+ /// the four RIGHT-TO-LEFT FOO controls in General Punctuation are checked
1122
+ /// for. Control characters that are technically bidi controls but do not
1123
+ /// cause right-to-left behavior without the presence of right-to-left
1124
+ /// characters or right-to-left controls are not checked for. As a special
1125
+ /// case, U+FEFF is excluded from Arabic Presentation Forms-B.
1126
+ #[cfg_attr(feature = "cargo-clippy", allow(collapsible_if))]
1127
+ #[inline]
1128
+ pub fn is_str_bidi(buffer: &str) -> bool {
1129
+ // U+058F: D6 8F
1130
+ // U+0590: D6 90
1131
+ // U+08FF: E0 A3 BF
1132
+ // U+0900: E0 A4 80
1133
+ //
1134
+ // U+200F: E2 80 8F
1135
+ // U+202B: E2 80 AB
1136
+ // U+202E: E2 80 AE
1137
+ // U+2067: E2 81 A7
1138
+ //
1139
+ // U+FB1C: EF AC 9C
1140
+ // U+FB1D: EF AC 9D
1141
+ // U+FDFF: EF B7 BF
1142
+ // U+FE00: EF B8 80
1143
+ //
1144
+ // U+FE6F: EF B9 AF
1145
+ // U+FE70: EF B9 B0
1146
+ // U+FEFE: EF BB BE
1147
+ // U+FEFF: EF BB BF
1148
+ //
1149
+ // U+107FF: F0 90 9F BF
1150
+ // U+10800: F0 90 A0 80
1151
+ // U+10FFF: F0 90 BF BF
1152
+ // U+11000: F0 91 80 80
1153
+ //
1154
+ // U+1E7FF: F0 9E 9F BF
1155
+ // U+1E800: F0 9E A0 80
1156
+ // U+1EFFF: F0 9E BF BF
1157
+ // U+1F000: F0 9F 80 80
1158
+ let mut bytes = buffer.as_bytes();
1159
+ 'outer: loop {
1160
+ // TODO: Instead of just validating ASCII using SIMD, use SIMD
1161
+ // to check for non-ASCII lead bytes, too, to quickly conclude
1162
+ // that the vector consist entirely of CJK and below-Hebrew
1163
+ // code points.
1164
+ // Unfortunately, scripts above Arabic but below CJK share
1165
+ // lead bytes with RTL.
1166
+ if let Some((mut byte, mut read)) = validate_ascii(bytes) {
1167
+ 'inner: loop {
1168
+ // At this point, `byte` is not included in `read`.
1169
+ if byte < 0xE0 {
1170
+ if byte >= 0x80 {
1171
+ // Two-byte
1172
+ // Adding `unlikely` here improved throughput on
1173
+ // Russian plain text by 33%!
1174
+ if unlikely(byte >= 0xD6) {
1175
+ if byte == 0xD6 {
1176
+ let second = bytes[read + 1];
1177
+ if second > 0x8F {
1178
+ return true;
1179
+ }
1180
+ } else {
1181
+ return true;
1182
+ }
1183
+ }
1184
+ read += 2;
1185
+ } else {
1186
+ // ASCII: write and go back to SIMD.
1187
+ read += 1;
1188
+ // Intuitively, we should go back to the outer loop only
1189
+ // if byte is 0x30 or above, so as to avoid trashing on
1190
+ // ASCII space, comma and period in non-Latin context.
1191
+ // However, the extra branch seems to cost more than it's
1192
+ // worth.
1193
+ bytes = &bytes[read..];
1194
+ continue 'outer;
1195
+ }
1196
+ } else if byte < 0xF0 {
1197
+ // Three-byte
1198
+ if unlikely(!in_inclusive_range8(byte, 0xE3, 0xEE) && byte != 0xE1) {
1199
+ let second = bytes[read + 1];
1200
+ if byte == 0xE0 {
1201
+ if second < 0xA4 {
1202
+ return true;
1203
+ }
1204
+ } else if byte == 0xE2 {
1205
+ let third = bytes[read + 2];
1206
+ if second == 0x80 {
1207
+ if third == 0x8F || third == 0xAB || third == 0xAE {
1208
+ return true;
1209
+ }
1210
+ } else if second == 0x81 {
1211
+ if third == 0xA7 {
1212
+ return true;
1213
+ }
1214
+ }
1215
+ } else {
1216
+ debug_assert_eq!(byte, 0xEF);
1217
+ if in_inclusive_range8(second, 0xAC, 0xB7) {
1218
+ if second == 0xAC {
1219
+ let third = bytes[read + 2];
1220
+ if third > 0x9C {
1221
+ return true;
1222
+ }
1223
+ } else {
1224
+ return true;
1225
+ }
1226
+ } else if in_inclusive_range8(second, 0xB9, 0xBB) {
1227
+ if second == 0xB9 {
1228
+ let third = bytes[read + 2];
1229
+ if third > 0xAF {
1230
+ return true;
1231
+ }
1232
+ } else if second == 0xBB {
1233
+ let third = bytes[read + 2];
1234
+ if third != 0xBF {
1235
+ return true;
1236
+ }
1237
+ } else {
1238
+ return true;
1239
+ }
1240
+ }
1241
+ }
1242
+ }
1243
+ read += 3;
1244
+ } else {
1245
+ // Four-byte
1246
+ let second = bytes[read + 1];
1247
+ if unlikely(byte == 0xF0 && (second == 0x90 || second == 0x9E)) {
1248
+ let third = bytes[read + 2];
1249
+ if third >= 0xA0 {
1250
+ return true;
1251
+ }
1252
+ }
1253
+ read += 4;
1254
+ }
1255
+ // The comparison is always < or == and never >, but including
1256
+ // > here to let the compiler assume that < is true if this
1257
+ // comparison is false.
1258
+ if read >= bytes.len() {
1259
+ return false;
1260
+ }
1261
+ byte = bytes[read];
1262
+ continue 'inner;
1263
+ }
1264
+ } else {
1265
+ return false;
1266
+ }
1267
+ }
1268
+ }
1269
+
1270
+ /// Checks whether a UTF-16 buffer contains code points that trigger
1271
+ /// right-to-left processing.
1272
+ ///
1273
+ /// The check is done on a Unicode block basis without regard to assigned
1274
+ /// vs. unassigned code points in the block. Hebrew presentation forms in
1275
+ /// the Alphabetic Presentation Forms block are treated as if they formed
1276
+ /// a block on their own (i.e. it treated as right-to-left). Additionally,
1277
+ /// the four RIGHT-TO-LEFT FOO controls in General Punctuation are checked
1278
+ /// for. Control characters that are technically bidi controls but do not
1279
+ /// cause right-to-left behavior without the presence of right-to-left
1280
+ /// characters or right-to-left controls are not checked for. As a special
1281
+ /// case, U+FEFF is excluded from Arabic Presentation Forms-B.
1282
+ ///
1283
+ /// Returns `true` if the input contains an RTL character or an unpaired
1284
+ /// high surrogate that could be the high half of an RTL character.
1285
+ /// Returns `false` if the input contains neither RTL characters nor
1286
+ /// unpaired high surrogates that could be higher halves of RTL characters.
1287
+ pub fn is_utf16_bidi(buffer: &[u16]) -> bool {
1288
+ is_utf16_bidi_impl(buffer)
1289
+ }
1290
+
1291
+ /// Checks whether a scalar value triggers right-to-left processing.
1292
+ ///
1293
+ /// The check is done on a Unicode block basis without regard to assigned
1294
+ /// vs. unassigned code points in the block. Hebrew presentation forms in
1295
+ /// the Alphabetic Presentation Forms block are treated as if they formed
1296
+ /// a block on their own (i.e. it treated as right-to-left). Additionally,
1297
+ /// the four RIGHT-TO-LEFT FOO controls in General Punctuation are checked
1298
+ /// for. Control characters that are technically bidi controls but do not
1299
+ /// cause right-to-left behavior without the presence of right-to-left
1300
+ /// characters or right-to-left controls are not checked for. As a special
1301
+ /// case, U+FEFF is excluded from Arabic Presentation Forms-B.
1302
+ #[inline(always)]
1303
+ pub fn is_char_bidi(c: char) -> bool {
1304
+ // Controls:
1305
+ // Every control with RIGHT-TO-LEFT in its name in
1306
+ // https://www.unicode.org/charts/PDF/U2000.pdf
1307
+ // U+200F RLM
1308
+ // U+202B RLE
1309
+ // U+202E RLO
1310
+ // U+2067 RLI
1311
+ //
1312
+ // BMP RTL:
1313
+ // https://www.unicode.org/roadmaps/bmp/
1314
+ // U+0590...U+08FF
1315
+ // U+FB1D...U+FDFF Hebrew presentation forms and
1316
+ // Arabic Presentation Forms A
1317
+ // U+FE70...U+FEFE Arabic Presentation Forms B (excl. BOM)
1318
+ //
1319
+ // Supplementary RTL:
1320
+ // https://www.unicode.org/roadmaps/smp/
1321
+ // U+10800...U+10FFF (Lead surrogate U+D802 or U+D803)
1322
+ // U+1E800...U+1EFFF (Lead surrogate U+D83A or U+D83B)
1323
+ let code_point = u32::from(c);
1324
+ if code_point < 0x0590 {
1325
+ // Below Hebrew
1326
+ return false;
1327
+ }
1328
+ if in_range32(code_point, 0x0900, 0xFB1D) {
1329
+ // Above Arabic Extended-A and below Hebrew presentation forms
1330
+ if in_inclusive_range32(code_point, 0x200F, 0x2067) {
1331
+ // In the range that contains the RTL controls
1332
+ return code_point == 0x200F
1333
+ || code_point == 0x202B
1334
+ || code_point == 0x202E
1335
+ || code_point == 0x2067;
1336
+ }
1337
+ return false;
1338
+ }
1339
+ if code_point > 0x1EFFF {
1340
+ // Above second astral RTL. (Emoji is here.)
1341
+ return false;
1342
+ }
1343
+ if in_range32(code_point, 0x11000, 0x1E800) {
1344
+ // Between astral RTL blocks
1345
+ return false;
1346
+ }
1347
+ if in_range32(code_point, 0xFEFF, 0x10800) {
1348
+ // Above Arabic Presentations Forms B (excl. BOM) and below first
1349
+ // astral RTL
1350
+ return false;
1351
+ }
1352
+ if in_range32(code_point, 0xFE00, 0xFE70) {
1353
+ // Between Arabic Presentations Forms
1354
+ return false;
1355
+ }
1356
+ true
1357
+ }
1358
+
1359
+ /// Checks whether a UTF-16 code unit triggers right-to-left processing.
1360
+ ///
1361
+ /// The check is done on a Unicode block basis without regard to assigned
1362
+ /// vs. unassigned code points in the block. Hebrew presentation forms in
1363
+ /// the Alphabetic Presentation Forms block are treated as if they formed
1364
+ /// a block on their own (i.e. it treated as right-to-left). Additionally,
1365
+ /// the four RIGHT-TO-LEFT FOO controls in General Punctuation are checked
1366
+ /// for. Control characters that are technically bidi controls but do not
1367
+ /// cause right-to-left behavior without the presence of right-to-left
1368
+ /// characters or right-to-left controls are not checked for. As a special
1369
+ /// case, U+FEFF is excluded from Arabic Presentation Forms-B.
1370
+ ///
1371
+ /// Since supplementary-plane right-to-left blocks are identifiable from the
1372
+ /// high surrogate without examining the low surrogate, this function returns
1373
+ /// `true` for such high surrogates making the function suitable for handling
1374
+ /// supplementary-plane text without decoding surrogate pairs to scalar
1375
+ /// values. Obviously, such high surrogates are then reported as right-to-left
1376
+ /// even if actually unpaired.
1377
+ #[inline(always)]
1378
+ pub fn is_utf16_code_unit_bidi(u: u16) -> bool {
1379
+ if u < 0x0590 {
1380
+ // Below Hebrew
1381
+ return false;
1382
+ }
1383
+ if in_range16(u, 0x0900, 0xD802) {
1384
+ // Above Arabic Extended-A and below first RTL surrogate
1385
+ if in_inclusive_range16(u, 0x200F, 0x2067) {
1386
+ // In the range that contains the RTL controls
1387
+ return u == 0x200F || u == 0x202B || u == 0x202E || u == 0x2067;
1388
+ }
1389
+ return false;
1390
+ }
1391
+ if in_range16(u, 0xD83C, 0xFB1D) {
1392
+ // Between astral RTL high surrogates and Hebrew presentation forms
1393
+ // (Emoji is here)
1394
+ return false;
1395
+ }
1396
+ if in_range16(u, 0xD804, 0xD83A) {
1397
+ // Between RTL high surragates
1398
+ return false;
1399
+ }
1400
+ if u > 0xFEFE {
1401
+ // Above Arabic Presentation Forms (excl. BOM)
1402
+ return false;
1403
+ }
1404
+ if in_range16(u, 0xFE00, 0xFE70) {
1405
+ // Between Arabic Presentations Forms
1406
+ return false;
1407
+ }
1408
+ true
1409
+ }
1410
+
1411
+ /// Checks whether a potentially invalid UTF-8 buffer contains code points
1412
+ /// that trigger right-to-left processing or is all-Latin1.
1413
+ ///
1414
+ /// Possibly more efficient than performing the checks separately.
1415
+ ///
1416
+ /// Returns `Latin1Bidi::Latin1` if `is_utf8_latin1()` would return `true`.
1417
+ /// Otherwise, returns `Latin1Bidi::Bidi` if `is_utf8_bidi()` would return
1418
+ /// `true`. Otherwise, returns `Latin1Bidi::LeftToRight`.
1419
+ pub fn check_utf8_for_latin1_and_bidi(buffer: &[u8]) -> Latin1Bidi {
1420
+ if let Some(offset) = is_utf8_latin1_impl(buffer) {
1421
+ if is_utf8_bidi(&buffer[offset..]) {
1422
+ Latin1Bidi::Bidi
1423
+ } else {
1424
+ Latin1Bidi::LeftToRight
1425
+ }
1426
+ } else {
1427
+ Latin1Bidi::Latin1
1428
+ }
1429
+ }
1430
+
1431
+ /// Checks whether a valid UTF-8 buffer contains code points
1432
+ /// that trigger right-to-left processing or is all-Latin1.
1433
+ ///
1434
+ /// Possibly more efficient than performing the checks separately.
1435
+ ///
1436
+ /// Returns `Latin1Bidi::Latin1` if `is_str_latin1()` would return `true`.
1437
+ /// Otherwise, returns `Latin1Bidi::Bidi` if `is_str_bidi()` would return
1438
+ /// `true`. Otherwise, returns `Latin1Bidi::LeftToRight`.
1439
+ pub fn check_str_for_latin1_and_bidi(buffer: &str) -> Latin1Bidi {
1440
+ // The transition from the latin1 check to the bidi check isn't
1441
+ // optimal but not tweaking it to perfection today.
1442
+ if let Some(offset) = is_str_latin1_impl(buffer) {
1443
+ if is_str_bidi(&buffer[offset..]) {
1444
+ Latin1Bidi::Bidi
1445
+ } else {
1446
+ Latin1Bidi::LeftToRight
1447
+ }
1448
+ } else {
1449
+ Latin1Bidi::Latin1
1450
+ }
1451
+ }
1452
+
1453
+ /// Checks whether a potentially invalid UTF-16 buffer contains code points
1454
+ /// that trigger right-to-left processing or is all-Latin1.
1455
+ ///
1456
+ /// Possibly more efficient than performing the checks separately.
1457
+ ///
1458
+ /// Returns `Latin1Bidi::Latin1` if `is_utf16_latin1()` would return `true`.
1459
+ /// Otherwise, returns `Latin1Bidi::Bidi` if `is_utf16_bidi()` would return
1460
+ /// `true`. Otherwise, returns `Latin1Bidi::LeftToRight`.
1461
+ pub fn check_utf16_for_latin1_and_bidi(buffer: &[u16]) -> Latin1Bidi {
1462
+ check_utf16_for_latin1_and_bidi_impl(buffer)
1463
+ }
1464
+
1465
+ /// Converts potentially-invalid UTF-8 to valid UTF-16 with errors replaced
1466
+ /// with the REPLACEMENT CHARACTER.
1467
+ ///
1468
+ /// The length of the destination buffer must be at least the length of the
1469
+ /// source buffer _plus one_.
1470
+ ///
1471
+ /// Returns the number of `u16`s written.
1472
+ ///
1473
+ /// # Panics
1474
+ ///
1475
+ /// Panics if the destination buffer is shorter than stated above.
1476
+ pub fn convert_utf8_to_utf16(src: &[u8], dst: &mut [u16]) -> usize {
1477
+ // TODO: Can the requirement for dst to be at least one unit longer
1478
+ // be eliminated?
1479
+ assert!(dst.len() > src.len());
1480
+ let mut decoder = Utf8Decoder::new_inner();
1481
+ let mut total_read = 0usize;
1482
+ let mut total_written = 0usize;
1483
+ loop {
1484
+ let (result, read, written) =
1485
+ decoder.decode_to_utf16_raw(&src[total_read..], &mut dst[total_written..], true);
1486
+ total_read += read;
1487
+ total_written += written;
1488
+ match result {
1489
+ DecoderResult::InputEmpty => {
1490
+ return total_written;
1491
+ }
1492
+ DecoderResult::OutputFull => {
1493
+ unreachable!("The assert at the top of the function should have caught this.");
1494
+ }
1495
+ DecoderResult::Malformed(_, _) => {
1496
+ // There should always be space for the U+FFFD, because
1497
+ // otherwise we'd have gotten OutputFull already.
1498
+ dst[total_written] = 0xFFFD;
1499
+ total_written += 1;
1500
+ }
1501
+ }
1502
+ }
1503
+ }
1504
+
1505
+ /// Converts valid UTF-8 to valid UTF-16.
1506
+ ///
1507
+ /// The length of the destination buffer must be at least the length of the
1508
+ /// source buffer.
1509
+ ///
1510
+ /// Returns the number of `u16`s written.
1511
+ ///
1512
+ /// # Panics
1513
+ ///
1514
+ /// Panics if the destination buffer is shorter than stated above.
1515
+ pub fn convert_str_to_utf16(src: &str, dst: &mut [u16]) -> usize {
1516
+ assert!(
1517
+ dst.len() >= src.len(),
1518
+ "Destination must not be shorter than the source."
1519
+ );
1520
+ let bytes = src.as_bytes();
1521
+ let mut read = 0;
1522
+ let mut written = 0;
1523
+ 'outer: loop {
1524
+ let mut byte = {
1525
+ let src_remaining = &bytes[read..];
1526
+ let dst_remaining = &mut dst[written..];
1527
+ let length = src_remaining.len();
1528
+ match unsafe {
1529
+ ascii_to_basic_latin(src_remaining.as_ptr(), dst_remaining.as_mut_ptr(), length)
1530
+ } {
1531
+ None => {
1532
+ written += length;
1533
+ return written;
1534
+ }
1535
+ Some((non_ascii, consumed)) => {
1536
+ read += consumed;
1537
+ written += consumed;
1538
+ non_ascii
1539
+ }
1540
+ }
1541
+ };
1542
+ 'inner: loop {
1543
+ // At this point, `byte` is not included in `read`.
1544
+ if byte < 0xE0 {
1545
+ if byte >= 0x80 {
1546
+ // Two-byte
1547
+ let second = unsafe { *(bytes.get_unchecked(read + 1)) };
1548
+ let point = ((u16::from(byte) & 0x1F) << 6) | (u16::from(second) & 0x3F);
1549
+ unsafe { *(dst.get_unchecked_mut(written)) = point };
1550
+ read += 2;
1551
+ written += 1;
1552
+ } else {
1553
+ // ASCII: write and go back to SIMD.
1554
+ unsafe { *(dst.get_unchecked_mut(written)) = u16::from(byte) };
1555
+ read += 1;
1556
+ written += 1;
1557
+ // Intuitively, we should go back to the outer loop only
1558
+ // if byte is 0x30 or above, so as to avoid trashing on
1559
+ // ASCII space, comma and period in non-Latin context.
1560
+ // However, the extra branch seems to cost more than it's
1561
+ // worth.
1562
+ continue 'outer;
1563
+ }
1564
+ } else if byte < 0xF0 {
1565
+ // Three-byte
1566
+ let second = unsafe { *(bytes.get_unchecked(read + 1)) };
1567
+ let third = unsafe { *(bytes.get_unchecked(read + 2)) };
1568
+ let point = ((u16::from(byte) & 0xF) << 12)
1569
+ | ((u16::from(second) & 0x3F) << 6)
1570
+ | (u16::from(third) & 0x3F);
1571
+ unsafe { *(dst.get_unchecked_mut(written)) = point };
1572
+ read += 3;
1573
+ written += 1;
1574
+ } else {
1575
+ // Four-byte
1576
+ let second = unsafe { *(bytes.get_unchecked(read + 1)) };
1577
+ let third = unsafe { *(bytes.get_unchecked(read + 2)) };
1578
+ let fourth = unsafe { *(bytes.get_unchecked(read + 3)) };
1579
+ let point = ((u32::from(byte) & 0x7) << 18)
1580
+ | ((u32::from(second) & 0x3F) << 12)
1581
+ | ((u32::from(third) & 0x3F) << 6)
1582
+ | (u32::from(fourth) & 0x3F);
1583
+ unsafe { *(dst.get_unchecked_mut(written)) = (0xD7C0 + (point >> 10)) as u16 };
1584
+ unsafe {
1585
+ *(dst.get_unchecked_mut(written + 1)) = (0xDC00 + (point & 0x3FF)) as u16
1586
+ };
1587
+ read += 4;
1588
+ written += 2;
1589
+ }
1590
+ // The comparison is always < or == and never >, but including
1591
+ // > here to let the compiler assume that < is true if this
1592
+ // comparison is false.
1593
+ if read >= src.len() {
1594
+ return written;
1595
+ }
1596
+ byte = bytes[read];
1597
+ continue 'inner;
1598
+ }
1599
+ }
1600
+ }
1601
+
1602
+ /// Converts potentially-invalid UTF-8 to valid UTF-16 signaling on error.
1603
+ ///
1604
+ /// The length of the destination buffer must be at least the length of the
1605
+ /// source buffer.
1606
+ ///
1607
+ /// Returns the number of `u16`s written or `None` if the input was invalid.
1608
+ ///
1609
+ /// When the input was invalid, some output may have been written.
1610
+ ///
1611
+ /// # Panics
1612
+ ///
1613
+ /// Panics if the destination buffer is shorter than stated above.
1614
+ pub fn convert_utf8_to_utf16_without_replacement(src: &[u8], dst: &mut [u16]) -> Option<usize> {
1615
+ assert!(
1616
+ dst.len() >= src.len(),
1617
+ "Destination must not be shorter than the source."
1618
+ );
1619
+ let (read, written) = convert_utf8_to_utf16_up_to_invalid(src, dst);
1620
+ if read == src.len() {
1621
+ return Some(written);
1622
+ }
1623
+ None
1624
+ }
1625
+
1626
+ /// Converts potentially-invalid UTF-16 to valid UTF-8 with errors replaced
1627
+ /// with the REPLACEMENT CHARACTER with potentially insufficient output
1628
+ /// space.
1629
+ ///
1630
+ /// Returns the number of code units read and the number of bytes written.
1631
+ ///
1632
+ /// Guarantees that the bytes in the destination beyond the number of
1633
+ /// bytes claimed as written by the second item of the return tuple
1634
+ /// are left unmodified.
1635
+ ///
1636
+ /// Not all code units are read if there isn't enough output space.
1637
+ ///
1638
+ /// Note that this method isn't designed for general streamability but for
1639
+ /// not allocating memory for the worst case up front. Specifically,
1640
+ /// if the input starts with or ends with an unpaired surrogate, those are
1641
+ /// replaced with the REPLACEMENT CHARACTER.
1642
+ ///
1643
+ /// Matches the semantics of `TextEncoder.encodeInto()` from the
1644
+ /// Encoding Standard.
1645
+ ///
1646
+ /// # Safety
1647
+ ///
1648
+ /// If you want to convert into a `&mut str`, use
1649
+ /// `convert_utf16_to_str_partial()` instead of using this function
1650
+ /// together with the `unsafe` method `as_bytes_mut()` on `&mut str`.
1651
+ #[inline(always)]
1652
+ pub fn convert_utf16_to_utf8_partial(src: &[u16], dst: &mut [u8]) -> (usize, usize) {
1653
+ // The two functions called below are marked `inline(never)` to make
1654
+ // transitions from the hot part (first function) into the cold part
1655
+ // (second function) go through a return and another call to discouge
1656
+ // the CPU from speculating from the hot code into the cold code.
1657
+ // Letting the transitions be mere intra-function jumps, even to
1658
+ // basic blocks out-of-lined to the end of the function would wipe
1659
+ // away a quarter of Arabic encode performance on Haswell!
1660
+ let (read, written) = convert_utf16_to_utf8_partial_inner(src, dst);
1661
+ if likely(read == src.len()) {
1662
+ return (read, written);
1663
+ }
1664
+ let (tail_read, tail_written) =
1665
+ convert_utf16_to_utf8_partial_tail(&src[read..], &mut dst[written..]);
1666
+ (read + tail_read, written + tail_written)
1667
+ }
1668
+
1669
+ /// Converts potentially-invalid UTF-16 to valid UTF-8 with errors replaced
1670
+ /// with the REPLACEMENT CHARACTER.
1671
+ ///
1672
+ /// The length of the destination buffer must be at least the length of the
1673
+ /// source buffer times three.
1674
+ ///
1675
+ /// Returns the number of bytes written.
1676
+ ///
1677
+ /// # Panics
1678
+ ///
1679
+ /// Panics if the destination buffer is shorter than stated above.
1680
+ ///
1681
+ /// # Safety
1682
+ ///
1683
+ /// If you want to convert into a `&mut str`, use `convert_utf16_to_str()`
1684
+ /// instead of using this function together with the `unsafe` method
1685
+ /// `as_bytes_mut()` on `&mut str`.
1686
+ #[inline(always)]
1687
+ pub fn convert_utf16_to_utf8(src: &[u16], dst: &mut [u8]) -> usize {
1688
+ assert!(dst.len() >= src.len() * 3);
1689
+ let (read, written) = convert_utf16_to_utf8_partial(src, dst);
1690
+ debug_assert_eq!(read, src.len());
1691
+ written
1692
+ }
1693
+
1694
+ /// Converts potentially-invalid UTF-16 to valid UTF-8 with errors replaced
1695
+ /// with the REPLACEMENT CHARACTER such that the validity of the output is
1696
+ /// signaled using the Rust type system with potentially insufficient output
1697
+ /// space.
1698
+ ///
1699
+ /// Returns the number of code units read and the number of bytes written.
1700
+ ///
1701
+ /// Not all code units are read if there isn't enough output space.
1702
+ ///
1703
+ /// Note that this method isn't designed for general streamability but for
1704
+ /// not allocating memory for the worst case up front. Specifically,
1705
+ /// if the input starts with or ends with an unpaired surrogate, those are
1706
+ /// replaced with the REPLACEMENT CHARACTER.
1707
+ pub fn convert_utf16_to_str_partial(src: &[u16], dst: &mut str) -> (usize, usize) {
1708
+ let bytes: &mut [u8] = unsafe { dst.as_bytes_mut() };
1709
+ let (read, written) = convert_utf16_to_utf8_partial(src, bytes);
1710
+ let len = bytes.len();
1711
+ let mut trail = written;
1712
+ while trail < len && ((bytes[trail] & 0xC0) == 0x80) {
1713
+ bytes[trail] = 0;
1714
+ trail += 1;
1715
+ }
1716
+ (read, written)
1717
+ }
1718
+
1719
+ /// Converts potentially-invalid UTF-16 to valid UTF-8 with errors replaced
1720
+ /// with the REPLACEMENT CHARACTER such that the validity of the output is
1721
+ /// signaled using the Rust type system.
1722
+ ///
1723
+ /// The length of the destination buffer must be at least the length of the
1724
+ /// source buffer times three.
1725
+ ///
1726
+ /// Returns the number of bytes written.
1727
+ ///
1728
+ /// # Panics
1729
+ ///
1730
+ /// Panics if the destination buffer is shorter than stated above.
1731
+ #[inline(always)]
1732
+ pub fn convert_utf16_to_str(src: &[u16], dst: &mut str) -> usize {
1733
+ assert!(dst.len() >= src.len() * 3);
1734
+ let (read, written) = convert_utf16_to_str_partial(src, dst);
1735
+ debug_assert_eq!(read, src.len());
1736
+ written
1737
+ }
1738
+
1739
+ /// Converts bytes whose unsigned value is interpreted as Unicode code point
1740
+ /// (i.e. U+0000 to U+00FF, inclusive) to UTF-16.
1741
+ ///
1742
+ /// The length of the destination buffer must be at least the length of the
1743
+ /// source buffer.
1744
+ ///
1745
+ /// The number of `u16`s written equals the length of the source buffer.
1746
+ ///
1747
+ /// # Panics
1748
+ ///
1749
+ /// Panics if the destination buffer is shorter than stated above.
1750
+ pub fn convert_latin1_to_utf16(src: &[u8], dst: &mut [u16]) {
1751
+ assert!(
1752
+ dst.len() >= src.len(),
1753
+ "Destination must not be shorter than the source."
1754
+ );
1755
+ // TODO: On aarch64, the safe version autovectorizes to the same unpacking
1756
+ // instructions and this code, but, yet, the autovectorized version is
1757
+ // faster.
1758
+ unsafe {
1759
+ unpack_latin1(src.as_ptr(), dst.as_mut_ptr(), src.len());
1760
+ }
1761
+ }
1762
+
1763
+ /// Converts bytes whose unsigned value is interpreted as Unicode code point
1764
+ /// (i.e. U+0000 to U+00FF, inclusive) to UTF-8 with potentially insufficient
1765
+ /// output space.
1766
+ ///
1767
+ /// Returns the number of bytes read and the number of bytes written.
1768
+ ///
1769
+ /// If the output isn't large enough, not all input is consumed.
1770
+ ///
1771
+ /// # Safety
1772
+ ///
1773
+ /// If you want to convert into a `&mut str`, use
1774
+ /// `convert_utf16_to_str_partial()` instead of using this function
1775
+ /// together with the `unsafe` method `as_bytes_mut()` on `&mut str`.
1776
+ pub fn convert_latin1_to_utf8_partial(src: &[u8], dst: &mut [u8]) -> (usize, usize) {
1777
+ let src_len = src.len();
1778
+ let src_ptr = src.as_ptr();
1779
+ let dst_ptr = dst.as_mut_ptr();
1780
+ let dst_len = dst.len();
1781
+ let mut total_read = 0usize;
1782
+ let mut total_written = 0usize;
1783
+ loop {
1784
+ // src can't advance more than dst
1785
+ let src_left = src_len - total_read;
1786
+ let dst_left = dst_len - total_written;
1787
+ let min_left = ::core::cmp::min(src_left, dst_left);
1788
+ if let Some((non_ascii, consumed)) = unsafe {
1789
+ ascii_to_ascii(
1790
+ src_ptr.add(total_read),
1791
+ dst_ptr.add(total_written),
1792
+ min_left,
1793
+ )
1794
+ } {
1795
+ total_read += consumed;
1796
+ total_written += consumed;
1797
+ if total_written.checked_add(2).unwrap() > dst_len {
1798
+ return (total_read, total_written);
1799
+ }
1800
+
1801
+ total_read += 1; // consume `non_ascii`
1802
+
1803
+ dst[total_written] = (non_ascii >> 6) | 0xC0;
1804
+ total_written += 1;
1805
+ dst[total_written] = (non_ascii & 0x3F) | 0x80;
1806
+ total_written += 1;
1807
+ continue;
1808
+ }
1809
+ return (total_read + min_left, total_written + min_left);
1810
+ }
1811
+ }
1812
+
1813
+ /// Converts bytes whose unsigned value is interpreted as Unicode code point
1814
+ /// (i.e. U+0000 to U+00FF, inclusive) to UTF-8.
1815
+ ///
1816
+ /// The length of the destination buffer must be at least the length of the
1817
+ /// source buffer times two.
1818
+ ///
1819
+ /// Returns the number of bytes written.
1820
+ ///
1821
+ /// # Panics
1822
+ ///
1823
+ /// Panics if the destination buffer is shorter than stated above.
1824
+ ///
1825
+ /// # Safety
1826
+ ///
1827
+ /// Note that this function may write garbage beyond the number of bytes
1828
+ /// indicated by the return value, so using a `&mut str` interpreted as
1829
+ /// `&mut [u8]` as the destination is not safe. If you want to convert into
1830
+ /// a `&mut str`, use `convert_utf16_to_str()` instead of this function.
1831
+ #[inline]
1832
+ pub fn convert_latin1_to_utf8(src: &[u8], dst: &mut [u8]) -> usize {
1833
+ assert!(
1834
+ dst.len() >= src.len() * 2,
1835
+ "Destination must not be shorter than the source times two."
1836
+ );
1837
+ let (read, written) = convert_latin1_to_utf8_partial(src, dst);
1838
+ debug_assert_eq!(read, src.len());
1839
+ written
1840
+ }
1841
+
1842
+ /// Converts bytes whose unsigned value is interpreted as Unicode code point
1843
+ /// (i.e. U+0000 to U+00FF, inclusive) to UTF-8 such that the validity of the
1844
+ /// output is signaled using the Rust type system with potentially insufficient
1845
+ /// output space.
1846
+ ///
1847
+ /// Returns the number of bytes read and the number of bytes written.
1848
+ ///
1849
+ /// If the output isn't large enough, not all input is consumed.
1850
+ #[inline]
1851
+ pub fn convert_latin1_to_str_partial(src: &[u8], dst: &mut str) -> (usize, usize) {
1852
+ let bytes: &mut [u8] = unsafe { dst.as_bytes_mut() };
1853
+ let (read, written) = convert_latin1_to_utf8_partial(src, bytes);
1854
+ let len = bytes.len();
1855
+ let mut trail = written;
1856
+ let max = ::core::cmp::min(len, trail + MAX_STRIDE_SIZE);
1857
+ while trail < max {
1858
+ bytes[trail] = 0;
1859
+ trail += 1;
1860
+ }
1861
+ while trail < len && ((bytes[trail] & 0xC0) == 0x80) {
1862
+ bytes[trail] = 0;
1863
+ trail += 1;
1864
+ }
1865
+ (read, written)
1866
+ }
1867
+
1868
+ /// Converts bytes whose unsigned value is interpreted as Unicode code point
1869
+ /// (i.e. U+0000 to U+00FF, inclusive) to UTF-8 such that the validity of the
1870
+ /// output is signaled using the Rust type system.
1871
+ ///
1872
+ /// The length of the destination buffer must be at least the length of the
1873
+ /// source buffer times two.
1874
+ ///
1875
+ /// Returns the number of bytes written.
1876
+ ///
1877
+ /// # Panics
1878
+ ///
1879
+ /// Panics if the destination buffer is shorter than stated above.
1880
+ #[inline]
1881
+ pub fn convert_latin1_to_str(src: &[u8], dst: &mut str) -> usize {
1882
+ assert!(
1883
+ dst.len() >= src.len() * 2,
1884
+ "Destination must not be shorter than the source times two."
1885
+ );
1886
+ let (read, written) = convert_latin1_to_str_partial(src, dst);
1887
+ debug_assert_eq!(read, src.len());
1888
+ written
1889
+ }
1890
+
1891
+ /// If the input is valid UTF-8 representing only Unicode code points from
1892
+ /// U+0000 to U+00FF, inclusive, converts the input into output that
1893
+ /// represents the value of each code point as the unsigned byte value of
1894
+ /// each output byte.
1895
+ ///
1896
+ /// If the input does not fulfill the condition stated above, this function
1897
+ /// panics if debug assertions are enabled (and fuzzing isn't) and otherwise
1898
+ /// does something that is memory-safe without any promises about any
1899
+ /// properties of the output. In particular, callers shouldn't assume the
1900
+ /// output to be the same across crate versions or CPU architectures and
1901
+ /// should not assume that non-ASCII input can't map to ASCII output.
1902
+ ///
1903
+ /// The length of the destination buffer must be at least the length of the
1904
+ /// source buffer.
1905
+ ///
1906
+ /// Returns the number of bytes written.
1907
+ ///
1908
+ /// # Panics
1909
+ ///
1910
+ /// Panics if the destination buffer is shorter than stated above.
1911
+ ///
1912
+ /// If debug assertions are enabled (and not fuzzing) and the input is
1913
+ /// not in the range U+0000 to U+00FF, inclusive.
1914
+ pub fn convert_utf8_to_latin1_lossy(src: &[u8], dst: &mut [u8]) -> usize {
1915
+ assert!(
1916
+ dst.len() >= src.len(),
1917
+ "Destination must not be shorter than the source."
1918
+ );
1919
+ non_fuzz_debug_assert!(is_utf8_latin1(src));
1920
+ let src_len = src.len();
1921
+ let src_ptr = src.as_ptr();
1922
+ let dst_ptr = dst.as_mut_ptr();
1923
+ let mut total_read = 0usize;
1924
+ let mut total_written = 0usize;
1925
+ loop {
1926
+ // dst can't advance more than src
1927
+ let src_left = src_len - total_read;
1928
+ if let Some((non_ascii, consumed)) = unsafe {
1929
+ ascii_to_ascii(
1930
+ src_ptr.add(total_read),
1931
+ dst_ptr.add(total_written),
1932
+ src_left,
1933
+ )
1934
+ } {
1935
+ total_read += consumed + 1;
1936
+ total_written += consumed;
1937
+
1938
+ if total_read == src_len {
1939
+ return total_written;
1940
+ }
1941
+
1942
+ let trail = src[total_read];
1943
+ total_read += 1;
1944
+
1945
+ dst[total_written] = ((non_ascii & 0x1F) << 6) | (trail & 0x3F);
1946
+ total_written += 1;
1947
+ continue;
1948
+ }
1949
+ return total_written + src_left;
1950
+ }
1951
+ }
1952
+
1953
+ /// If the input is valid UTF-16 representing only Unicode code points from
1954
+ /// U+0000 to U+00FF, inclusive, converts the input into output that
1955
+ /// represents the value of each code point as the unsigned byte value of
1956
+ /// each output byte.
1957
+ ///
1958
+ /// If the input does not fulfill the condition stated above, does something
1959
+ /// that is memory-safe without any promises about any properties of the
1960
+ /// output and will probably assert in debug builds in future versions.
1961
+ /// In particular, callers shouldn't assume the output to be the same across
1962
+ /// crate versions or CPU architectures and should not assume that non-ASCII
1963
+ /// input can't map to ASCII output.
1964
+ ///
1965
+ /// The length of the destination buffer must be at least the length of the
1966
+ /// source buffer.
1967
+ ///
1968
+ /// The number of bytes written equals the length of the source buffer.
1969
+ ///
1970
+ /// # Panics
1971
+ ///
1972
+ /// Panics if the destination buffer is shorter than stated above.
1973
+ ///
1974
+ /// (Probably in future versions if debug assertions are enabled (and not
1975
+ /// fuzzing) and the input is not in the range U+0000 to U+00FF, inclusive.)
1976
+ pub fn convert_utf16_to_latin1_lossy(src: &[u16], dst: &mut [u8]) {
1977
+ assert!(
1978
+ dst.len() >= src.len(),
1979
+ "Destination must not be shorter than the source."
1980
+ );
1981
+ // non_fuzz_debug_assert!(is_utf16_latin1(src));
1982
+ unsafe {
1983
+ pack_latin1(src.as_ptr(), dst.as_mut_ptr(), src.len());
1984
+ }
1985
+ }
1986
+
1987
+ /// Converts bytes whose unsigned value is interpreted as Unicode code point
1988
+ /// (i.e. U+0000 to U+00FF, inclusive) to UTF-8.
1989
+ ///
1990
+ /// Borrows if input is ASCII-only. Performs a single heap allocation
1991
+ /// otherwise.
1992
+ ///
1993
+ /// Only available if the `alloc` feature is enabled (enabled by default).
1994
+ #[cfg(feature = "alloc")]
1995
+ pub fn decode_latin1<'a>(bytes: &'a [u8]) -> Cow<'a, str> {
1996
+ let up_to = ascii_valid_up_to(bytes);
1997
+ // >= makes later things optimize better than ==
1998
+ if up_to >= bytes.len() {
1999
+ debug_assert_eq!(up_to, bytes.len());
2000
+ let s: &str = unsafe { ::core::str::from_utf8_unchecked(bytes) };
2001
+ return Cow::Borrowed(s);
2002
+ }
2003
+ let (head, tail) = bytes.split_at(up_to);
2004
+ let capacity = head.len() + tail.len() * 2;
2005
+ let mut vec = Vec::with_capacity(capacity);
2006
+ unsafe {
2007
+ vec.set_len(capacity);
2008
+ }
2009
+ (&mut vec[..up_to]).copy_from_slice(head);
2010
+ let written = convert_latin1_to_utf8(tail, &mut vec[up_to..]);
2011
+ vec.truncate(up_to + written);
2012
+ Cow::Owned(unsafe { String::from_utf8_unchecked(vec) })
2013
+ }
2014
+
2015
+ /// If the input is valid UTF-8 representing only Unicode code points from
2016
+ /// U+0000 to U+00FF, inclusive, converts the input into output that
2017
+ /// represents the value of each code point as the unsigned byte value of
2018
+ /// each output byte.
2019
+ ///
2020
+ /// If the input does not fulfill the condition stated above, this function
2021
+ /// panics if debug assertions are enabled (and fuzzing isn't) and otherwise
2022
+ /// does something that is memory-safe without any promises about any
2023
+ /// properties of the output. In particular, callers shouldn't assume the
2024
+ /// output to be the same across crate versions or CPU architectures and
2025
+ /// should not assume that non-ASCII input can't map to ASCII output.
2026
+ ///
2027
+ /// Borrows if input is ASCII-only. Performs a single heap allocation
2028
+ /// otherwise.
2029
+ ///
2030
+ /// Only available if the `alloc` feature is enabled (enabled by default).
2031
+ #[cfg(feature = "alloc")]
2032
+ pub fn encode_latin1_lossy<'a>(string: &'a str) -> Cow<'a, [u8]> {
2033
+ let bytes = string.as_bytes();
2034
+ let up_to = ascii_valid_up_to(bytes);
2035
+ // >= makes later things optimize better than ==
2036
+ if up_to >= bytes.len() {
2037
+ debug_assert_eq!(up_to, bytes.len());
2038
+ return Cow::Borrowed(bytes);
2039
+ }
2040
+ let (head, tail) = bytes.split_at(up_to);
2041
+ let capacity = bytes.len();
2042
+ let mut vec = Vec::with_capacity(capacity);
2043
+ unsafe {
2044
+ vec.set_len(capacity);
2045
+ }
2046
+ (&mut vec[..up_to]).copy_from_slice(head);
2047
+ let written = convert_utf8_to_latin1_lossy(tail, &mut vec[up_to..]);
2048
+ vec.truncate(up_to + written);
2049
+ Cow::Owned(vec)
2050
+ }
2051
+
2052
+ /// Returns the index of the first unpaired surrogate or, if the input is
2053
+ /// valid UTF-16 in its entirety, the length of the input.
2054
+ pub fn utf16_valid_up_to(buffer: &[u16]) -> usize {
2055
+ utf16_valid_up_to_impl(buffer)
2056
+ }
2057
+
2058
+ /// Returns the index of first byte that starts an invalid byte
2059
+ /// sequence or a non-Latin1 byte sequence, or the length of the
2060
+ /// string if there are neither.
2061
+ pub fn utf8_latin1_up_to(buffer: &[u8]) -> usize {
2062
+ is_utf8_latin1_impl(buffer).unwrap_or(buffer.len())
2063
+ }
2064
+
2065
+ /// Returns the index of first byte that starts a non-Latin1 byte
2066
+ /// sequence, or the length of the string if there are none.
2067
+ pub fn str_latin1_up_to(buffer: &str) -> usize {
2068
+ is_str_latin1_impl(buffer).unwrap_or_else(|| buffer.len())
2069
+ }
2070
+
2071
+ /// Replaces unpaired surrogates in the input with the REPLACEMENT CHARACTER.
2072
+ #[inline]
2073
+ pub fn ensure_utf16_validity(buffer: &mut [u16]) {
2074
+ let mut offset = 0;
2075
+ loop {
2076
+ offset += utf16_valid_up_to(&buffer[offset..]);
2077
+ if offset == buffer.len() {
2078
+ return;
2079
+ }
2080
+ buffer[offset] = 0xFFFD;
2081
+ offset += 1;
2082
+ }
2083
+ }
2084
+
2085
+ /// Copies ASCII from source to destination up to the first non-ASCII byte
2086
+ /// (or the end of the input if it is ASCII in its entirety).
2087
+ ///
2088
+ /// The length of the destination buffer must be at least the length of the
2089
+ /// source buffer.
2090
+ ///
2091
+ /// Returns the number of bytes written.
2092
+ ///
2093
+ /// # Panics
2094
+ ///
2095
+ /// Panics if the destination buffer is shorter than stated above.
2096
+ pub fn copy_ascii_to_ascii(src: &[u8], dst: &mut [u8]) -> usize {
2097
+ assert!(
2098
+ dst.len() >= src.len(),
2099
+ "Destination must not be shorter than the source."
2100
+ );
2101
+ if let Some((_, consumed)) =
2102
+ unsafe { ascii_to_ascii(src.as_ptr(), dst.as_mut_ptr(), src.len()) }
2103
+ {
2104
+ consumed
2105
+ } else {
2106
+ src.len()
2107
+ }
2108
+ }
2109
+
2110
+ /// Copies ASCII from source to destination zero-extending it to UTF-16 up to
2111
+ /// the first non-ASCII byte (or the end of the input if it is ASCII in its
2112
+ /// entirety).
2113
+ ///
2114
+ /// The length of the destination buffer must be at least the length of the
2115
+ /// source buffer.
2116
+ ///
2117
+ /// Returns the number of `u16`s written.
2118
+ ///
2119
+ /// # Panics
2120
+ ///
2121
+ /// Panics if the destination buffer is shorter than stated above.
2122
+ pub fn copy_ascii_to_basic_latin(src: &[u8], dst: &mut [u16]) -> usize {
2123
+ assert!(
2124
+ dst.len() >= src.len(),
2125
+ "Destination must not be shorter than the source."
2126
+ );
2127
+ if let Some((_, consumed)) =
2128
+ unsafe { ascii_to_basic_latin(src.as_ptr(), dst.as_mut_ptr(), src.len()) }
2129
+ {
2130
+ consumed
2131
+ } else {
2132
+ src.len()
2133
+ }
2134
+ }
2135
+
2136
+ /// Copies Basic Latin from source to destination narrowing it to ASCII up to
2137
+ /// the first non-Basic Latin code unit (or the end of the input if it is
2138
+ /// Basic Latin in its entirety).
2139
+ ///
2140
+ /// The length of the destination buffer must be at least the length of the
2141
+ /// source buffer.
2142
+ ///
2143
+ /// Returns the number of bytes written.
2144
+ ///
2145
+ /// # Panics
2146
+ ///
2147
+ /// Panics if the destination buffer is shorter than stated above.
2148
+ pub fn copy_basic_latin_to_ascii(src: &[u16], dst: &mut [u8]) -> usize {
2149
+ assert!(
2150
+ dst.len() >= src.len(),
2151
+ "Destination must not be shorter than the source."
2152
+ );
2153
+ if let Some((_, consumed)) =
2154
+ unsafe { basic_latin_to_ascii(src.as_ptr(), dst.as_mut_ptr(), src.len()) }
2155
+ {
2156
+ consumed
2157
+ } else {
2158
+ src.len()
2159
+ }
2160
+ }
2161
+
2162
+ // Any copyright to the test code below this comment is dedicated to the
2163
+ // Public Domain. http://creativecommons.org/publicdomain/zero/1.0/
2164
+
2165
+ #[cfg(all(test, feature = "alloc"))]
2166
+ mod tests {
2167
+ use super::*;
2168
+
2169
+ #[test]
2170
+ fn test_is_ascii_success() {
2171
+ let mut src: Vec<u8> = Vec::with_capacity(128);
2172
+ src.resize(128, 0);
2173
+ for i in 0..src.len() {
2174
+ src[i] = i as u8;
2175
+ }
2176
+ for i in 0..src.len() {
2177
+ assert!(is_ascii(&src[i..]));
2178
+ }
2179
+ }
2180
+
2181
+ #[test]
2182
+ fn test_is_ascii_fail() {
2183
+ let mut src: Vec<u8> = Vec::with_capacity(128);
2184
+ src.resize(128, 0);
2185
+ for i in 0..src.len() {
2186
+ src[i] = i as u8;
2187
+ }
2188
+ for i in 0..src.len() {
2189
+ let tail = &mut src[i..];
2190
+ for j in 0..tail.len() {
2191
+ tail[j] = 0xA0;
2192
+ assert!(!is_ascii(tail));
2193
+ }
2194
+ }
2195
+ }
2196
+
2197
+ #[test]
2198
+ fn test_is_basic_latin_success() {
2199
+ let mut src: Vec<u16> = Vec::with_capacity(128);
2200
+ src.resize(128, 0);
2201
+ for i in 0..src.len() {
2202
+ src[i] = i as u16;
2203
+ }
2204
+ for i in 0..src.len() {
2205
+ assert!(is_basic_latin(&src[i..]));
2206
+ }
2207
+ }
2208
+
2209
+ #[test]
2210
+ fn test_is_basic_latin_fail() {
2211
+ let mut src: Vec<u16> = Vec::with_capacity(128);
2212
+ src.resize(128, 0);
2213
+ for i in 0..src.len() {
2214
+ src[i] = i as u16;
2215
+ }
2216
+ for i in 0..src.len() {
2217
+ let tail = &mut src[i..];
2218
+ for j in 0..tail.len() {
2219
+ tail[j] = 0xA0;
2220
+ assert!(!is_basic_latin(tail));
2221
+ }
2222
+ }
2223
+ }
2224
+
2225
+ #[test]
2226
+ fn test_is_utf16_latin1_success() {
2227
+ let mut src: Vec<u16> = Vec::with_capacity(256);
2228
+ src.resize(256, 0);
2229
+ for i in 0..src.len() {
2230
+ src[i] = i as u16;
2231
+ }
2232
+ for i in 0..src.len() {
2233
+ assert!(is_utf16_latin1(&src[i..]));
2234
+ assert_eq!(
2235
+ check_utf16_for_latin1_and_bidi(&src[i..]),
2236
+ Latin1Bidi::Latin1
2237
+ );
2238
+ }
2239
+ }
2240
+
2241
+ #[test]
2242
+ fn test_is_utf16_latin1_fail() {
2243
+ let len = if cfg!(miri) { 64 } else { 256 }; // Miri is too slow
2244
+ let mut src: Vec<u16> = Vec::with_capacity(len);
2245
+ src.resize(len, 0);
2246
+ for i in 0..src.len() {
2247
+ src[i] = i as u16;
2248
+ }
2249
+ for i in 0..src.len() {
2250
+ let tail = &mut src[i..];
2251
+ for j in 0..tail.len() {
2252
+ tail[j] = 0x100 + j as u16;
2253
+ assert!(!is_utf16_latin1(tail));
2254
+ assert_ne!(check_utf16_for_latin1_and_bidi(tail), Latin1Bidi::Latin1);
2255
+ }
2256
+ }
2257
+ }
2258
+
2259
+ #[test]
2260
+ fn test_is_str_latin1_success() {
2261
+ let len = if cfg!(miri) { 64 } else { 256 }; // Miri is too slow
2262
+ let mut src: Vec<u16> = Vec::with_capacity(len);
2263
+ src.resize(len, 0);
2264
+ for i in 0..src.len() {
2265
+ src[i] = i as u16;
2266
+ }
2267
+ for i in 0..src.len() {
2268
+ let s = String::from_utf16(&src[i..]).unwrap();
2269
+ assert!(is_str_latin1(&s[..]));
2270
+ assert_eq!(check_str_for_latin1_and_bidi(&s[..]), Latin1Bidi::Latin1);
2271
+ }
2272
+ }
2273
+
2274
+ #[test]
2275
+ fn test_is_str_latin1_fail() {
2276
+ let len = if cfg!(miri) { 32 } else { 256 }; // Miri is too slow
2277
+ let mut src: Vec<u16> = Vec::with_capacity(len);
2278
+ src.resize(len, 0);
2279
+ for i in 0..src.len() {
2280
+ src[i] = i as u16;
2281
+ }
2282
+ for i in 0..src.len() {
2283
+ let tail = &mut src[i..];
2284
+ for j in 0..tail.len() {
2285
+ tail[j] = 0x100 + j as u16;
2286
+ let s = String::from_utf16(tail).unwrap();
2287
+ assert!(!is_str_latin1(&s[..]));
2288
+ assert_ne!(check_str_for_latin1_and_bidi(&s[..]), Latin1Bidi::Latin1);
2289
+ }
2290
+ }
2291
+ }
2292
+
2293
+ #[test]
2294
+ fn test_is_utf8_latin1_success() {
2295
+ let len = if cfg!(miri) { 64 } else { 256 }; // Miri is too slow
2296
+ let mut src: Vec<u16> = Vec::with_capacity(len);
2297
+ src.resize(len, 0);
2298
+ for i in 0..src.len() {
2299
+ src[i] = i as u16;
2300
+ }
2301
+ for i in 0..src.len() {
2302
+ let s = String::from_utf16(&src[i..]).unwrap();
2303
+ assert!(is_utf8_latin1(s.as_bytes()));
2304
+ assert_eq!(
2305
+ check_utf8_for_latin1_and_bidi(s.as_bytes()),
2306
+ Latin1Bidi::Latin1
2307
+ );
2308
+ }
2309
+ }
2310
+
2311
+ #[test]
2312
+ fn test_is_utf8_latin1_fail() {
2313
+ let len = if cfg!(miri) { 32 } else { 256 }; // Miri is too slow
2314
+ let mut src: Vec<u16> = Vec::with_capacity(len);
2315
+ src.resize(len, 0);
2316
+ for i in 0..src.len() {
2317
+ src[i] = i as u16;
2318
+ }
2319
+ for i in 0..src.len() {
2320
+ let tail = &mut src[i..];
2321
+ for j in 0..tail.len() {
2322
+ tail[j] = 0x100 + j as u16;
2323
+ let s = String::from_utf16(tail).unwrap();
2324
+ assert!(!is_utf8_latin1(s.as_bytes()));
2325
+ assert_ne!(
2326
+ check_utf8_for_latin1_and_bidi(s.as_bytes()),
2327
+ Latin1Bidi::Latin1
2328
+ );
2329
+ }
2330
+ }
2331
+ }
2332
+
2333
+ #[test]
2334
+ fn test_is_utf8_latin1_invalid() {
2335
+ assert!(!is_utf8_latin1(b"\xC3"));
2336
+ assert!(!is_utf8_latin1(b"a\xC3"));
2337
+ assert!(!is_utf8_latin1(b"\xFF"));
2338
+ assert!(!is_utf8_latin1(b"a\xFF"));
2339
+ assert!(!is_utf8_latin1(b"\xC3\xFF"));
2340
+ assert!(!is_utf8_latin1(b"a\xC3\xFF"));
2341
+ }
2342
+
2343
+ #[test]
2344
+ fn test_convert_utf8_to_utf16() {
2345
+ let src = "abcdefghijklmnopqrstu\u{1F4A9}v\u{2603}w\u{00B6}xyzz";
2346
+ let mut dst: Vec<u16> = Vec::with_capacity(src.len() + 1);
2347
+ dst.resize(src.len() + 1, 0);
2348
+ let len = convert_utf8_to_utf16(src.as_bytes(), &mut dst[..]);
2349
+ dst.truncate(len);
2350
+ let reference: Vec<u16> = src.encode_utf16().collect();
2351
+ assert_eq!(dst, reference);
2352
+ }
2353
+
2354
+ #[test]
2355
+ fn test_convert_str_to_utf16() {
2356
+ let src = "abcdefghijklmnopqrstu\u{1F4A9}v\u{2603}w\u{00B6}xyzz";
2357
+ let mut dst: Vec<u16> = Vec::with_capacity(src.len());
2358
+ dst.resize(src.len(), 0);
2359
+ let len = convert_str_to_utf16(src, &mut dst[..]);
2360
+ dst.truncate(len);
2361
+ let reference: Vec<u16> = src.encode_utf16().collect();
2362
+ assert_eq!(dst, reference);
2363
+ }
2364
+
2365
+ #[test]
2366
+ fn test_convert_utf16_to_utf8_partial() {
2367
+ let reference = "abcdefghijklmnopqrstu\u{1F4A9}v\u{2603}w\u{00B6}xyzz";
2368
+ let src: Vec<u16> = reference.encode_utf16().collect();
2369
+ let mut dst: Vec<u8> = Vec::with_capacity(src.len() * 3 + 1);
2370
+ dst.resize(src.len() * 3 + 1, 0);
2371
+ let (read, written) = convert_utf16_to_utf8_partial(&src[..], &mut dst[..24]);
2372
+ let len = written + convert_utf16_to_utf8(&src[read..], &mut dst[written..]);
2373
+ dst.truncate(len);
2374
+ assert_eq!(dst, reference.as_bytes());
2375
+ }
2376
+
2377
+ #[test]
2378
+ fn test_convert_utf16_to_utf8() {
2379
+ let reference = "abcdefghijklmnopqrstu\u{1F4A9}v\u{2603}w\u{00B6}xyzz";
2380
+ let src: Vec<u16> = reference.encode_utf16().collect();
2381
+ let mut dst: Vec<u8> = Vec::with_capacity(src.len() * 3 + 1);
2382
+ dst.resize(src.len() * 3 + 1, 0);
2383
+ let len = convert_utf16_to_utf8(&src[..], &mut dst[..]);
2384
+ dst.truncate(len);
2385
+ assert_eq!(dst, reference.as_bytes());
2386
+ }
2387
+
2388
+ #[test]
2389
+ fn test_convert_latin1_to_utf16() {
2390
+ let mut src: Vec<u8> = Vec::with_capacity(256);
2391
+ src.resize(256, 0);
2392
+ let mut reference: Vec<u16> = Vec::with_capacity(256);
2393
+ reference.resize(256, 0);
2394
+ for i in 0..256 {
2395
+ src[i] = i as u8;
2396
+ reference[i] = i as u16;
2397
+ }
2398
+ let mut dst: Vec<u16> = Vec::with_capacity(src.len());
2399
+ dst.resize(src.len(), 0);
2400
+ convert_latin1_to_utf16(&src[..], &mut dst[..]);
2401
+ assert_eq!(dst, reference);
2402
+ }
2403
+
2404
+ #[test]
2405
+ fn test_convert_latin1_to_utf8_partial() {
2406
+ let mut dst = [0u8, 2];
2407
+ let (read, written) = convert_latin1_to_utf8_partial(b"a\xFF", &mut dst[..]);
2408
+ assert_eq!(read, 1);
2409
+ assert_eq!(written, 1);
2410
+ }
2411
+
2412
+ #[test]
2413
+ fn test_convert_latin1_to_utf8() {
2414
+ let mut src: Vec<u8> = Vec::with_capacity(256);
2415
+ src.resize(256, 0);
2416
+ let mut reference: Vec<u16> = Vec::with_capacity(256);
2417
+ reference.resize(256, 0);
2418
+ for i in 0..256 {
2419
+ src[i] = i as u8;
2420
+ reference[i] = i as u16;
2421
+ }
2422
+ let s = String::from_utf16(&reference[..]).unwrap();
2423
+ let mut dst: Vec<u8> = Vec::with_capacity(src.len() * 2);
2424
+ dst.resize(src.len() * 2, 0);
2425
+ let len = convert_latin1_to_utf8(&src[..], &mut dst[..]);
2426
+ dst.truncate(len);
2427
+ assert_eq!(&dst[..], s.as_bytes());
2428
+ }
2429
+
2430
+ #[test]
2431
+ fn test_convert_utf8_to_latin1_lossy() {
2432
+ let mut reference: Vec<u8> = Vec::with_capacity(256);
2433
+ reference.resize(256, 0);
2434
+ let mut src16: Vec<u16> = Vec::with_capacity(256);
2435
+ src16.resize(256, 0);
2436
+ for i in 0..256 {
2437
+ src16[i] = i as u16;
2438
+ reference[i] = i as u8;
2439
+ }
2440
+ let src = String::from_utf16(&src16[..]).unwrap();
2441
+ let mut dst: Vec<u8> = Vec::with_capacity(src.len());
2442
+ dst.resize(src.len(), 0);
2443
+ let len = convert_utf8_to_latin1_lossy(src.as_bytes(), &mut dst[..]);
2444
+ dst.truncate(len);
2445
+ assert_eq!(dst, reference);
2446
+ }
2447
+
2448
+ #[cfg(all(debug_assertions, not(fuzzing)))]
2449
+ #[test]
2450
+ #[should_panic]
2451
+ fn test_convert_utf8_to_latin1_lossy_panics() {
2452
+ let mut dst = [0u8; 16];
2453
+ let _ = convert_utf8_to_latin1_lossy("\u{100}".as_bytes(), &mut dst[..]);
2454
+ }
2455
+
2456
+ #[test]
2457
+ fn test_convert_utf16_to_latin1_lossy() {
2458
+ let mut src: Vec<u16> = Vec::with_capacity(256);
2459
+ src.resize(256, 0);
2460
+ let mut reference: Vec<u8> = Vec::with_capacity(256);
2461
+ reference.resize(256, 0);
2462
+ for i in 0..256 {
2463
+ src[i] = i as u16;
2464
+ reference[i] = i as u8;
2465
+ }
2466
+ let mut dst: Vec<u8> = Vec::with_capacity(src.len());
2467
+ dst.resize(src.len(), 0);
2468
+ convert_utf16_to_latin1_lossy(&src[..], &mut dst[..]);
2469
+ assert_eq!(dst, reference);
2470
+ }
2471
+
2472
+ #[test]
2473
+ // #[should_panic]
2474
+ fn test_convert_utf16_to_latin1_lossy_panics() {
2475
+ let mut dst = [0u8; 16];
2476
+ let _ = convert_utf16_to_latin1_lossy(&[0x0100u16], &mut dst[..]);
2477
+ }
2478
+
2479
+ #[test]
2480
+ fn test_utf16_valid_up_to() {
2481
+ let valid = vec![
2482
+ 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0x2603u16,
2483
+ 0xD83Du16, 0xDCA9u16, 0x00B6u16,
2484
+ ];
2485
+ assert_eq!(utf16_valid_up_to(&valid[..]), 16);
2486
+ let lone_high = vec![
2487
+ 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2488
+ 0x2603u16, 0xD83Du16, 0x00B6u16,
2489
+ ];
2490
+ assert_eq!(utf16_valid_up_to(&lone_high[..]), 14);
2491
+ let lone_low = vec![
2492
+ 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2493
+ 0x2603u16, 0xDCA9u16, 0x00B6u16,
2494
+ ];
2495
+ assert_eq!(utf16_valid_up_to(&lone_low[..]), 14);
2496
+ let lone_high_at_end = vec![
2497
+ 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2498
+ 0x2603u16, 0x00B6u16, 0xD83Du16,
2499
+ ];
2500
+ assert_eq!(utf16_valid_up_to(&lone_high_at_end[..]), 15);
2501
+ }
2502
+
2503
+ #[test]
2504
+ fn test_ensure_utf16_validity() {
2505
+ let mut src = vec![
2506
+ 0u16, 0xD83Du16, 0u16, 0u16, 0u16, 0xD83Du16, 0xDCA9u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2507
+ 0u16, 0xDCA9u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2508
+ 0u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2509
+ ];
2510
+ let reference = vec![
2511
+ 0u16, 0xFFFDu16, 0u16, 0u16, 0u16, 0xD83Du16, 0xDCA9u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2512
+ 0u16, 0xFFFDu16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2513
+ 0u16, 0u16, 0u16, 0u16, 0u16, 0u16,
2514
+ ];
2515
+ ensure_utf16_validity(&mut src[..]);
2516
+ assert_eq!(src, reference);
2517
+ }
2518
+
2519
+ #[test]
2520
+ fn test_is_char_bidi() {
2521
+ assert!(!is_char_bidi('a'));
2522
+ assert!(!is_char_bidi('\u{03B1}'));
2523
+ assert!(!is_char_bidi('\u{3041}'));
2524
+ assert!(!is_char_bidi('\u{1F4A9}'));
2525
+ assert!(!is_char_bidi('\u{FE00}'));
2526
+ assert!(!is_char_bidi('\u{202C}'));
2527
+ assert!(!is_char_bidi('\u{FEFF}'));
2528
+ assert!(is_char_bidi('\u{0590}'));
2529
+ assert!(is_char_bidi('\u{08FF}'));
2530
+ assert!(is_char_bidi('\u{061C}'));
2531
+ assert!(is_char_bidi('\u{FB50}'));
2532
+ assert!(is_char_bidi('\u{FDFF}'));
2533
+ assert!(is_char_bidi('\u{FE70}'));
2534
+ assert!(is_char_bidi('\u{FEFE}'));
2535
+ assert!(is_char_bidi('\u{200F}'));
2536
+ assert!(is_char_bidi('\u{202B}'));
2537
+ assert!(is_char_bidi('\u{202E}'));
2538
+ assert!(is_char_bidi('\u{2067}'));
2539
+ assert!(is_char_bidi('\u{10800}'));
2540
+ assert!(is_char_bidi('\u{10FFF}'));
2541
+ assert!(is_char_bidi('\u{1E800}'));
2542
+ assert!(is_char_bidi('\u{1EFFF}'));
2543
+ }
2544
+
2545
+ #[test]
2546
+ fn test_is_utf16_code_unit_bidi() {
2547
+ assert!(!is_utf16_code_unit_bidi(0x0062));
2548
+ assert!(!is_utf16_code_unit_bidi(0x03B1));
2549
+ assert!(!is_utf16_code_unit_bidi(0x3041));
2550
+ assert!(!is_utf16_code_unit_bidi(0xD801));
2551
+ assert!(!is_utf16_code_unit_bidi(0xFE00));
2552
+ assert!(!is_utf16_code_unit_bidi(0x202C));
2553
+ assert!(!is_utf16_code_unit_bidi(0xFEFF));
2554
+ assert!(is_utf16_code_unit_bidi(0x0590));
2555
+ assert!(is_utf16_code_unit_bidi(0x08FF));
2556
+ assert!(is_utf16_code_unit_bidi(0x061C));
2557
+ assert!(is_utf16_code_unit_bidi(0xFB1D));
2558
+ assert!(is_utf16_code_unit_bidi(0xFB50));
2559
+ assert!(is_utf16_code_unit_bidi(0xFDFF));
2560
+ assert!(is_utf16_code_unit_bidi(0xFE70));
2561
+ assert!(is_utf16_code_unit_bidi(0xFEFE));
2562
+ assert!(is_utf16_code_unit_bidi(0x200F));
2563
+ assert!(is_utf16_code_unit_bidi(0x202B));
2564
+ assert!(is_utf16_code_unit_bidi(0x202E));
2565
+ assert!(is_utf16_code_unit_bidi(0x2067));
2566
+ assert!(is_utf16_code_unit_bidi(0xD802));
2567
+ assert!(is_utf16_code_unit_bidi(0xD803));
2568
+ assert!(is_utf16_code_unit_bidi(0xD83A));
2569
+ assert!(is_utf16_code_unit_bidi(0xD83B));
2570
+ }
2571
+
2572
+ #[test]
2573
+ fn test_is_str_bidi() {
2574
+ assert!(!is_str_bidi("abcdefghijklmnopaabcdefghijklmnop"));
2575
+ assert!(!is_str_bidi("abcdefghijklmnop\u{03B1}abcdefghijklmnop"));
2576
+ assert!(!is_str_bidi("abcdefghijklmnop\u{3041}abcdefghijklmnop"));
2577
+ assert!(!is_str_bidi("abcdefghijklmnop\u{1F4A9}abcdefghijklmnop"));
2578
+ assert!(!is_str_bidi("abcdefghijklmnop\u{FE00}abcdefghijklmnop"));
2579
+ assert!(!is_str_bidi("abcdefghijklmnop\u{202C}abcdefghijklmnop"));
2580
+ assert!(!is_str_bidi("abcdefghijklmnop\u{FEFF}abcdefghijklmnop"));
2581
+ assert!(is_str_bidi("abcdefghijklmnop\u{0590}abcdefghijklmnop"));
2582
+ assert!(is_str_bidi("abcdefghijklmnop\u{08FF}abcdefghijklmnop"));
2583
+ assert!(is_str_bidi("abcdefghijklmnop\u{061C}abcdefghijklmnop"));
2584
+ assert!(is_str_bidi("abcdefghijklmnop\u{FB50}abcdefghijklmnop"));
2585
+ assert!(is_str_bidi("abcdefghijklmnop\u{FDFF}abcdefghijklmnop"));
2586
+ assert!(is_str_bidi("abcdefghijklmnop\u{FE70}abcdefghijklmnop"));
2587
+ assert!(is_str_bidi("abcdefghijklmnop\u{FEFE}abcdefghijklmnop"));
2588
+ assert!(is_str_bidi("abcdefghijklmnop\u{200F}abcdefghijklmnop"));
2589
+ assert!(is_str_bidi("abcdefghijklmnop\u{202B}abcdefghijklmnop"));
2590
+ assert!(is_str_bidi("abcdefghijklmnop\u{202E}abcdefghijklmnop"));
2591
+ assert!(is_str_bidi("abcdefghijklmnop\u{2067}abcdefghijklmnop"));
2592
+ assert!(is_str_bidi("abcdefghijklmnop\u{10800}abcdefghijklmnop"));
2593
+ assert!(is_str_bidi("abcdefghijklmnop\u{10FFF}abcdefghijklmnop"));
2594
+ assert!(is_str_bidi("abcdefghijklmnop\u{1E800}abcdefghijklmnop"));
2595
+ assert!(is_str_bidi("abcdefghijklmnop\u{1EFFF}abcdefghijklmnop"));
2596
+ }
2597
+
2598
+ #[test]
2599
+ fn test_is_utf8_bidi() {
2600
+ assert!(!is_utf8_bidi(
2601
+ "abcdefghijklmnopaabcdefghijklmnop".as_bytes()
2602
+ ));
2603
+ assert!(!is_utf8_bidi(
2604
+ "abcdefghijklmnop\u{03B1}abcdefghijklmnop".as_bytes()
2605
+ ));
2606
+ assert!(!is_utf8_bidi(
2607
+ "abcdefghijklmnop\u{3041}abcdefghijklmnop".as_bytes()
2608
+ ));
2609
+ assert!(!is_utf8_bidi(
2610
+ "abcdefghijklmnop\u{1F4A9}abcdefghijklmnop".as_bytes()
2611
+ ));
2612
+ assert!(!is_utf8_bidi(
2613
+ "abcdefghijklmnop\u{FE00}abcdefghijklmnop".as_bytes()
2614
+ ));
2615
+ assert!(!is_utf8_bidi(
2616
+ "abcdefghijklmnop\u{202C}abcdefghijklmnop".as_bytes()
2617
+ ));
2618
+ assert!(!is_utf8_bidi(
2619
+ "abcdefghijklmnop\u{FEFF}abcdefghijklmnop".as_bytes()
2620
+ ));
2621
+ assert!(is_utf8_bidi(
2622
+ "abcdefghijklmnop\u{0590}abcdefghijklmnop".as_bytes()
2623
+ ));
2624
+ assert!(is_utf8_bidi(
2625
+ "abcdefghijklmnop\u{08FF}abcdefghijklmnop".as_bytes()
2626
+ ));
2627
+ assert!(is_utf8_bidi(
2628
+ "abcdefghijklmnop\u{061C}abcdefghijklmnop".as_bytes()
2629
+ ));
2630
+ assert!(is_utf8_bidi(
2631
+ "abcdefghijklmnop\u{FB50}abcdefghijklmnop".as_bytes()
2632
+ ));
2633
+ assert!(is_utf8_bidi(
2634
+ "abcdefghijklmnop\u{FDFF}abcdefghijklmnop".as_bytes()
2635
+ ));
2636
+ assert!(is_utf8_bidi(
2637
+ "abcdefghijklmnop\u{FE70}abcdefghijklmnop".as_bytes()
2638
+ ));
2639
+ assert!(is_utf8_bidi(
2640
+ "abcdefghijklmnop\u{FEFE}abcdefghijklmnop".as_bytes()
2641
+ ));
2642
+ assert!(is_utf8_bidi(
2643
+ "abcdefghijklmnop\u{200F}abcdefghijklmnop".as_bytes()
2644
+ ));
2645
+ assert!(is_utf8_bidi(
2646
+ "abcdefghijklmnop\u{202B}abcdefghijklmnop".as_bytes()
2647
+ ));
2648
+ assert!(is_utf8_bidi(
2649
+ "abcdefghijklmnop\u{202E}abcdefghijklmnop".as_bytes()
2650
+ ));
2651
+ assert!(is_utf8_bidi(
2652
+ "abcdefghijklmnop\u{2067}abcdefghijklmnop".as_bytes()
2653
+ ));
2654
+ assert!(is_utf8_bidi(
2655
+ "abcdefghijklmnop\u{10800}abcdefghijklmnop".as_bytes()
2656
+ ));
2657
+ assert!(is_utf8_bidi(
2658
+ "abcdefghijklmnop\u{10FFF}abcdefghijklmnop".as_bytes()
2659
+ ));
2660
+ assert!(is_utf8_bidi(
2661
+ "abcdefghijklmnop\u{1E800}abcdefghijklmnop".as_bytes()
2662
+ ));
2663
+ assert!(is_utf8_bidi(
2664
+ "abcdefghijklmnop\u{1EFFF}abcdefghijklmnop".as_bytes()
2665
+ ));
2666
+ }
2667
+
2668
+ #[test]
2669
+ fn test_is_utf16_bidi() {
2670
+ assert!(!is_utf16_bidi(&[
2671
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0062, 0x62, 0x63, 0x64, 0x65, 0x66,
2672
+ 0x67, 0x68, 0x69,
2673
+ ]));
2674
+ assert!(!is_utf16_bidi(&[
2675
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x03B1, 0x62, 0x63, 0x64, 0x65, 0x66,
2676
+ 0x67, 0x68, 0x69,
2677
+ ]));
2678
+ assert!(!is_utf16_bidi(&[
2679
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x3041, 0x62, 0x63, 0x64, 0x65, 0x66,
2680
+ 0x67, 0x68, 0x69,
2681
+ ]));
2682
+ assert!(!is_utf16_bidi(&[
2683
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD801, 0x62, 0x63, 0x64, 0x65, 0x66,
2684
+ 0x67, 0x68, 0x69,
2685
+ ]));
2686
+ assert!(!is_utf16_bidi(&[
2687
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFE00, 0x62, 0x63, 0x64, 0x65, 0x66,
2688
+ 0x67, 0x68, 0x69,
2689
+ ]));
2690
+ assert!(!is_utf16_bidi(&[
2691
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x202C, 0x62, 0x63, 0x64, 0x65, 0x66,
2692
+ 0x67, 0x68, 0x69,
2693
+ ]));
2694
+ assert!(!is_utf16_bidi(&[
2695
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFEFF, 0x62, 0x63, 0x64, 0x65, 0x66,
2696
+ 0x67, 0x68, 0x69,
2697
+ ]));
2698
+ assert!(is_utf16_bidi(&[
2699
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0590, 0x62, 0x63, 0x64, 0x65, 0x66,
2700
+ 0x67, 0x68, 0x69,
2701
+ ]));
2702
+ assert!(is_utf16_bidi(&[
2703
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x08FF, 0x62, 0x63, 0x64, 0x65, 0x66,
2704
+ 0x67, 0x68, 0x69,
2705
+ ]));
2706
+ assert!(is_utf16_bidi(&[
2707
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x061C, 0x62, 0x63, 0x64, 0x65, 0x66,
2708
+ 0x67, 0x68, 0x69,
2709
+ ]));
2710
+ assert!(is_utf16_bidi(&[
2711
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFB1D, 0x62, 0x63, 0x64, 0x65, 0x66,
2712
+ 0x67, 0x68, 0x69,
2713
+ ]));
2714
+ assert!(is_utf16_bidi(&[
2715
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFB50, 0x62, 0x63, 0x64, 0x65, 0x66,
2716
+ 0x67, 0x68, 0x69,
2717
+ ]));
2718
+ assert!(is_utf16_bidi(&[
2719
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFDFF, 0x62, 0x63, 0x64, 0x65, 0x66,
2720
+ 0x67, 0x68, 0x69,
2721
+ ]));
2722
+ assert!(is_utf16_bidi(&[
2723
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFE70, 0x62, 0x63, 0x64, 0x65, 0x66,
2724
+ 0x67, 0x68, 0x69,
2725
+ ]));
2726
+ assert!(is_utf16_bidi(&[
2727
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFEFE, 0x62, 0x63, 0x64, 0x65, 0x66,
2728
+ 0x67, 0x68, 0x69,
2729
+ ]));
2730
+ assert!(is_utf16_bidi(&[
2731
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x200F, 0x62, 0x63, 0x64, 0x65, 0x66,
2732
+ 0x67, 0x68, 0x69,
2733
+ ]));
2734
+ assert!(is_utf16_bidi(&[
2735
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x202B, 0x62, 0x63, 0x64, 0x65, 0x66,
2736
+ 0x67, 0x68, 0x69,
2737
+ ]));
2738
+ assert!(is_utf16_bidi(&[
2739
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x202E, 0x62, 0x63, 0x64, 0x65, 0x66,
2740
+ 0x67, 0x68, 0x69,
2741
+ ]));
2742
+ assert!(is_utf16_bidi(&[
2743
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x2067, 0x62, 0x63, 0x64, 0x65, 0x66,
2744
+ 0x67, 0x68, 0x69,
2745
+ ]));
2746
+ assert!(is_utf16_bidi(&[
2747
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD802, 0x62, 0x63, 0x64, 0x65, 0x66,
2748
+ 0x67, 0x68, 0x69,
2749
+ ]));
2750
+ assert!(is_utf16_bidi(&[
2751
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD803, 0x62, 0x63, 0x64, 0x65, 0x66,
2752
+ 0x67, 0x68, 0x69,
2753
+ ]));
2754
+ assert!(is_utf16_bidi(&[
2755
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD83A, 0x62, 0x63, 0x64, 0x65, 0x66,
2756
+ 0x67, 0x68, 0x69,
2757
+ ]));
2758
+ assert!(is_utf16_bidi(&[
2759
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD83B, 0x62, 0x63, 0x64, 0x65, 0x66,
2760
+ 0x67, 0x68, 0x69,
2761
+ ]));
2762
+
2763
+ assert!(is_utf16_bidi(&[
2764
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0590, 0x3041, 0x62, 0x63, 0x64, 0x65,
2765
+ 0x66, 0x67, 0x68, 0x69,
2766
+ ]));
2767
+ }
2768
+
2769
+ #[test]
2770
+ fn test_check_str_for_latin1_and_bidi() {
2771
+ assert_ne!(
2772
+ check_str_for_latin1_and_bidi("abcdefghijklmnopaabcdefghijklmnop"),
2773
+ Latin1Bidi::Bidi
2774
+ );
2775
+ assert_ne!(
2776
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{03B1}abcdefghijklmnop"),
2777
+ Latin1Bidi::Bidi
2778
+ );
2779
+ assert_ne!(
2780
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{3041}abcdefghijklmnop"),
2781
+ Latin1Bidi::Bidi
2782
+ );
2783
+ assert_ne!(
2784
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{1F4A9}abcdefghijklmnop"),
2785
+ Latin1Bidi::Bidi
2786
+ );
2787
+ assert_ne!(
2788
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{FE00}abcdefghijklmnop"),
2789
+ Latin1Bidi::Bidi
2790
+ );
2791
+ assert_ne!(
2792
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{202C}abcdefghijklmnop"),
2793
+ Latin1Bidi::Bidi
2794
+ );
2795
+ assert_ne!(
2796
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{FEFF}abcdefghijklmnop"),
2797
+ Latin1Bidi::Bidi
2798
+ );
2799
+ assert_eq!(
2800
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{0590}abcdefghijklmnop"),
2801
+ Latin1Bidi::Bidi
2802
+ );
2803
+ assert_eq!(
2804
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{08FF}abcdefghijklmnop"),
2805
+ Latin1Bidi::Bidi
2806
+ );
2807
+ assert_eq!(
2808
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{061C}abcdefghijklmnop"),
2809
+ Latin1Bidi::Bidi
2810
+ );
2811
+ assert_eq!(
2812
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{FB50}abcdefghijklmnop"),
2813
+ Latin1Bidi::Bidi
2814
+ );
2815
+ assert_eq!(
2816
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{FDFF}abcdefghijklmnop"),
2817
+ Latin1Bidi::Bidi
2818
+ );
2819
+ assert_eq!(
2820
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{FE70}abcdefghijklmnop"),
2821
+ Latin1Bidi::Bidi
2822
+ );
2823
+ assert_eq!(
2824
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{FEFE}abcdefghijklmnop"),
2825
+ Latin1Bidi::Bidi
2826
+ );
2827
+ assert_eq!(
2828
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{200F}abcdefghijklmnop"),
2829
+ Latin1Bidi::Bidi
2830
+ );
2831
+ assert_eq!(
2832
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{202B}abcdefghijklmnop"),
2833
+ Latin1Bidi::Bidi
2834
+ );
2835
+ assert_eq!(
2836
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{202E}abcdefghijklmnop"),
2837
+ Latin1Bidi::Bidi
2838
+ );
2839
+ assert_eq!(
2840
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{2067}abcdefghijklmnop"),
2841
+ Latin1Bidi::Bidi
2842
+ );
2843
+ assert_eq!(
2844
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{10800}abcdefghijklmnop"),
2845
+ Latin1Bidi::Bidi
2846
+ );
2847
+ assert_eq!(
2848
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{10FFF}abcdefghijklmnop"),
2849
+ Latin1Bidi::Bidi
2850
+ );
2851
+ assert_eq!(
2852
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{1E800}abcdefghijklmnop"),
2853
+ Latin1Bidi::Bidi
2854
+ );
2855
+ assert_eq!(
2856
+ check_str_for_latin1_and_bidi("abcdefghijklmnop\u{1EFFF}abcdefghijklmnop"),
2857
+ Latin1Bidi::Bidi
2858
+ );
2859
+ }
2860
+
2861
+ #[test]
2862
+ fn test_check_utf8_for_latin1_and_bidi() {
2863
+ assert_ne!(
2864
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnopaabcdefghijklmnop".as_bytes()),
2865
+ Latin1Bidi::Bidi
2866
+ );
2867
+ assert_ne!(
2868
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{03B1}abcdefghijklmnop".as_bytes()),
2869
+ Latin1Bidi::Bidi
2870
+ );
2871
+ assert_ne!(
2872
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{3041}abcdefghijklmnop".as_bytes()),
2873
+ Latin1Bidi::Bidi
2874
+ );
2875
+ assert_ne!(
2876
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{1F4A9}abcdefghijklmnop".as_bytes()),
2877
+ Latin1Bidi::Bidi
2878
+ );
2879
+ assert_ne!(
2880
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{FE00}abcdefghijklmnop".as_bytes()),
2881
+ Latin1Bidi::Bidi
2882
+ );
2883
+ assert_ne!(
2884
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{202C}abcdefghijklmnop".as_bytes()),
2885
+ Latin1Bidi::Bidi
2886
+ );
2887
+ assert_ne!(
2888
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{FEFF}abcdefghijklmnop".as_bytes()),
2889
+ Latin1Bidi::Bidi
2890
+ );
2891
+ assert_eq!(
2892
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{0590}abcdefghijklmnop".as_bytes()),
2893
+ Latin1Bidi::Bidi
2894
+ );
2895
+ assert_eq!(
2896
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{08FF}abcdefghijklmnop".as_bytes()),
2897
+ Latin1Bidi::Bidi
2898
+ );
2899
+ assert_eq!(
2900
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{061C}abcdefghijklmnop".as_bytes()),
2901
+ Latin1Bidi::Bidi
2902
+ );
2903
+ assert_eq!(
2904
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{FB50}abcdefghijklmnop".as_bytes()),
2905
+ Latin1Bidi::Bidi
2906
+ );
2907
+ assert_eq!(
2908
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{FDFF}abcdefghijklmnop".as_bytes()),
2909
+ Latin1Bidi::Bidi
2910
+ );
2911
+ assert_eq!(
2912
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{FE70}abcdefghijklmnop".as_bytes()),
2913
+ Latin1Bidi::Bidi
2914
+ );
2915
+ assert_eq!(
2916
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{FEFE}abcdefghijklmnop".as_bytes()),
2917
+ Latin1Bidi::Bidi
2918
+ );
2919
+ assert_eq!(
2920
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{200F}abcdefghijklmnop".as_bytes()),
2921
+ Latin1Bidi::Bidi
2922
+ );
2923
+ assert_eq!(
2924
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{202B}abcdefghijklmnop".as_bytes()),
2925
+ Latin1Bidi::Bidi
2926
+ );
2927
+ assert_eq!(
2928
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{202E}abcdefghijklmnop".as_bytes()),
2929
+ Latin1Bidi::Bidi
2930
+ );
2931
+ assert_eq!(
2932
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{2067}abcdefghijklmnop".as_bytes()),
2933
+ Latin1Bidi::Bidi
2934
+ );
2935
+ assert_eq!(
2936
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{10800}abcdefghijklmnop".as_bytes()),
2937
+ Latin1Bidi::Bidi
2938
+ );
2939
+ assert_eq!(
2940
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{10FFF}abcdefghijklmnop".as_bytes()),
2941
+ Latin1Bidi::Bidi
2942
+ );
2943
+ assert_eq!(
2944
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{1E800}abcdefghijklmnop".as_bytes()),
2945
+ Latin1Bidi::Bidi
2946
+ );
2947
+ assert_eq!(
2948
+ check_utf8_for_latin1_and_bidi("abcdefghijklmnop\u{1EFFF}abcdefghijklmnop".as_bytes()),
2949
+ Latin1Bidi::Bidi
2950
+ );
2951
+ }
2952
+
2953
+ #[test]
2954
+ fn test_check_utf16_for_latin1_and_bidi() {
2955
+ assert_ne!(
2956
+ check_utf16_for_latin1_and_bidi(&[
2957
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0062, 0x62, 0x63, 0x64, 0x65,
2958
+ 0x66, 0x67, 0x68, 0x69,
2959
+ ]),
2960
+ Latin1Bidi::Bidi
2961
+ );
2962
+ assert_ne!(
2963
+ check_utf16_for_latin1_and_bidi(&[
2964
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x03B1, 0x62, 0x63, 0x64, 0x65,
2965
+ 0x66, 0x67, 0x68, 0x69,
2966
+ ]),
2967
+ Latin1Bidi::Bidi
2968
+ );
2969
+ assert_ne!(
2970
+ check_utf16_for_latin1_and_bidi(&[
2971
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x3041, 0x62, 0x63, 0x64, 0x65,
2972
+ 0x66, 0x67, 0x68, 0x69,
2973
+ ]),
2974
+ Latin1Bidi::Bidi
2975
+ );
2976
+ assert_ne!(
2977
+ check_utf16_for_latin1_and_bidi(&[
2978
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD801, 0x62, 0x63, 0x64, 0x65,
2979
+ 0x66, 0x67, 0x68, 0x69,
2980
+ ]),
2981
+ Latin1Bidi::Bidi
2982
+ );
2983
+ assert_ne!(
2984
+ check_utf16_for_latin1_and_bidi(&[
2985
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFE00, 0x62, 0x63, 0x64, 0x65,
2986
+ 0x66, 0x67, 0x68, 0x69,
2987
+ ]),
2988
+ Latin1Bidi::Bidi
2989
+ );
2990
+ assert_ne!(
2991
+ check_utf16_for_latin1_and_bidi(&[
2992
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x202C, 0x62, 0x63, 0x64, 0x65,
2993
+ 0x66, 0x67, 0x68, 0x69,
2994
+ ]),
2995
+ Latin1Bidi::Bidi
2996
+ );
2997
+ assert_ne!(
2998
+ check_utf16_for_latin1_and_bidi(&[
2999
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFEFF, 0x62, 0x63, 0x64, 0x65,
3000
+ 0x66, 0x67, 0x68, 0x69,
3001
+ ]),
3002
+ Latin1Bidi::Bidi
3003
+ );
3004
+ assert_eq!(
3005
+ check_utf16_for_latin1_and_bidi(&[
3006
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0590, 0x62, 0x63, 0x64, 0x65,
3007
+ 0x66, 0x67, 0x68, 0x69,
3008
+ ]),
3009
+ Latin1Bidi::Bidi
3010
+ );
3011
+ assert_eq!(
3012
+ check_utf16_for_latin1_and_bidi(&[
3013
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x08FF, 0x62, 0x63, 0x64, 0x65,
3014
+ 0x66, 0x67, 0x68, 0x69,
3015
+ ]),
3016
+ Latin1Bidi::Bidi
3017
+ );
3018
+ assert_eq!(
3019
+ check_utf16_for_latin1_and_bidi(&[
3020
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x061C, 0x62, 0x63, 0x64, 0x65,
3021
+ 0x66, 0x67, 0x68, 0x69,
3022
+ ]),
3023
+ Latin1Bidi::Bidi
3024
+ );
3025
+ assert_eq!(
3026
+ check_utf16_for_latin1_and_bidi(&[
3027
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFB1D, 0x62, 0x63, 0x64, 0x65,
3028
+ 0x66, 0x67, 0x68, 0x69,
3029
+ ]),
3030
+ Latin1Bidi::Bidi
3031
+ );
3032
+ assert_eq!(
3033
+ check_utf16_for_latin1_and_bidi(&[
3034
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFB50, 0x62, 0x63, 0x64, 0x65,
3035
+ 0x66, 0x67, 0x68, 0x69,
3036
+ ]),
3037
+ Latin1Bidi::Bidi
3038
+ );
3039
+ assert_eq!(
3040
+ check_utf16_for_latin1_and_bidi(&[
3041
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFDFF, 0x62, 0x63, 0x64, 0x65,
3042
+ 0x66, 0x67, 0x68, 0x69,
3043
+ ]),
3044
+ Latin1Bidi::Bidi
3045
+ );
3046
+ assert_eq!(
3047
+ check_utf16_for_latin1_and_bidi(&[
3048
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFE70, 0x62, 0x63, 0x64, 0x65,
3049
+ 0x66, 0x67, 0x68, 0x69,
3050
+ ]),
3051
+ Latin1Bidi::Bidi
3052
+ );
3053
+ assert_eq!(
3054
+ check_utf16_for_latin1_and_bidi(&[
3055
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFEFE, 0x62, 0x63, 0x64, 0x65,
3056
+ 0x66, 0x67, 0x68, 0x69,
3057
+ ]),
3058
+ Latin1Bidi::Bidi
3059
+ );
3060
+ assert_eq!(
3061
+ check_utf16_for_latin1_and_bidi(&[
3062
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x200F, 0x62, 0x63, 0x64, 0x65,
3063
+ 0x66, 0x67, 0x68, 0x69,
3064
+ ]),
3065
+ Latin1Bidi::Bidi
3066
+ );
3067
+ assert_eq!(
3068
+ check_utf16_for_latin1_and_bidi(&[
3069
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x202B, 0x62, 0x63, 0x64, 0x65,
3070
+ 0x66, 0x67, 0x68, 0x69,
3071
+ ]),
3072
+ Latin1Bidi::Bidi
3073
+ );
3074
+ assert_eq!(
3075
+ check_utf16_for_latin1_and_bidi(&[
3076
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x202E, 0x62, 0x63, 0x64, 0x65,
3077
+ 0x66, 0x67, 0x68, 0x69,
3078
+ ]),
3079
+ Latin1Bidi::Bidi
3080
+ );
3081
+ assert_eq!(
3082
+ check_utf16_for_latin1_and_bidi(&[
3083
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x2067, 0x62, 0x63, 0x64, 0x65,
3084
+ 0x66, 0x67, 0x68, 0x69,
3085
+ ]),
3086
+ Latin1Bidi::Bidi
3087
+ );
3088
+ assert_eq!(
3089
+ check_utf16_for_latin1_and_bidi(&[
3090
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD802, 0x62, 0x63, 0x64, 0x65,
3091
+ 0x66, 0x67, 0x68, 0x69,
3092
+ ]),
3093
+ Latin1Bidi::Bidi
3094
+ );
3095
+ assert_eq!(
3096
+ check_utf16_for_latin1_and_bidi(&[
3097
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD803, 0x62, 0x63, 0x64, 0x65,
3098
+ 0x66, 0x67, 0x68, 0x69,
3099
+ ]),
3100
+ Latin1Bidi::Bidi
3101
+ );
3102
+ assert_eq!(
3103
+ check_utf16_for_latin1_and_bidi(&[
3104
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD83A, 0x62, 0x63, 0x64, 0x65,
3105
+ 0x66, 0x67, 0x68, 0x69,
3106
+ ]),
3107
+ Latin1Bidi::Bidi
3108
+ );
3109
+ assert_eq!(
3110
+ check_utf16_for_latin1_and_bidi(&[
3111
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xD83B, 0x62, 0x63, 0x64, 0x65,
3112
+ 0x66, 0x67, 0x68, 0x69,
3113
+ ]),
3114
+ Latin1Bidi::Bidi
3115
+ );
3116
+
3117
+ assert_eq!(
3118
+ check_utf16_for_latin1_and_bidi(&[
3119
+ 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x0590, 0x3041, 0x62, 0x63, 0x64,
3120
+ 0x65, 0x66, 0x67, 0x68, 0x69,
3121
+ ]),
3122
+ Latin1Bidi::Bidi
3123
+ );
3124
+ }
3125
+
3126
+ #[inline(always)]
3127
+ pub fn reference_is_char_bidi(c: char) -> bool {
3128
+ match c {
3129
+ '\u{0590}'..='\u{08FF}'
3130
+ | '\u{FB1D}'..='\u{FDFF}'
3131
+ | '\u{FE70}'..='\u{FEFE}'
3132
+ | '\u{10800}'..='\u{10FFF}'
3133
+ | '\u{1E800}'..='\u{1EFFF}'
3134
+ | '\u{200F}'
3135
+ | '\u{202B}'
3136
+ | '\u{202E}'
3137
+ | '\u{2067}' => true,
3138
+ _ => false,
3139
+ }
3140
+ }
3141
+
3142
+ #[inline(always)]
3143
+ pub fn reference_is_utf16_code_unit_bidi(u: u16) -> bool {
3144
+ match u {
3145
+ 0x0590..=0x08FF
3146
+ | 0xFB1D..=0xFDFF
3147
+ | 0xFE70..=0xFEFE
3148
+ | 0xD802
3149
+ | 0xD803
3150
+ | 0xD83A
3151
+ | 0xD83B
3152
+ | 0x200F
3153
+ | 0x202B
3154
+ | 0x202E
3155
+ | 0x2067 => true,
3156
+ _ => false,
3157
+ }
3158
+ }
3159
+
3160
+ #[test]
3161
+ #[cfg_attr(miri, ignore)] // Miri is too slow
3162
+ fn test_is_char_bidi_thoroughly() {
3163
+ for i in 0..0xD800u32 {
3164
+ let c: char = ::core::char::from_u32(i).unwrap();
3165
+ assert_eq!(is_char_bidi(c), reference_is_char_bidi(c));
3166
+ }
3167
+ for i in 0xE000..0x110000u32 {
3168
+ let c: char = ::core::char::from_u32(i).unwrap();
3169
+ assert_eq!(is_char_bidi(c), reference_is_char_bidi(c));
3170
+ }
3171
+ }
3172
+
3173
+ #[test]
3174
+ #[cfg_attr(miri, ignore)] // Miri is too slow
3175
+ fn test_is_utf16_code_unit_bidi_thoroughly() {
3176
+ for i in 0..0x10000u32 {
3177
+ let u = i as u16;
3178
+ assert_eq!(
3179
+ is_utf16_code_unit_bidi(u),
3180
+ reference_is_utf16_code_unit_bidi(u)
3181
+ );
3182
+ }
3183
+ }
3184
+
3185
+ #[test]
3186
+ #[cfg_attr(miri, ignore)] // Miri is too slow
3187
+ fn test_is_str_bidi_thoroughly() {
3188
+ let mut buf = [0; 4];
3189
+ for i in 0..0xD800u32 {
3190
+ let c: char = ::core::char::from_u32(i).unwrap();
3191
+ assert_eq!(
3192
+ is_str_bidi(c.encode_utf8(&mut buf[..])),
3193
+ reference_is_char_bidi(c)
3194
+ );
3195
+ }
3196
+ for i in 0xE000..0x110000u32 {
3197
+ let c: char = ::core::char::from_u32(i).unwrap();
3198
+ assert_eq!(
3199
+ is_str_bidi(c.encode_utf8(&mut buf[..])),
3200
+ reference_is_char_bidi(c)
3201
+ );
3202
+ }
3203
+ }
3204
+
3205
+ #[test]
3206
+ #[cfg_attr(miri, ignore)] // Miri is too slow
3207
+ fn test_is_utf8_bidi_thoroughly() {
3208
+ let mut buf = [0; 8];
3209
+ for i in 0..0xD800u32 {
3210
+ let c: char = ::core::char::from_u32(i).unwrap();
3211
+ let expect = reference_is_char_bidi(c);
3212
+ {
3213
+ let len = {
3214
+ let bytes = c.encode_utf8(&mut buf[..]).as_bytes();
3215
+ assert_eq!(is_utf8_bidi(bytes), expect);
3216
+ bytes.len()
3217
+ };
3218
+ {
3219
+ let tail = &mut buf[len..];
3220
+ for b in tail.iter_mut() {
3221
+ *b = 0;
3222
+ }
3223
+ }
3224
+ }
3225
+ assert_eq!(is_utf8_bidi(&buf[..]), expect);
3226
+ }
3227
+ for i in 0xE000..0x110000u32 {
3228
+ let c: char = ::core::char::from_u32(i).unwrap();
3229
+ let expect = reference_is_char_bidi(c);
3230
+ {
3231
+ let len = {
3232
+ let bytes = c.encode_utf8(&mut buf[..]).as_bytes();
3233
+ assert_eq!(is_utf8_bidi(bytes), expect);
3234
+ bytes.len()
3235
+ };
3236
+ {
3237
+ let tail = &mut buf[len..];
3238
+ for b in tail.iter_mut() {
3239
+ *b = 0;
3240
+ }
3241
+ }
3242
+ }
3243
+ assert_eq!(is_utf8_bidi(&buf[..]), expect);
3244
+ }
3245
+ }
3246
+
3247
+ #[test]
3248
+ #[cfg_attr(miri, ignore)] // Miri is too slow
3249
+ fn test_is_utf16_bidi_thoroughly() {
3250
+ let mut buf = [0; 32];
3251
+ for i in 0..0x10000u32 {
3252
+ let u = i as u16;
3253
+ buf[15] = u;
3254
+ assert_eq!(
3255
+ is_utf16_bidi(&buf[..]),
3256
+ reference_is_utf16_code_unit_bidi(u)
3257
+ );
3258
+ }
3259
+ }
3260
+
3261
+ #[test]
3262
+ fn test_is_utf8_bidi_edge_cases() {
3263
+ assert!(!is_utf8_bidi(b"\xD5\xBF\x61"));
3264
+ assert!(!is_utf8_bidi(b"\xD6\x80\x61"));
3265
+ assert!(!is_utf8_bidi(b"abc"));
3266
+ assert!(is_utf8_bidi(b"\xD5\xBF\xC2"));
3267
+ assert!(is_utf8_bidi(b"\xD6\x80\xC2"));
3268
+ assert!(is_utf8_bidi(b"ab\xC2"));
3269
+ }
3270
+
3271
+ #[test]
3272
+ fn test_decode_latin1() {
3273
+ match decode_latin1(b"ab") {
3274
+ Cow::Borrowed(s) => {
3275
+ assert_eq!(s, "ab");
3276
+ }
3277
+ Cow::Owned(_) => {
3278
+ unreachable!("Should have borrowed");
3279
+ }
3280
+ }
3281
+ assert_eq!(decode_latin1(b"a\xE4"), "a\u{E4}");
3282
+ }
3283
+
3284
+ #[test]
3285
+ fn test_encode_latin1_lossy() {
3286
+ match encode_latin1_lossy("ab") {
3287
+ Cow::Borrowed(s) => {
3288
+ assert_eq!(s, b"ab");
3289
+ }
3290
+ Cow::Owned(_) => {
3291
+ unreachable!("Should have borrowed");
3292
+ }
3293
+ }
3294
+ assert_eq!(encode_latin1_lossy("a\u{E4}"), &(b"a\xE4")[..]);
3295
+ }
3296
+
3297
+ #[test]
3298
+ fn test_convert_utf8_to_utf16_without_replacement() {
3299
+ let mut buf = [0u16; 5];
3300
+ assert_eq!(
3301
+ convert_utf8_to_utf16_without_replacement(b"ab", &mut buf[..2]),
3302
+ Some(2)
3303
+ );
3304
+ assert_eq!(buf[0], u16::from(b'a'));
3305
+ assert_eq!(buf[1], u16::from(b'b'));
3306
+ assert_eq!(buf[2], 0);
3307
+ assert_eq!(
3308
+ convert_utf8_to_utf16_without_replacement(b"\xC3\xA4c", &mut buf[..3]),
3309
+ Some(2)
3310
+ );
3311
+ assert_eq!(buf[0], 0xE4);
3312
+ assert_eq!(buf[1], u16::from(b'c'));
3313
+ assert_eq!(buf[2], 0);
3314
+ assert_eq!(
3315
+ convert_utf8_to_utf16_without_replacement(b"\xE2\x98\x83", &mut buf[..3]),
3316
+ Some(1)
3317
+ );
3318
+ assert_eq!(buf[0], 0x2603);
3319
+ assert_eq!(buf[1], u16::from(b'c'));
3320
+ assert_eq!(buf[2], 0);
3321
+ assert_eq!(
3322
+ convert_utf8_to_utf16_without_replacement(b"\xE2\x98\x83d", &mut buf[..4]),
3323
+ Some(2)
3324
+ );
3325
+ assert_eq!(buf[0], 0x2603);
3326
+ assert_eq!(buf[1], u16::from(b'd'));
3327
+ assert_eq!(buf[2], 0);
3328
+ assert_eq!(
3329
+ convert_utf8_to_utf16_without_replacement(b"\xE2\x98\x83\xC3\xA4", &mut buf[..5]),
3330
+ Some(2)
3331
+ );
3332
+ assert_eq!(buf[0], 0x2603);
3333
+ assert_eq!(buf[1], 0xE4);
3334
+ assert_eq!(buf[2], 0);
3335
+ assert_eq!(
3336
+ convert_utf8_to_utf16_without_replacement(b"\xF0\x9F\x93\x8E", &mut buf[..4]),
3337
+ Some(2)
3338
+ );
3339
+ assert_eq!(buf[0], 0xD83D);
3340
+ assert_eq!(buf[1], 0xDCCE);
3341
+ assert_eq!(buf[2], 0);
3342
+ assert_eq!(
3343
+ convert_utf8_to_utf16_without_replacement(b"\xF0\x9F\x93\x8Ee", &mut buf[..5]),
3344
+ Some(3)
3345
+ );
3346
+ assert_eq!(buf[0], 0xD83D);
3347
+ assert_eq!(buf[1], 0xDCCE);
3348
+ assert_eq!(buf[2], u16::from(b'e'));
3349
+ assert_eq!(
3350
+ convert_utf8_to_utf16_without_replacement(b"\xF0\x9F\x93", &mut buf[..5]),
3351
+ None
3352
+ );
3353
+ }
3354
+ }