wasmtime 9.0.4 → 10.0.1

Sign up to get free protection for your applications and to get access to all the features.
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.1/.cargo-checksum.json +1 -0
  325. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.1/Cargo.toml +90 -0
  326. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.1/src/dir.rs +464 -0
  327. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.1/src/lib.rs +141 -0
  328. data/ext/cargo-vendor/wasi-common-10.0.1/.cargo-checksum.json +1 -0
  329. data/ext/cargo-vendor/wasi-common-10.0.1/Cargo.toml +87 -0
  330. data/ext/cargo-vendor/wasi-common-10.0.1/src/ctx.rs +128 -0
  331. data/ext/cargo-vendor/wasi-common-10.0.1/src/file.rs +262 -0
  332. data/ext/cargo-vendor/wasi-common-10.0.1/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.1/.cargo-checksum.json +1 -0
  444. data/ext/cargo-vendor/wasmtime-10.0.1/Cargo.toml +183 -0
  445. data/ext/cargo-vendor/wasmtime-10.0.1/src/compiler.rs +710 -0
  446. data/ext/cargo-vendor/wasmtime-10.0.1/src/component/component.rs +382 -0
  447. data/ext/cargo-vendor/wasmtime-10.0.1/src/component/instance.rs +727 -0
  448. data/ext/cargo-vendor/wasmtime-10.0.1/src/component/matching.rs +112 -0
  449. data/ext/cargo-vendor/wasmtime-10.0.1/src/component/mod.rs +313 -0
  450. data/ext/cargo-vendor/wasmtime-10.0.1/src/config.rs +2066 -0
  451. data/ext/cargo-vendor/wasmtime-10.0.1/src/engine/serialization.rs +622 -0
  452. data/ext/cargo-vendor/wasmtime-10.0.1/src/engine.rs +757 -0
  453. data/ext/cargo-vendor/wasmtime-10.0.1/src/externals.rs +763 -0
  454. data/ext/cargo-vendor/wasmtime-10.0.1/src/func/typed.rs +638 -0
  455. data/ext/cargo-vendor/wasmtime-10.0.1/src/func.rs +2355 -0
  456. data/ext/cargo-vendor/wasmtime-10.0.1/src/instance.rs +905 -0
  457. data/ext/cargo-vendor/wasmtime-10.0.1/src/lib.rs +486 -0
  458. data/ext/cargo-vendor/wasmtime-10.0.1/src/linker.rs +1479 -0
  459. data/ext/cargo-vendor/wasmtime-10.0.1/src/memory.rs +950 -0
  460. data/ext/cargo-vendor/wasmtime-10.0.1/src/module.rs +1274 -0
  461. data/ext/cargo-vendor/wasmtime-10.0.1/src/ref.rs +109 -0
  462. data/ext/cargo-vendor/wasmtime-10.0.1/src/store/context.rs +243 -0
  463. data/ext/cargo-vendor/wasmtime-10.0.1/src/store/func_refs.rs +85 -0
  464. data/ext/cargo-vendor/wasmtime-10.0.1/src/store.rs +2166 -0
  465. data/ext/cargo-vendor/wasmtime-10.0.1/src/trampoline/func.rs +133 -0
  466. data/ext/cargo-vendor/wasmtime-10.0.1/src/trampoline/global.rs +67 -0
  467. data/ext/cargo-vendor/wasmtime-10.0.1/src/types/matching.rs +312 -0
  468. data/ext/cargo-vendor/wasmtime-10.0.1/src/types.rs +572 -0
  469. data/ext/cargo-vendor/wasmtime-10.0.1/src/values.rs +290 -0
  470. data/ext/cargo-vendor/wasmtime-asm-macros-10.0.1/.cargo-checksum.json +1 -0
  471. data/ext/cargo-vendor/wasmtime-asm-macros-10.0.1/Cargo.toml +22 -0
  472. data/ext/cargo-vendor/wasmtime-cache-10.0.1/.cargo-checksum.json +1 -0
  473. data/ext/cargo-vendor/wasmtime-cache-10.0.1/Cargo.toml +73 -0
  474. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/.cargo-checksum.json +1 -0
  475. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/Cargo.toml +58 -0
  476. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/src/bindgen.rs +316 -0
  477. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/char.wit +13 -0
  478. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/conventions.wit +39 -0
  479. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/direct-import.wit +5 -0
  480. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/empty.wit +2 -0
  481. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/flags.wit +55 -0
  482. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/floats.wit +13 -0
  483. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/function-new.wit +4 -0
  484. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/integers.wit +40 -0
  485. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/lists.wit +85 -0
  486. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/many-arguments.wit +52 -0
  487. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/multi-return.wit +14 -0
  488. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/records.wit +61 -0
  489. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/rename.wit +16 -0
  490. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/share-types.wit +21 -0
  491. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/simple-functions.wit +17 -0
  492. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/simple-lists.wit +13 -0
  493. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/simple-wasi.wit +23 -0
  494. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/small-anonymous.wit +15 -0
  495. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/smoke-default.wit +5 -0
  496. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/smoke-export.wit +7 -0
  497. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/smoke.wit +7 -0
  498. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/strings.wit +12 -0
  499. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/unions.wit +66 -0
  500. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/use-paths.wit +29 -0
  501. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/variants.wit +147 -0
  502. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen/worlds-with-types.wit +16 -0
  503. data/ext/cargo-vendor/wasmtime-component-macro-10.0.1/tests/codegen.rs +24 -0
  504. data/ext/cargo-vendor/wasmtime-component-util-10.0.1/.cargo-checksum.json +1 -0
  505. data/ext/cargo-vendor/wasmtime-component-util-10.0.1/Cargo.toml +25 -0
  506. data/ext/cargo-vendor/wasmtime-cranelift-10.0.1/.cargo-checksum.json +1 -0
  507. data/ext/cargo-vendor/wasmtime-cranelift-10.0.1/Cargo.toml +90 -0
  508. data/ext/cargo-vendor/wasmtime-cranelift-10.0.1/src/compiler.rs +1200 -0
  509. data/ext/cargo-vendor/wasmtime-cranelift-10.0.1/src/debug/transform/simulate.rs +410 -0
  510. data/ext/cargo-vendor/wasmtime-cranelift-10.0.1/src/func_environ.rs +2206 -0
  511. data/ext/cargo-vendor/wasmtime-cranelift-10.0.1/src/lib.rs +178 -0
  512. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.1/.cargo-checksum.json +1 -0
  513. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.1/Cargo.toml +57 -0
  514. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.1/src/lib.rs +120 -0
  515. data/ext/cargo-vendor/wasmtime-environ-10.0.1/.cargo-checksum.json +1 -0
  516. data/ext/cargo-vendor/wasmtime-environ-10.0.1/Cargo.lock +681 -0
  517. data/ext/cargo-vendor/wasmtime-environ-10.0.1/Cargo.toml +116 -0
  518. data/ext/cargo-vendor/wasmtime-environ-10.0.1/src/component/compiler.rs +84 -0
  519. data/ext/cargo-vendor/wasmtime-environ-10.0.1/src/component/translate/inline.rs +1067 -0
  520. data/ext/cargo-vendor/wasmtime-environ-10.0.1/src/component/translate.rs +1070 -0
  521. data/ext/cargo-vendor/wasmtime-environ-10.0.1/src/component/types.rs +1916 -0
  522. data/ext/cargo-vendor/wasmtime-environ-10.0.1/src/fact.rs +623 -0
  523. data/ext/cargo-vendor/wasmtime-environ-10.0.1/src/module.rs +1083 -0
  524. data/ext/cargo-vendor/wasmtime-environ-10.0.1/src/module_environ.rs +884 -0
  525. data/ext/cargo-vendor/wasmtime-environ-10.0.1/src/trap_encoding.rs +238 -0
  526. data/ext/cargo-vendor/wasmtime-fiber-10.0.1/.cargo-checksum.json +1 -0
  527. data/ext/cargo-vendor/wasmtime-fiber-10.0.1/Cargo.toml +46 -0
  528. data/ext/cargo-vendor/wasmtime-fiber-10.0.1/src/lib.rs +305 -0
  529. data/ext/cargo-vendor/wasmtime-fiber-10.0.1/src/unix.rs +212 -0
  530. data/ext/cargo-vendor/wasmtime-fiber-10.0.1/src/windows.rs +161 -0
  531. data/ext/cargo-vendor/wasmtime-jit-10.0.1/.cargo-checksum.json +1 -0
  532. data/ext/cargo-vendor/wasmtime-jit-10.0.1/Cargo.toml +104 -0
  533. data/ext/cargo-vendor/wasmtime-jit-10.0.1/src/instantiate.rs +760 -0
  534. data/ext/cargo-vendor/wasmtime-jit-10.0.1/src/lib.rs +38 -0
  535. data/ext/cargo-vendor/wasmtime-jit-10.0.1/src/profiling/jitdump.rs +66 -0
  536. data/ext/cargo-vendor/wasmtime-jit-10.0.1/src/profiling/perfmap.rs +47 -0
  537. data/ext/cargo-vendor/wasmtime-jit-10.0.1/src/profiling/vtune.rs +80 -0
  538. data/ext/cargo-vendor/wasmtime-jit-10.0.1/src/profiling.rs +108 -0
  539. data/ext/cargo-vendor/wasmtime-jit-debug-10.0.1/.cargo-checksum.json +1 -0
  540. data/ext/cargo-vendor/wasmtime-jit-debug-10.0.1/Cargo.toml +55 -0
  541. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-10.0.1/.cargo-checksum.json +1 -0
  542. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-10.0.1/Cargo.toml +37 -0
  543. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/.cargo-checksum.json +1 -0
  544. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/Cargo.toml +110 -0
  545. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/component.rs +701 -0
  546. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/cow.rs +1060 -0
  547. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/debug_builtins.rs +58 -0
  548. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/externref.rs +1073 -0
  549. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/instance/allocator/pooling.rs +1368 -0
  550. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/instance/allocator.rs +531 -0
  551. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/instance.rs +1345 -0
  552. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/lib.rs +285 -0
  553. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/libcalls.rs +578 -0
  554. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/memory.rs +958 -0
  555. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/mmap/miri.rs +94 -0
  556. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/mmap/unix.rs +148 -0
  557. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/mmap/windows.rs +208 -0
  558. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/send_sync_ptr.rs +69 -0
  559. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/table.rs +595 -0
  560. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/traphandlers/unix.rs +387 -0
  561. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/traphandlers.rs +749 -0
  562. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/src/vmcontext/vm_host_func_context.rs +137 -0
  563. data/ext/cargo-vendor/wasmtime-runtime-10.0.1/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.1/.cargo-checksum.json +1 -0
  568. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/Cargo.toml +153 -0
  569. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/lib.rs +131 -0
  570. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/clocks/host.rs +73 -0
  571. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/clocks.rs +17 -0
  572. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/ctx.rs +206 -0
  573. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/error.rs +16 -0
  574. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/filesystem.rs +269 -0
  575. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/mod.rs +44 -0
  576. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/pipe.rs +233 -0
  577. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview1/mod.rs +1860 -0
  578. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview2/clocks.rs +80 -0
  579. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview2/env.rs +48 -0
  580. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview2/exit.rs +12 -0
  581. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview2/filesystem.rs +1020 -0
  582. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview2/io.rs +215 -0
  583. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview2/mod.rs +7 -0
  584. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview2/poll.rs +84 -0
  585. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/preview2/random.rs +41 -0
  586. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/random.rs +58 -0
  587. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/sched/subscription.rs +104 -0
  588. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/sched/sync.rs +156 -0
  589. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/sched.rs +105 -0
  590. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/stdio.rs +176 -0
  591. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/stream.rs +210 -0
  592. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/table.rs +107 -0
  593. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/wasi/command.rs +43 -0
  594. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/src/preview2/wasi/mod.rs +30 -0
  595. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/clocks/monotonic-clock.wit +34 -0
  596. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/clocks/timezone.wit +63 -0
  597. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/clocks/wall-clock.wit +43 -0
  598. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/filesystem/filesystem.wit +782 -0
  599. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/http/incoming-handler.wit +24 -0
  600. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/http/outgoing-handler.wit +18 -0
  601. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/http/types.wit +159 -0
  602. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/io/streams.wit +215 -0
  603. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/logging/handler.wit +34 -0
  604. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/poll/poll.wit +41 -0
  605. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/preview/command-extended.wit +36 -0
  606. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/preview/command.wit +26 -0
  607. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/preview/proxy.wit +9 -0
  608. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/preview/reactor.wit +24 -0
  609. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/random/insecure-seed.wit +24 -0
  610. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/random/insecure.wit +21 -0
  611. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/random/random.wit +25 -0
  612. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/sockets/instance-network.wit +9 -0
  613. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/sockets/ip-name-lookup.wit +69 -0
  614. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/sockets/network.wit +187 -0
  615. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/sockets/tcp-create-socket.wit +27 -0
  616. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/sockets/tcp.wit +255 -0
  617. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/sockets/udp-create-socket.wit +27 -0
  618. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/sockets/udp.wit +211 -0
  619. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/wasi-cli-base/environment.wit +16 -0
  620. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/wasi-cli-base/exit.wit +4 -0
  621. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/wasi-cli-base/preopens.wit +7 -0
  622. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/deps/wasi-cli-base/stdio.wit +17 -0
  623. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/main.wit +1 -0
  624. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/wit/test.wit +19 -0
  625. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/witx/typenames.witx +750 -0
  626. data/ext/cargo-vendor/wasmtime-wasi-10.0.1/witx/wasi_snapshot_preview1.witx +521 -0
  627. data/ext/cargo-vendor/wasmtime-winch-10.0.1/.cargo-checksum.json +1 -0
  628. data/ext/cargo-vendor/wasmtime-winch-10.0.1/Cargo.toml +63 -0
  629. data/ext/cargo-vendor/wasmtime-winch-10.0.1/src/compiler.rs +220 -0
  630. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.1/.cargo-checksum.json +1 -0
  631. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.1/Cargo.toml +29 -0
  632. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.1/src/lib.rs +1631 -0
  633. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.1/src/types.rs +179 -0
  634. data/ext/cargo-vendor/wiggle-10.0.1/.cargo-checksum.json +1 -0
  635. data/ext/cargo-vendor/wiggle-10.0.1/Cargo.toml +106 -0
  636. data/ext/cargo-vendor/wiggle-10.0.1/LICENSE +220 -0
  637. data/ext/cargo-vendor/wiggle-10.0.1/README.md +18 -0
  638. data/ext/cargo-vendor/wiggle-generate-10.0.1/.cargo-checksum.json +1 -0
  639. data/ext/cargo-vendor/wiggle-generate-10.0.1/Cargo.toml +58 -0
  640. data/ext/cargo-vendor/wiggle-generate-10.0.1/LICENSE +220 -0
  641. data/ext/cargo-vendor/wiggle-macro-10.0.1/.cargo-checksum.json +1 -0
  642. data/ext/cargo-vendor/wiggle-macro-10.0.1/Cargo.toml +55 -0
  643. data/ext/cargo-vendor/wiggle-macro-10.0.1/LICENSE +220 -0
  644. data/ext/cargo-vendor/wiggle-macro-10.0.1/src/lib.rs +210 -0
  645. data/ext/cargo-vendor/winch-codegen-0.8.1/.cargo-checksum.json +1 -0
  646. data/ext/cargo-vendor/winch-codegen-0.8.1/Cargo.toml +62 -0
  647. data/ext/cargo-vendor/winch-codegen-0.8.1/src/abi/local.rs +70 -0
  648. data/ext/cargo-vendor/winch-codegen-0.8.1/src/abi/mod.rs +237 -0
  649. data/ext/cargo-vendor/winch-codegen-0.8.1/src/codegen/call.rs +225 -0
  650. data/ext/cargo-vendor/winch-codegen-0.8.1/src/codegen/context.rs +270 -0
  651. data/ext/cargo-vendor/winch-codegen-0.8.1/src/codegen/env.rs +52 -0
  652. data/ext/cargo-vendor/winch-codegen-0.8.1/src/codegen/mod.rs +214 -0
  653. data/ext/cargo-vendor/winch-codegen-0.8.1/src/frame/mod.rs +172 -0
  654. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/aarch64/abi.rs +243 -0
  655. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/aarch64/asm.rs +300 -0
  656. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/aarch64/masm.rs +230 -0
  657. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/aarch64/mod.rs +127 -0
  658. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/aarch64/regs.rs +166 -0
  659. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/mod.rs +215 -0
  660. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/x64/abi.rs +369 -0
  661. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/x64/address.rs +17 -0
  662. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/x64/asm.rs +576 -0
  663. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/x64/masm.rs +288 -0
  664. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/x64/mod.rs +149 -0
  665. data/ext/cargo-vendor/winch-codegen-0.8.1/src/isa/x64/regs.rs +192 -0
  666. data/ext/cargo-vendor/winch-codegen-0.8.1/src/lib.rs +21 -0
  667. data/ext/cargo-vendor/winch-codegen-0.8.1/src/masm.rs +255 -0
  668. data/ext/cargo-vendor/winch-codegen-0.8.1/src/regalloc.rs +70 -0
  669. data/ext/cargo-vendor/winch-codegen-0.8.1/src/stack.rs +235 -0
  670. data/ext/cargo-vendor/winch-codegen-0.8.1/src/trampoline.rs +494 -0
  671. data/ext/cargo-vendor/winch-codegen-0.8.1/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.1}/LICENSE +0 -0
  1669. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.1}/README.md +0 -0
  1670. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.1}/src/clocks.rs +0 -0
  1671. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.1}/src/file.rs +0 -0
  1672. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.1}/src/net.rs +0 -0
  1673. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.1}/src/sched/unix.rs +0 -0
  1674. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.1}/src/sched/windows.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.1}/src/sched.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.1}/src/stdio.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/LICENSE +0 -0
  1678. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/README.md +0 -0
  1679. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/README.md +0 -0
  1680. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/docs/README.md +0 -0
  1681. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/README.md +0 -0
  1682. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/docs.md +0 -0
  1683. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  1684. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  1685. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  1686. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  1687. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  1688. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  1689. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  1690. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  1691. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  1692. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  1693. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  1694. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/old/snapshot_0/docs.md +0 -0
  1695. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  1696. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/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.1}/WASI/phases/snapshot/docs.html +0 -0
  1698. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/snapshot/docs.md +0 -0
  1699. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  1700. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  1701. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/proposal-template/README.md +0 -0
  1702. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/proposals/README.md +0 -0
  1703. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/snapshots/README.md +0 -0
  1704. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/WASI/standard/README.md +0 -0
  1705. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/build.rs +0 -0
  1706. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/clocks.rs +0 -0
  1707. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/dir.rs +0 -0
  1708. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/error.rs +0 -0
  1709. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/lib.rs +0 -0
  1710. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/pipe.rs +0 -0
  1711. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/random.rs +0 -0
  1712. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/sched/subscription.rs +0 -0
  1713. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/sched.rs +0 -0
  1714. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/snapshots/mod.rs +0 -0
  1715. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/snapshots/preview_0.rs +0 -0
  1716. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/snapshots/preview_1/error.rs +0 -0
  1717. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/src/string_array.rs +0 -0
  1718. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.1}/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.1}/LICENSE +0 -0
  1749. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/README.md +0 -0
  1750. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/code.rs +0 -0
  1751. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/func/host.rs +0 -0
  1752. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/func/options.rs +0 -0
  1753. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/func/typed.rs +0 -0
  1754. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/func.rs +0 -0
  1755. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/linker.rs +0 -0
  1756. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/storage.rs +0 -0
  1757. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/store.rs +0 -0
  1758. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/types.rs +0 -0
  1759. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/component/values.rs +0 -0
  1760. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/limits.rs +0 -0
  1761. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/module/registry.rs +0 -0
  1762. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/profiling.rs +0 -0
  1763. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/signatures.rs +0 -0
  1764. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/store/data.rs +0 -0
  1765. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/trampoline/memory.rs +0 -0
  1766. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/trampoline/table.rs +0 -0
  1767. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/trampoline.rs +0 -0
  1768. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/trap.rs +0 -0
  1769. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/unix.rs +0 -0
  1770. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.1}/src/windows.rs +0 -0
  1771. /data/ext/cargo-vendor/{wasmtime-asm-macros-9.0.4 → wasmtime-asm-macros-10.0.1}/src/lib.rs +0 -0
  1772. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-cache-10.0.1}/LICENSE +0 -0
  1773. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/build.rs +0 -0
  1774. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/src/config/tests.rs +0 -0
  1775. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/src/config.rs +0 -0
  1776. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/src/lib.rs +0 -0
  1777. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/src/tests.rs +0 -0
  1778. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/src/worker/tests/system_time_stub.rs +0 -0
  1779. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/src/worker/tests.rs +0 -0
  1780. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/src/worker.rs +0 -0
  1781. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.1}/tests/cache_write_default_config.rs +0 -0
  1782. /data/ext/cargo-vendor/{wasmtime-component-macro-9.0.4 → wasmtime-component-macro-10.0.1}/src/component.rs +0 -0
  1783. /data/ext/cargo-vendor/{wasmtime-component-macro-9.0.4 → wasmtime-component-macro-10.0.1}/src/lib.rs +0 -0
  1784. /data/ext/cargo-vendor/{wasmtime-component-util-9.0.4 → wasmtime-component-util-10.0.1}/src/lib.rs +0 -0
  1785. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-cranelift-10.0.1}/LICENSE +0 -0
  1786. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/SECURITY.md +0 -0
  1787. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/builder.rs +0 -0
  1788. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/compiler/component.rs +0 -0
  1789. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/gc.rs +0 -0
  1790. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/address_transform.rs +0 -0
  1791. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/attr.rs +0 -0
  1792. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/expression.rs +0 -0
  1793. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/line_program.rs +0 -0
  1794. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/mod.rs +0 -0
  1795. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/range_info_builder.rs +0 -0
  1796. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/refs.rs +0 -0
  1797. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/unit.rs +0 -0
  1798. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/transform/utils.rs +0 -0
  1799. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug/write_debuginfo.rs +0 -0
  1800. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.1}/src/debug.rs +0 -0
  1801. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.1}/src/compiled_function.rs +0 -0
  1802. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.1}/src/isa_builder.rs +0 -0
  1803. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.1}/src/obj.rs +0 -0
  1804. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-environ-10.0.1}/LICENSE +0 -0
  1805. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/examples/factc.rs +0 -0
  1806. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/address_map.rs +0 -0
  1807. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/builtin.rs +0 -0
  1808. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/compilation.rs +0 -0
  1809. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/component/dfg.rs +0 -0
  1810. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/component/info.rs +0 -0
  1811. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/component/translate/adapt.rs +0 -0
  1812. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/component/vmcomponent_offsets.rs +0 -0
  1813. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/component.rs +0 -0
  1814. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/fact/core_types.rs +0 -0
  1815. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/fact/signature.rs +0 -0
  1816. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/fact/trampoline.rs +0 -0
  1817. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/fact/transcode.rs +0 -0
  1818. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/fact/traps.rs +0 -0
  1819. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/lib.rs +0 -0
  1820. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/module_types.rs +0 -0
  1821. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/obj.rs +0 -0
  1822. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/ref_bits.rs +0 -0
  1823. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/scopevec.rs +0 -0
  1824. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/stack_map.rs +0 -0
  1825. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/tunables.rs +0 -0
  1826. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.1}/src/vmoffsets.rs +0 -0
  1827. /data/ext/cargo-vendor/{wasmtime-types-9.0.4 → wasmtime-fiber-10.0.1}/LICENSE +0 -0
  1828. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.1}/build.rs +0 -0
  1829. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.1}/src/unix/aarch64.rs +0 -0
  1830. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.1}/src/unix/arm.rs +0 -0
  1831. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.1}/src/unix/riscv64.rs +0 -0
  1832. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.1}/src/unix/s390x.S +0 -0
  1833. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.1}/src/unix/x86.rs +0 -0
  1834. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.1}/src/unix/x86_64.rs +0 -0
  1835. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.1}/src/windows.c +0 -0
  1836. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-jit-10.0.1}/LICENSE +0 -0
  1837. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.1}/src/code_memory.rs +0 -0
  1838. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.1}/src/debug.rs +0 -0
  1839. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.1}/src/demangling.rs +0 -0
  1840. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.1}/src/unwind/miri.rs +0 -0
  1841. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.1}/src/unwind/systemv.rs +0 -0
  1842. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.1}/src/unwind/winx64.rs +0 -0
  1843. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.1}/src/unwind.rs +0 -0
  1844. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.1}/README.md +0 -0
  1845. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.1}/src/gdb_jit_int.rs +0 -0
  1846. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.1}/src/lib.rs +0 -0
  1847. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.1}/src/perf_jitdump.rs +0 -0
  1848. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.1}/src/lib.rs +0 -0
  1849. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.1}/src/libc.rs +0 -0
  1850. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.1}/src/miri.rs +0 -0
  1851. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.1}/src/win.rs +0 -0
  1852. /data/ext/cargo-vendor/{wiggle-9.0.4 → wasmtime-runtime-10.0.1}/LICENSE +0 -0
  1853. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/build.rs +0 -0
  1854. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/component/transcode.rs +0 -0
  1855. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/export.rs +0 -0
  1856. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/helpers.c +0 -0
  1857. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/imports.rs +0 -0
  1858. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1859. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/instance/allocator/pooling/unix.rs +0 -0
  1860. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/instance/allocator/pooling/windows.rs +0 -0
  1861. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/mmap.rs +0 -0
  1862. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/mmap_vec.rs +0 -0
  1863. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/module_id.rs +0 -0
  1864. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/parking_spot.rs +0 -0
  1865. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/store_box.rs +0 -0
  1866. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/trampolines/aarch64.rs +0 -0
  1867. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/trampolines/riscv64.rs +0 -0
  1868. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/trampolines/s390x.S +0 -0
  1869. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/trampolines/s390x.rs +0 -0
  1870. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/trampolines/x86_64.rs +0 -0
  1871. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/trampolines.rs +0 -0
  1872. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/traphandlers/backtrace/aarch64.rs +0 -0
  1873. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/traphandlers/backtrace/riscv64.rs +0 -0
  1874. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/traphandlers/backtrace/s390x.rs +0 -0
  1875. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/traphandlers/backtrace/x86_64.rs +0 -0
  1876. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/traphandlers/backtrace.rs +0 -0
  1877. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/src/traphandlers/macos.rs +0 -0
  1878. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.1}/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.1}/LICENSE +0 -0
  1882. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-wasi-10.0.1}/README.md +0 -0
  1883. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-wasi-10.0.1}/build.rs +0 -0
  1884. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.1}/LICENSE +0 -0
  1885. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.1}/src/builder.rs +0 -0
  1886. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.1}/src/lib.rs +0 -0
  1887. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-9.0.4 → wasmtime-wit-bindgen-10.0.1}/src/rust.rs +0 -0
  1888. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-9.0.4 → wasmtime-wit-bindgen-10.0.1}/src/source.rs +0 -0
  1889. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.1}/src/borrow.rs +0 -0
  1890. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.1}/src/error.rs +0 -0
  1891. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.1}/src/guest_type.rs +0 -0
  1892. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.1}/src/lib.rs +0 -0
  1893. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.1}/src/region.rs +0 -0
  1894. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.1}/src/wasmtime.rs +0 -0
  1895. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/README.md +0 -0
  1896. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/codegen_settings.rs +0 -0
  1897. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/config.rs +0 -0
  1898. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/funcs.rs +0 -0
  1899. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/lib.rs +0 -0
  1900. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/lifetimes.rs +0 -0
  1901. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/module_trait.rs +0 -0
  1902. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/names.rs +0 -0
  1903. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/types/error.rs +0 -0
  1904. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/types/flags.rs +0 -0
  1905. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/types/handle.rs +0 -0
  1906. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/types/mod.rs +0 -0
  1907. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/types/record.rs +0 -0
  1908. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/types/variant.rs +0 -0
  1909. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.1}/src/wasmtime.rs +0 -0
  1910. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.1}/LICENSE +0 -0
  1911. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.1}/build.rs +0 -0
  1912. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.1}/src/isa/aarch64/address.rs +0 -0
  1913. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.1}/src/isa/reg.rs +0 -0
  1914. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.1}/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
+ }