wasmtime 20.0.2 → 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2470) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +137 -139
  3. data/ext/Cargo.toml +8 -6
  4. data/ext/cargo-vendor/cobs-0.2.3/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cobs-0.2.3/Cargo.toml +39 -0
  6. data/ext/cargo-vendor/cobs-0.2.3/LICENSE-APACHE +202 -0
  7. data/ext/cargo-vendor/cobs-0.2.3/LICENSE-MIT +19 -0
  8. data/ext/cargo-vendor/cobs-0.2.3/README.md +23 -0
  9. data/ext/cargo-vendor/cobs-0.2.3/src/dec.rs +360 -0
  10. data/ext/cargo-vendor/cobs-0.2.3/src/enc.rs +216 -0
  11. data/ext/cargo-vendor/cobs-0.2.3/src/lib.rs +14 -0
  12. data/ext/cargo-vendor/cobs-0.2.3/tests/test.rs +265 -0
  13. data/ext/cargo-vendor/cranelift-bforest-0.109.0/.cargo-checksum.json +1 -0
  14. data/ext/cargo-vendor/cranelift-bforest-0.109.0/Cargo.toml +41 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.109.0/.cargo-checksum.json +1 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.109.0/Cargo.toml +193 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.109.0/build.rs +266 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/alias_analysis.rs +403 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/context.rs +384 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ctxhash.rs +167 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/dominator_tree.rs +727 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/egraph/elaborate.rs +835 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/egraph.rs +835 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/incremental_cache.rs +256 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/inst_predicates.rs +230 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/dfg.rs +1777 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/extfunc.rs +402 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/immediates.rs +1612 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/instructions.rs +1020 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/stackslot.rs +208 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/types.rs +627 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/abi.rs +1556 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/args.rs +711 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/emit.rs +3584 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/emit_tests.rs +7901 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/imms.rs +1213 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/mod.rs +3060 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/regs.rs +269 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/unwind/systemv.rs +174 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst.isle +4218 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/lower/isle.rs +810 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/pcc.rs +568 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/mod.rs +449 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/abi.rs +1029 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/args.rs +2054 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/emit.rs +2682 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/emit_tests.rs +2215 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/encode.rs +675 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/imms.rs +374 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/mod.rs +1938 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/regs.rs +168 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/unwind/systemv.rs +170 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/vector.rs +1150 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst.isle +3127 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst_vector.isle +1907 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/lower/isle.rs +649 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/lower.isle +2923 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/mod.rs +260 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/abi.rs +1016 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/args.rs +298 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/emit.rs +3401 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/emit_tests.rs +13388 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/imms.rs +202 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/mod.rs +3401 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/regs.rs +169 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/unwind/systemv.rs +212 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst.isle +5028 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/lower.isle +3995 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/abi.rs +1390 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/args.rs +2240 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit.rs +4287 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit_state.rs +52 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit_tests.rs +5171 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/mod.rs +2821 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/regs.rs +275 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/unwind/systemv.rs +198 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst.isle +5289 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/lower/isle.rs +1064 -0
  79. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/lower.isle +4810 -0
  80. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/lower.rs +337 -0
  81. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/pcc.rs +1014 -0
  82. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isle_prelude.rs +986 -0
  83. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/lib.rs +106 -0
  84. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/abi.rs +2419 -0
  85. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/blockorder.rs +465 -0
  86. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/buffer.rs +2508 -0
  87. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/isle.rs +909 -0
  88. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/lower.rs +1432 -0
  89. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/mod.rs +551 -0
  90. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/reg.rs +479 -0
  91. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/valueregs.rs +138 -0
  92. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/vcode.rs +1741 -0
  93. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/nan_canonicalization.rs +130 -0
  94. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/arithmetic.isle +240 -0
  95. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/cprop.isle +297 -0
  96. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/icmp.isle +215 -0
  97. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/shifts.isle +307 -0
  98. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/prelude.isle +664 -0
  99. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/prelude_lower.isle +1073 -0
  100. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ranges.rs +131 -0
  101. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/remove_constant_phis.rs +419 -0
  102. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/scoped_hash_map.rs +310 -0
  103. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/settings.rs +590 -0
  104. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/timing.rs +296 -0
  105. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/traversals.rs +216 -0
  106. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/verifier/mod.rs +1957 -0
  107. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/write.rs +638 -0
  108. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/.cargo-checksum.json +1 -0
  109. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/Cargo.toml +36 -0
  110. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/cdsl/types.rs +496 -0
  111. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_inst.rs +1278 -0
  112. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_isle.rs +519 -0
  113. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_settings.rs +508 -0
  114. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/gen_types.rs +75 -0
  115. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/isa/riscv64.rs +174 -0
  116. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/isa/x86.rs +414 -0
  117. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/isle.rs +126 -0
  118. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/lib.rs +98 -0
  119. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/shared/settings.rs +348 -0
  120. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/srcgen.rs +464 -0
  121. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/.cargo-checksum.json +1 -0
  122. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/Cargo.toml +22 -0
  123. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/src/constants.rs +28 -0
  124. data/ext/cargo-vendor/cranelift-control-0.109.0/.cargo-checksum.json +1 -0
  125. data/ext/cargo-vendor/cranelift-control-0.109.0/Cargo.toml +30 -0
  126. data/ext/cargo-vendor/cranelift-entity-0.109.0/.cargo-checksum.json +1 -0
  127. data/ext/cargo-vendor/cranelift-entity-0.109.0/Cargo.toml +53 -0
  128. data/ext/cargo-vendor/cranelift-entity-0.109.0/src/lib.rs +381 -0
  129. data/ext/cargo-vendor/cranelift-entity-0.109.0/src/set.rs +290 -0
  130. data/ext/cargo-vendor/cranelift-frontend-0.109.0/.cargo-checksum.json +1 -0
  131. data/ext/cargo-vendor/cranelift-frontend-0.109.0/Cargo.toml +68 -0
  132. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/frontend.rs +1857 -0
  133. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/lib.rs +187 -0
  134. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/ssa.rs +1328 -0
  135. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/switch.rs +696 -0
  136. data/ext/cargo-vendor/cranelift-isle-0.109.0/.cargo-checksum.json +1 -0
  137. data/ext/cargo-vendor/cranelift-isle-0.109.0/Cargo.toml +47 -0
  138. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/codegen.rs +886 -0
  139. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/disjointsets.rs +169 -0
  140. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/lib.rs +33 -0
  141. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/sema.rs +2492 -0
  142. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/serialize.rs +846 -0
  143. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/stablemapset.rs +79 -0
  144. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/trie_again.rs +684 -0
  145. data/ext/cargo-vendor/cranelift-native-0.109.0/.cargo-checksum.json +1 -0
  146. data/ext/cargo-vendor/cranelift-native-0.109.0/Cargo.toml +43 -0
  147. data/ext/cargo-vendor/cranelift-native-0.109.0/src/lib.rs +188 -0
  148. data/ext/cargo-vendor/cranelift-native-0.109.0/src/riscv.rs +128 -0
  149. data/ext/cargo-vendor/cranelift-wasm-0.109.0/.cargo-checksum.json +1 -0
  150. data/ext/cargo-vendor/cranelift-wasm-0.109.0/Cargo.toml +110 -0
  151. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/code_translator.rs +3695 -0
  152. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/environ/dummy.rs +906 -0
  153. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/environ/spec.rs +945 -0
  154. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/func_translator.rs +296 -0
  155. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/module_translator.rs +120 -0
  156. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/sections_translator.rs +343 -0
  157. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/state.rs +522 -0
  158. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/.cargo-checksum.json +1 -0
  159. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/Cargo.toml +48 -0
  160. data/ext/cargo-vendor/embedded-io-0.4.0/.cargo-checksum.json +1 -0
  161. data/ext/cargo-vendor/embedded-io-0.4.0/CHANGELOG.md +28 -0
  162. data/ext/cargo-vendor/embedded-io-0.4.0/Cargo.toml +73 -0
  163. data/ext/cargo-vendor/embedded-io-0.4.0/LICENSE-MIT +25 -0
  164. data/ext/cargo-vendor/embedded-io-0.4.0/README.md +33 -0
  165. data/ext/cargo-vendor/embedded-io-0.4.0/ci.sh +21 -0
  166. data/ext/cargo-vendor/embedded-io-0.4.0/rust-toolchain.toml +3 -0
  167. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/futures_io.rs +65 -0
  168. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/mod.rs +40 -0
  169. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/std_io.rs +107 -0
  170. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/tokio.rs +108 -0
  171. data/ext/cargo-vendor/embedded-io-0.4.0/src/asynch.rs +230 -0
  172. data/ext/cargo-vendor/embedded-io-0.4.0/src/blocking.rs +309 -0
  173. data/ext/cargo-vendor/embedded-io-0.4.0/src/fmt.rs +228 -0
  174. data/ext/cargo-vendor/embedded-io-0.4.0/src/lib.rs +125 -0
  175. data/ext/cargo-vendor/libm-0.2.8/.cargo-checksum.json +1 -0
  176. data/ext/cargo-vendor/libm-0.2.8/CHANGELOG.md +123 -0
  177. data/ext/cargo-vendor/libm-0.2.8/CONTRIBUTING.md +95 -0
  178. data/ext/cargo-vendor/libm-0.2.8/Cargo.toml +45 -0
  179. data/ext/cargo-vendor/libm-0.2.8/LICENSE-APACHE +201 -0
  180. data/ext/cargo-vendor/libm-0.2.8/LICENSE-MIT +25 -0
  181. data/ext/cargo-vendor/libm-0.2.8/README.md +51 -0
  182. data/ext/cargo-vendor/libm-0.2.8/build.rs +463 -0
  183. data/ext/cargo-vendor/libm-0.2.8/src/lib.rs +59 -0
  184. data/ext/cargo-vendor/libm-0.2.8/src/libm_helper.rs +171 -0
  185. data/ext/cargo-vendor/libm-0.2.8/src/math/acos.rs +112 -0
  186. data/ext/cargo-vendor/libm-0.2.8/src/math/acosf.rs +79 -0
  187. data/ext/cargo-vendor/libm-0.2.8/src/math/acosh.rs +27 -0
  188. data/ext/cargo-vendor/libm-0.2.8/src/math/acoshf.rs +26 -0
  189. data/ext/cargo-vendor/libm-0.2.8/src/math/asin.rs +119 -0
  190. data/ext/cargo-vendor/libm-0.2.8/src/math/asinf.rs +72 -0
  191. data/ext/cargo-vendor/libm-0.2.8/src/math/asinh.rs +40 -0
  192. data/ext/cargo-vendor/libm-0.2.8/src/math/asinhf.rs +39 -0
  193. data/ext/cargo-vendor/libm-0.2.8/src/math/atan.rs +184 -0
  194. data/ext/cargo-vendor/libm-0.2.8/src/math/atan2.rs +126 -0
  195. data/ext/cargo-vendor/libm-0.2.8/src/math/atan2f.rs +91 -0
  196. data/ext/cargo-vendor/libm-0.2.8/src/math/atanf.rs +112 -0
  197. data/ext/cargo-vendor/libm-0.2.8/src/math/atanh.rs +37 -0
  198. data/ext/cargo-vendor/libm-0.2.8/src/math/atanhf.rs +37 -0
  199. data/ext/cargo-vendor/libm-0.2.8/src/math/cbrt.rs +113 -0
  200. data/ext/cargo-vendor/libm-0.2.8/src/math/cbrtf.rs +75 -0
  201. data/ext/cargo-vendor/libm-0.2.8/src/math/ceil.rs +82 -0
  202. data/ext/cargo-vendor/libm-0.2.8/src/math/ceilf.rs +65 -0
  203. data/ext/cargo-vendor/libm-0.2.8/src/math/copysign.rs +12 -0
  204. data/ext/cargo-vendor/libm-0.2.8/src/math/copysignf.rs +12 -0
  205. data/ext/cargo-vendor/libm-0.2.8/src/math/cos.rs +73 -0
  206. data/ext/cargo-vendor/libm-0.2.8/src/math/cosf.rs +83 -0
  207. data/ext/cargo-vendor/libm-0.2.8/src/math/cosh.rs +38 -0
  208. data/ext/cargo-vendor/libm-0.2.8/src/math/coshf.rs +38 -0
  209. data/ext/cargo-vendor/libm-0.2.8/src/math/erf.rs +318 -0
  210. data/ext/cargo-vendor/libm-0.2.8/src/math/erff.rs +230 -0
  211. data/ext/cargo-vendor/libm-0.2.8/src/math/exp.rs +154 -0
  212. data/ext/cargo-vendor/libm-0.2.8/src/math/exp10.rs +22 -0
  213. data/ext/cargo-vendor/libm-0.2.8/src/math/exp10f.rs +22 -0
  214. data/ext/cargo-vendor/libm-0.2.8/src/math/exp2.rs +394 -0
  215. data/ext/cargo-vendor/libm-0.2.8/src/math/exp2f.rs +135 -0
  216. data/ext/cargo-vendor/libm-0.2.8/src/math/expf.rs +101 -0
  217. data/ext/cargo-vendor/libm-0.2.8/src/math/expm1.rs +144 -0
  218. data/ext/cargo-vendor/libm-0.2.8/src/math/expm1f.rs +134 -0
  219. data/ext/cargo-vendor/libm-0.2.8/src/math/expo2.rs +14 -0
  220. data/ext/cargo-vendor/libm-0.2.8/src/math/fabs.rs +41 -0
  221. data/ext/cargo-vendor/libm-0.2.8/src/math/fabsf.rs +41 -0
  222. data/ext/cargo-vendor/libm-0.2.8/src/math/fdim.rs +22 -0
  223. data/ext/cargo-vendor/libm-0.2.8/src/math/fdimf.rs +22 -0
  224. data/ext/cargo-vendor/libm-0.2.8/src/math/fenv.rs +27 -0
  225. data/ext/cargo-vendor/libm-0.2.8/src/math/floor.rs +81 -0
  226. data/ext/cargo-vendor/libm-0.2.8/src/math/floorf.rs +66 -0
  227. data/ext/cargo-vendor/libm-0.2.8/src/math/fma.rs +232 -0
  228. data/ext/cargo-vendor/libm-0.2.8/src/math/fmaf.rs +117 -0
  229. data/ext/cargo-vendor/libm-0.2.8/src/math/fmax.rs +12 -0
  230. data/ext/cargo-vendor/libm-0.2.8/src/math/fmaxf.rs +12 -0
  231. data/ext/cargo-vendor/libm-0.2.8/src/math/fmin.rs +12 -0
  232. data/ext/cargo-vendor/libm-0.2.8/src/math/fminf.rs +12 -0
  233. data/ext/cargo-vendor/libm-0.2.8/src/math/fmod.rs +80 -0
  234. data/ext/cargo-vendor/libm-0.2.8/src/math/fmodf.rs +89 -0
  235. data/ext/cargo-vendor/libm-0.2.8/src/math/frexp.rs +20 -0
  236. data/ext/cargo-vendor/libm-0.2.8/src/math/frexpf.rs +21 -0
  237. data/ext/cargo-vendor/libm-0.2.8/src/math/hypot.rs +74 -0
  238. data/ext/cargo-vendor/libm-0.2.8/src/math/hypotf.rs +43 -0
  239. data/ext/cargo-vendor/libm-0.2.8/src/math/ilogb.rs +32 -0
  240. data/ext/cargo-vendor/libm-0.2.8/src/math/ilogbf.rs +32 -0
  241. data/ext/cargo-vendor/libm-0.2.8/src/math/j0.rs +422 -0
  242. data/ext/cargo-vendor/libm-0.2.8/src/math/j0f.rs +359 -0
  243. data/ext/cargo-vendor/libm-0.2.8/src/math/j1.rs +414 -0
  244. data/ext/cargo-vendor/libm-0.2.8/src/math/j1f.rs +380 -0
  245. data/ext/cargo-vendor/libm-0.2.8/src/math/jn.rs +343 -0
  246. data/ext/cargo-vendor/libm-0.2.8/src/math/jnf.rs +259 -0
  247. data/ext/cargo-vendor/libm-0.2.8/src/math/k_cos.rs +62 -0
  248. data/ext/cargo-vendor/libm-0.2.8/src/math/k_cosf.rs +29 -0
  249. data/ext/cargo-vendor/libm-0.2.8/src/math/k_expo2.rs +14 -0
  250. data/ext/cargo-vendor/libm-0.2.8/src/math/k_expo2f.rs +14 -0
  251. data/ext/cargo-vendor/libm-0.2.8/src/math/k_sin.rs +57 -0
  252. data/ext/cargo-vendor/libm-0.2.8/src/math/k_sinf.rs +30 -0
  253. data/ext/cargo-vendor/libm-0.2.8/src/math/k_tan.rs +105 -0
  254. data/ext/cargo-vendor/libm-0.2.8/src/math/k_tanf.rs +46 -0
  255. data/ext/cargo-vendor/libm-0.2.8/src/math/ldexp.rs +4 -0
  256. data/ext/cargo-vendor/libm-0.2.8/src/math/ldexpf.rs +4 -0
  257. data/ext/cargo-vendor/libm-0.2.8/src/math/lgamma.rs +6 -0
  258. data/ext/cargo-vendor/libm-0.2.8/src/math/lgamma_r.rs +320 -0
  259. data/ext/cargo-vendor/libm-0.2.8/src/math/lgammaf.rs +6 -0
  260. data/ext/cargo-vendor/libm-0.2.8/src/math/lgammaf_r.rs +255 -0
  261. data/ext/cargo-vendor/libm-0.2.8/src/math/log.rs +117 -0
  262. data/ext/cargo-vendor/libm-0.2.8/src/math/log10.rs +117 -0
  263. data/ext/cargo-vendor/libm-0.2.8/src/math/log10f.rs +91 -0
  264. data/ext/cargo-vendor/libm-0.2.8/src/math/log1p.rs +143 -0
  265. data/ext/cargo-vendor/libm-0.2.8/src/math/log1pf.rs +98 -0
  266. data/ext/cargo-vendor/libm-0.2.8/src/math/log2.rs +106 -0
  267. data/ext/cargo-vendor/libm-0.2.8/src/math/log2f.rs +87 -0
  268. data/ext/cargo-vendor/libm-0.2.8/src/math/logf.rs +65 -0
  269. data/ext/cargo-vendor/libm-0.2.8/src/math/mod.rs +370 -0
  270. data/ext/cargo-vendor/libm-0.2.8/src/math/modf.rs +34 -0
  271. data/ext/cargo-vendor/libm-0.2.8/src/math/modff.rs +33 -0
  272. data/ext/cargo-vendor/libm-0.2.8/src/math/nextafter.rs +37 -0
  273. data/ext/cargo-vendor/libm-0.2.8/src/math/nextafterf.rs +37 -0
  274. data/ext/cargo-vendor/libm-0.2.8/src/math/pow.rs +637 -0
  275. data/ext/cargo-vendor/libm-0.2.8/src/math/powf.rs +342 -0
  276. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2.rs +233 -0
  277. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2_large.rs +470 -0
  278. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2f.rs +67 -0
  279. data/ext/cargo-vendor/libm-0.2.8/src/math/remainder.rs +5 -0
  280. data/ext/cargo-vendor/libm-0.2.8/src/math/remainderf.rs +5 -0
  281. data/ext/cargo-vendor/libm-0.2.8/src/math/remquo.rs +110 -0
  282. data/ext/cargo-vendor/libm-0.2.8/src/math/remquof.rs +97 -0
  283. data/ext/cargo-vendor/libm-0.2.8/src/math/rint.rs +58 -0
  284. data/ext/cargo-vendor/libm-0.2.8/src/math/rintf.rs +58 -0
  285. data/ext/cargo-vendor/libm-0.2.8/src/math/round.rs +28 -0
  286. data/ext/cargo-vendor/libm-0.2.8/src/math/roundf.rs +30 -0
  287. data/ext/cargo-vendor/libm-0.2.8/src/math/scalbn.rs +33 -0
  288. data/ext/cargo-vendor/libm-0.2.8/src/math/scalbnf.rs +29 -0
  289. data/ext/cargo-vendor/libm-0.2.8/src/math/sin.rs +88 -0
  290. data/ext/cargo-vendor/libm-0.2.8/src/math/sincos.rs +134 -0
  291. data/ext/cargo-vendor/libm-0.2.8/src/math/sincosf.rs +185 -0
  292. data/ext/cargo-vendor/libm-0.2.8/src/math/sinf.rs +93 -0
  293. data/ext/cargo-vendor/libm-0.2.8/src/math/sinh.rs +49 -0
  294. data/ext/cargo-vendor/libm-0.2.8/src/math/sinhf.rs +30 -0
  295. data/ext/cargo-vendor/libm-0.2.8/src/math/sqrt.rs +280 -0
  296. data/ext/cargo-vendor/libm-0.2.8/src/math/sqrtf.rs +170 -0
  297. data/ext/cargo-vendor/libm-0.2.8/src/math/tan.rs +70 -0
  298. data/ext/cargo-vendor/libm-0.2.8/src/math/tanf.rs +78 -0
  299. data/ext/cargo-vendor/libm-0.2.8/src/math/tanh.rs +53 -0
  300. data/ext/cargo-vendor/libm-0.2.8/src/math/tanhf.rs +39 -0
  301. data/ext/cargo-vendor/libm-0.2.8/src/math/tgamma.rs +208 -0
  302. data/ext/cargo-vendor/libm-0.2.8/src/math/tgammaf.rs +6 -0
  303. data/ext/cargo-vendor/libm-0.2.8/src/math/trunc.rs +40 -0
  304. data/ext/cargo-vendor/libm-0.2.8/src/math/truncf.rs +42 -0
  305. data/ext/cargo-vendor/object-0.36.3/.cargo-checksum.json +1 -0
  306. data/ext/cargo-vendor/object-0.36.3/CHANGELOG.md +1028 -0
  307. data/ext/cargo-vendor/object-0.36.3/Cargo.toml +180 -0
  308. data/ext/cargo-vendor/object-0.36.3/LICENSE-APACHE +201 -0
  309. data/ext/cargo-vendor/object-0.36.3/README.md +60 -0
  310. data/ext/cargo-vendor/object-0.36.3/src/build/bytes.rs +146 -0
  311. data/ext/cargo-vendor/object-0.36.3/src/build/elf.rs +3113 -0
  312. data/ext/cargo-vendor/object-0.36.3/src/common.rs +590 -0
  313. data/ext/cargo-vendor/object-0.36.3/src/elf.rs +6303 -0
  314. data/ext/cargo-vendor/object-0.36.3/src/endian.rs +831 -0
  315. data/ext/cargo-vendor/object-0.36.3/src/macho.rs +3303 -0
  316. data/ext/cargo-vendor/object-0.36.3/src/pod.rs +281 -0
  317. data/ext/cargo-vendor/object-0.36.3/src/read/any.rs +1334 -0
  318. data/ext/cargo-vendor/object-0.36.3/src/read/archive.rs +1133 -0
  319. data/ext/cargo-vendor/object-0.36.3/src/read/coff/comdat.rs +220 -0
  320. data/ext/cargo-vendor/object-0.36.3/src/read/coff/file.rs +381 -0
  321. data/ext/cargo-vendor/object-0.36.3/src/read/coff/relocation.rs +113 -0
  322. data/ext/cargo-vendor/object-0.36.3/src/read/coff/section.rs +619 -0
  323. data/ext/cargo-vendor/object-0.36.3/src/read/coff/symbol.rs +669 -0
  324. data/ext/cargo-vendor/object-0.36.3/src/read/elf/attributes.rs +340 -0
  325. data/ext/cargo-vendor/object-0.36.3/src/read/elf/comdat.rs +186 -0
  326. data/ext/cargo-vendor/object-0.36.3/src/read/elf/file.rs +959 -0
  327. data/ext/cargo-vendor/object-0.36.3/src/read/elf/hash.rs +236 -0
  328. data/ext/cargo-vendor/object-0.36.3/src/read/elf/note.rs +302 -0
  329. data/ext/cargo-vendor/object-0.36.3/src/read/elf/relocation.rs +661 -0
  330. data/ext/cargo-vendor/object-0.36.3/src/read/elf/section.rs +1241 -0
  331. data/ext/cargo-vendor/object-0.36.3/src/read/elf/segment.rs +365 -0
  332. data/ext/cargo-vendor/object-0.36.3/src/read/elf/symbol.rs +654 -0
  333. data/ext/cargo-vendor/object-0.36.3/src/read/elf/version.rs +513 -0
  334. data/ext/cargo-vendor/object-0.36.3/src/read/gnu_compression.rs +36 -0
  335. data/ext/cargo-vendor/object-0.36.3/src/read/macho/dyld_cache.rs +384 -0
  336. data/ext/cargo-vendor/object-0.36.3/src/read/macho/file.rs +779 -0
  337. data/ext/cargo-vendor/object-0.36.3/src/read/macho/load_command.rs +404 -0
  338. data/ext/cargo-vendor/object-0.36.3/src/read/macho/section.rs +420 -0
  339. data/ext/cargo-vendor/object-0.36.3/src/read/macho/segment.rs +317 -0
  340. data/ext/cargo-vendor/object-0.36.3/src/read/macho/symbol.rs +532 -0
  341. data/ext/cargo-vendor/object-0.36.3/src/read/mod.rs +1018 -0
  342. data/ext/cargo-vendor/object-0.36.3/src/read/pe/file.rs +1033 -0
  343. data/ext/cargo-vendor/object-0.36.3/src/read/pe/import.rs +381 -0
  344. data/ext/cargo-vendor/object-0.36.3/src/read/pe/relocation.rs +109 -0
  345. data/ext/cargo-vendor/object-0.36.3/src/read/pe/section.rs +476 -0
  346. data/ext/cargo-vendor/object-0.36.3/src/read/read_cache.rs +261 -0
  347. data/ext/cargo-vendor/object-0.36.3/src/read/traits.rs +589 -0
  348. data/ext/cargo-vendor/object-0.36.3/src/read/wasm.rs +983 -0
  349. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/file.rs +716 -0
  350. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/relocation.rs +138 -0
  351. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/section.rs +452 -0
  352. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/symbol.rs +836 -0
  353. data/ext/cargo-vendor/object-0.36.3/src/write/coff/object.rs +681 -0
  354. data/ext/cargo-vendor/object-0.36.3/src/write/coff/writer.rs +520 -0
  355. data/ext/cargo-vendor/object-0.36.3/src/write/elf/object.rs +897 -0
  356. data/ext/cargo-vendor/object-0.36.3/src/write/elf/writer.rs +2361 -0
  357. data/ext/cargo-vendor/object-0.36.3/src/write/macho.rs +1124 -0
  358. data/ext/cargo-vendor/object-0.36.3/src/write/mod.rs +1023 -0
  359. data/ext/cargo-vendor/object-0.36.3/src/write/pe.rs +849 -0
  360. data/ext/cargo-vendor/object-0.36.3/src/write/xcoff.rs +588 -0
  361. data/ext/cargo-vendor/object-0.36.3/tests/build/elf.rs +254 -0
  362. data/ext/cargo-vendor/object-0.36.3/tests/build/mod.rs +3 -0
  363. data/ext/cargo-vendor/object-0.36.3/tests/integration.rs +3 -0
  364. data/ext/cargo-vendor/object-0.36.3/tests/read/macho.rs +49 -0
  365. data/ext/cargo-vendor/object-0.36.3/tests/read/mod.rs +5 -0
  366. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/bss.rs +244 -0
  367. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/comdat.rs +217 -0
  368. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/common.rs +241 -0
  369. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/elf.rs +302 -0
  370. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/mod.rs +682 -0
  371. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/section_flags.rs +89 -0
  372. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/tls.rs +308 -0
  373. data/ext/cargo-vendor/postcard-1.0.8/.cargo-checksum.json +1 -0
  374. data/ext/cargo-vendor/postcard-1.0.8/CHANGELOG.md +141 -0
  375. data/ext/cargo-vendor/postcard-1.0.8/Cargo.toml +100 -0
  376. data/ext/cargo-vendor/postcard-1.0.8/LICENSE-APACHE +201 -0
  377. data/ext/cargo-vendor/postcard-1.0.8/LICENSE-MIT +25 -0
  378. data/ext/cargo-vendor/postcard-1.0.8/README.md +146 -0
  379. data/ext/cargo-vendor/postcard-1.0.8/spec/LICENSE-CC-BY-SA +427 -0
  380. data/ext/cargo-vendor/postcard-1.0.8/spec/book.toml +6 -0
  381. data/ext/cargo-vendor/postcard-1.0.8/spec/src/SUMMARY.md +6 -0
  382. data/ext/cargo-vendor/postcard-1.0.8/spec/src/glossary.md +17 -0
  383. data/ext/cargo-vendor/postcard-1.0.8/spec/src/intro.md +12 -0
  384. data/ext/cargo-vendor/postcard-1.0.8/spec/src/serde-data-model.md +190 -0
  385. data/ext/cargo-vendor/postcard-1.0.8/spec/src/wire-format.md +327 -0
  386. data/ext/cargo-vendor/postcard-1.0.8/src/accumulator.rs +367 -0
  387. data/ext/cargo-vendor/postcard-1.0.8/src/de/deserializer.rs +599 -0
  388. data/ext/cargo-vendor/postcard-1.0.8/src/de/flavors.rs +468 -0
  389. data/ext/cargo-vendor/postcard-1.0.8/src/de/mod.rs +568 -0
  390. data/ext/cargo-vendor/postcard-1.0.8/src/error.rs +95 -0
  391. data/ext/cargo-vendor/postcard-1.0.8/src/fixint.rs +189 -0
  392. data/ext/cargo-vendor/postcard-1.0.8/src/lib.rs +143 -0
  393. data/ext/cargo-vendor/postcard-1.0.8/src/max_size.rs +233 -0
  394. data/ext/cargo-vendor/postcard-1.0.8/src/schema.rs +282 -0
  395. data/ext/cargo-vendor/postcard-1.0.8/src/ser/flavors.rs +722 -0
  396. data/ext/cargo-vendor/postcard-1.0.8/src/ser/mod.rs +866 -0
  397. data/ext/cargo-vendor/postcard-1.0.8/src/ser/serializer.rs +564 -0
  398. data/ext/cargo-vendor/postcard-1.0.8/src/varint.rs +103 -0
  399. data/ext/cargo-vendor/postcard-1.0.8/tests/accumulator.rs +57 -0
  400. data/ext/cargo-vendor/postcard-1.0.8/tests/crc.rs +60 -0
  401. data/ext/cargo-vendor/postcard-1.0.8/tests/loopback.rs +248 -0
  402. data/ext/cargo-vendor/postcard-1.0.8/tests/max_size.rs +101 -0
  403. data/ext/cargo-vendor/postcard-1.0.8/tests/schema.rs +107 -0
  404. data/ext/cargo-vendor/rb-sys-0.9.100/.cargo-checksum.json +1 -0
  405. data/ext/cargo-vendor/rb-sys-0.9.100/Cargo.toml +58 -0
  406. data/ext/cargo-vendor/rb-sys-0.9.100/build/main.rs +267 -0
  407. data/ext/cargo-vendor/rb-sys-0.9.100/build/stable_api_config.rs +139 -0
  408. data/ext/cargo-vendor/rb-sys-0.9.100/src/bindings.rs +21 -0
  409. data/ext/cargo-vendor/rb-sys-0.9.100/src/tracking_allocator.rs +266 -0
  410. data/ext/cargo-vendor/rb-sys-build-0.9.100/.cargo-checksum.json +1 -0
  411. data/ext/cargo-vendor/rb-sys-build-0.9.100/Cargo.toml +62 -0
  412. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/bindings/stable_api.rs +203 -0
  413. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/bindings.rs +254 -0
  414. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/cc.rs +374 -0
  415. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/utils.rs +52 -0
  416. data/ext/cargo-vendor/wasi-common-22.0.0/.cargo-checksum.json +1 -0
  417. data/ext/cargo-vendor/wasi-common-22.0.0/Cargo.toml +224 -0
  418. data/ext/cargo-vendor/wasi-common-22.0.0/src/snapshots/preview_0.rs +1080 -0
  419. data/ext/cargo-vendor/wasi-common-22.0.0/src/snapshots/preview_1.rs +1562 -0
  420. data/ext/cargo-vendor/wasi-common-22.0.0/src/string_array.rs +75 -0
  421. data/ext/cargo-vendor/wasi-common-22.0.0/src/sync/sched/windows.rs +221 -0
  422. data/ext/cargo-vendor/wasi-common-22.0.0/src/tokio/file.rs +247 -0
  423. data/ext/cargo-vendor/wasi-common-22.0.0/tests/all/async_.rs +293 -0
  424. data/ext/cargo-vendor/wasi-common-22.0.0/tests/all/main.rs +21 -0
  425. data/ext/cargo-vendor/wasi-common-22.0.0/tests/all/sync.rs +279 -0
  426. data/ext/cargo-vendor/wasmparser-0.209.1/.cargo-checksum.json +1 -0
  427. data/ext/cargo-vendor/wasmparser-0.209.1/Cargo.lock +662 -0
  428. data/ext/cargo-vendor/wasmparser-0.209.1/Cargo.toml +109 -0
  429. data/ext/cargo-vendor/wasmparser-0.209.1/src/binary_reader.rs +1929 -0
  430. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/hash.rs +120 -0
  431. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map/detail.rs +1094 -0
  432. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map/tests.rs +183 -0
  433. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map.rs +656 -0
  434. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_set.rs +316 -0
  435. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/map.rs +840 -0
  436. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/mod.rs +24 -0
  437. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/set.rs +660 -0
  438. data/ext/cargo-vendor/wasmparser-0.209.1/src/features.rs +164 -0
  439. data/ext/cargo-vendor/wasmparser-0.209.1/src/lib.rs +814 -0
  440. data/ext/cargo-vendor/wasmparser-0.209.1/src/limits.rs +79 -0
  441. data/ext/cargo-vendor/wasmparser-0.209.1/src/parser.rs +1682 -0
  442. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/canonicals.rs +121 -0
  443. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/imports.rs +130 -0
  444. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/instances.rs +166 -0
  445. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/names.rs +99 -0
  446. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/start.rs +31 -0
  447. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/types.rs +553 -0
  448. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/branch_hinting.rs +59 -0
  449. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/code.rs +142 -0
  450. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/coredumps.rs +278 -0
  451. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/custom.rs +128 -0
  452. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/data.rs +96 -0
  453. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/dylink0.rs +110 -0
  454. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/elements.rs +146 -0
  455. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/globals.rs +61 -0
  456. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/init.rs +57 -0
  457. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/linking.rs +457 -0
  458. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/memories.rs +57 -0
  459. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/names.rs +159 -0
  460. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/operators.rs +423 -0
  461. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/producers.rs +84 -0
  462. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/reloc.rs +300 -0
  463. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/tables.rs +93 -0
  464. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/types/matches.rs +277 -0
  465. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/types.rs +1788 -0
  466. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core.rs +43 -0
  467. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers.rs +315 -0
  468. data/ext/cargo-vendor/wasmparser-0.209.1/src/resources.rs +235 -0
  469. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/component.rs +3236 -0
  470. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/core/canonical.rs +233 -0
  471. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/core.rs +1464 -0
  472. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/func.rs +331 -0
  473. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/names.rs +1016 -0
  474. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/operators.rs +4231 -0
  475. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/types.rs +4550 -0
  476. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator.rs +1633 -0
  477. data/ext/cargo-vendor/wasmprinter-0.209.1/.cargo-checksum.json +1 -0
  478. data/ext/cargo-vendor/wasmprinter-0.209.1/Cargo.toml +51 -0
  479. data/ext/cargo-vendor/wasmprinter-0.209.1/src/lib.rs +3225 -0
  480. data/ext/cargo-vendor/wasmprinter-0.209.1/src/operator.rs +1171 -0
  481. data/ext/cargo-vendor/wasmprinter-0.209.1/tests/all.rs +293 -0
  482. data/ext/cargo-vendor/wasmtime-22.0.0/.cargo-checksum.json +1 -0
  483. data/ext/cargo-vendor/wasmtime-22.0.0/Cargo.toml +387 -0
  484. data/ext/cargo-vendor/wasmtime-22.0.0/build.rs +42 -0
  485. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile/code_builder.rs +275 -0
  486. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile/runtime.rs +167 -0
  487. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile.rs +917 -0
  488. data/ext/cargo-vendor/wasmtime-22.0.0/src/config.rs +2943 -0
  489. data/ext/cargo-vendor/wasmtime-22.0.0/src/engine/serialization.rs +890 -0
  490. data/ext/cargo-vendor/wasmtime-22.0.0/src/engine.rs +728 -0
  491. data/ext/cargo-vendor/wasmtime-22.0.0/src/lib.rs +389 -0
  492. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/jitdump.rs +67 -0
  493. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/perfmap.rs +48 -0
  494. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/vtune.rs +81 -0
  495. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent.rs +106 -0
  496. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/code.rs +102 -0
  497. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/code_memory.rs +338 -0
  498. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_0_hello_world.rs +9 -0
  499. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_1_world_imports.rs +17 -0
  500. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_2_world_exports.rs +18 -0
  501. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_3_interface_imports.rs +20 -0
  502. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_4_imported_resources.rs +45 -0
  503. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_5_all_world_export_kinds.rs +29 -0
  504. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_6_exported_resources.rs +26 -0
  505. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/mod.rs +489 -0
  506. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/component.rs +656 -0
  507. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/host.rs +440 -0
  508. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/options.rs +555 -0
  509. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/typed.rs +2498 -0
  510. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func.rs +689 -0
  511. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/instance.rs +810 -0
  512. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/linker.rs +854 -0
  513. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/matching.rs +217 -0
  514. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/mod.rs +657 -0
  515. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/resource_table.rs +355 -0
  516. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/resources.rs +1133 -0
  517. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/storage.rs +43 -0
  518. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/store.rs +29 -0
  519. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/types.rs +897 -0
  520. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/values.rs +980 -0
  521. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/coredump.rs +342 -0
  522. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/debug.rs +166 -0
  523. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals/global.rs +310 -0
  524. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals/table.rs +481 -0
  525. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals.rs +236 -0
  526. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/func/typed.rs +780 -0
  527. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/func.rs +2564 -0
  528. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/disabled/anyref.rs +46 -0
  529. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/disabled/externref.rs +50 -0
  530. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/disabled/rooting.rs +224 -0
  531. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/anyref.rs +410 -0
  532. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/externref.rs +592 -0
  533. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/i31.rs +299 -0
  534. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/rooting.rs +1588 -0
  535. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/noextern.rs +154 -0
  536. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc.rs +92 -0
  537. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/instance.rs +992 -0
  538. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/instantiate.rs +337 -0
  539. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/limits.rs +399 -0
  540. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/linker.rs +1499 -0
  541. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/memory.rs +998 -0
  542. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/module/registry.rs +353 -0
  543. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/module.rs +1322 -0
  544. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/profiling.rs +221 -0
  545. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/resources.rs +33 -0
  546. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/signatures.rs +216 -0
  547. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/stack.rs +73 -0
  548. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store/context.rs +243 -0
  549. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store/data.rs +301 -0
  550. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store/func_refs.rs +90 -0
  551. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store.rs +2824 -0
  552. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/func.rs +94 -0
  553. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/global.rs +68 -0
  554. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/memory.rs +287 -0
  555. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/table.rs +29 -0
  556. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline.rs +78 -0
  557. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trap.rs +642 -0
  558. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/type_registry.rs +1015 -0
  559. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/types/matching.rs +421 -0
  560. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/types.rs +2580 -0
  561. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/unix.rs +40 -0
  562. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/v128.rs +116 -0
  563. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/values.rs +966 -0
  564. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/arch/aarch64.rs +76 -0
  565. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/arch/x86_64.rs +41 -0
  566. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/async_yield.rs +35 -0
  567. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component/libcalls.rs +571 -0
  568. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component/resources.rs +352 -0
  569. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component.rs +857 -0
  570. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/const_expr.rs +102 -0
  571. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/cow.rs +972 -0
  572. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/debug_builtins.rs +59 -0
  573. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/export.rs +108 -0
  574. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/disabled.rs +24 -0
  575. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled/drc.rs +968 -0
  576. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled/externref.rs +116 -0
  577. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled/free_list.rs +771 -0
  578. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/enabled.rs +18 -0
  579. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/gc_ref.rs +491 -0
  580. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/gc_runtime.rs +506 -0
  581. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/host_data.rs +82 -0
  582. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/i31.rs +87 -0
  583. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc.rs +245 -0
  584. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/imports.rs +29 -0
  585. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/on_demand.rs +220 -0
  586. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +194 -0
  587. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +94 -0
  588. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +78 -0
  589. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +707 -0
  590. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +975 -0
  591. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/table_pool.rs +245 -0
  592. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +278 -0
  593. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling.rs +794 -0
  594. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator.rs +801 -0
  595. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance.rs +1514 -0
  596. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/libcalls.rs +834 -0
  597. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/memory.rs +736 -0
  598. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mmap.rs +220 -0
  599. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mmap_vec.rs +162 -0
  600. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/module_id.rs +43 -0
  601. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/enabled.rs +214 -0
  602. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/mod.rs +54 -0
  603. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/pkru.rs +104 -0
  604. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/mpk/sys.rs +114 -0
  605. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/send_sync_ptr.rs +106 -0
  606. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/store_box.rs +37 -0
  607. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/capi.rs +200 -0
  608. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/mmap.rs +112 -0
  609. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/mod.rs +34 -0
  610. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/traphandlers.rs +55 -0
  611. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/vm.rs +105 -0
  612. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/mmap.rs +95 -0
  613. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/mod.rs +24 -0
  614. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/traphandlers.rs +47 -0
  615. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/vm.rs +59 -0
  616. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/mod.rs +36 -0
  617. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/machports.rs +416 -0
  618. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/mmap.rs +162 -0
  619. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/mod.rs +35 -0
  620. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/signals.rs +407 -0
  621. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/unwind.rs +150 -0
  622. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/vm.rs +190 -0
  623. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/mmap.rs +221 -0
  624. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/mod.rs +20 -0
  625. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/traphandlers.rs +104 -0
  626. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/vm.rs +75 -0
  627. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/table.rs +899 -0
  628. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/threads/parking_spot.rs +623 -0
  629. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/threads/shared_memory.rs +233 -0
  630. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/threads/shared_memory_disabled.rs +101 -0
  631. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers/backtrace.rs +267 -0
  632. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers/coredump_disabled.rs +16 -0
  633. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers/coredump_enabled.rs +42 -0
  634. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers.rs +768 -0
  635. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/vmcontext/vm_host_func_context.rs +79 -0
  636. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/vmcontext.rs +1302 -0
  637. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm.rs +277 -0
  638. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/windows.rs +35 -0
  639. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime.rs +113 -0
  640. data/ext/cargo-vendor/wasmtime-22.0.0/src/sync_nostd.rs +255 -0
  641. data/ext/cargo-vendor/wasmtime-22.0.0/src/sync_std.rs +52 -0
  642. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/.cargo-checksum.json +1 -0
  643. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/Cargo.toml +22 -0
  644. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/src/lib.rs +83 -0
  645. data/ext/cargo-vendor/wasmtime-cache-22.0.0/.cargo-checksum.json +1 -0
  646. data/ext/cargo-vendor/wasmtime-cache-22.0.0/Cargo.toml +89 -0
  647. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/config.rs +584 -0
  648. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/lib.rs +235 -0
  649. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/tests.rs +91 -0
  650. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/worker/tests.rs +758 -0
  651. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/worker.rs +890 -0
  652. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/.cargo-checksum.json +1 -0
  653. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/Cargo.toml +86 -0
  654. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/src/bindgen.rs +493 -0
  655. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/src/component.rs +1330 -0
  656. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/codegen.rs +651 -0
  657. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/codegen_no_std.rs +16 -0
  658. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/char.rs +198 -0
  659. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/char_async.rs +215 -0
  660. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/conventions.rs +586 -0
  661. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/conventions_async.rs +631 -0
  662. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/dead-code.rs +165 -0
  663. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/dead-code_async.rs +178 -0
  664. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/direct-import.rs +91 -0
  665. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/direct-import_async.rs +97 -0
  666. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/empty.rs +45 -0
  667. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/empty_async.rs +45 -0
  668. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/flags.rs +637 -0
  669. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/flags_async.rs +679 -0
  670. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/floats.rs +255 -0
  671. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/floats_async.rs +282 -0
  672. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/function-new.rs +59 -0
  673. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/function-new_async.rs +62 -0
  674. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/integers.rs +722 -0
  675. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/integers_async.rs +819 -0
  676. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/lists.rs +1743 -0
  677. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/lists_async.rs +1927 -0
  678. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/many-arguments.rs +543 -0
  679. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/many-arguments_async.rs +561 -0
  680. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multi-return.rs +270 -0
  681. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multi-return_async.rs +298 -0
  682. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multiversion.rs +251 -0
  683. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multiversion_async.rs +270 -0
  684. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/records.rs +815 -0
  685. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/records_async.rs +877 -0
  686. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/rename.rs +154 -0
  687. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/rename_async.rs +167 -0
  688. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-export.rs +467 -0
  689. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-export_async.rs +516 -0
  690. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-import.rs +1014 -0
  691. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-import_async.rs +1086 -0
  692. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/share-types.rs +249 -0
  693. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/share-types_async.rs +265 -0
  694. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-functions.rs +313 -0
  695. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-functions_async.rs +347 -0
  696. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-lists.rs +350 -0
  697. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-lists_async.rs +381 -0
  698. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-wasi.rs +216 -0
  699. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-wasi_async.rs +229 -0
  700. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/small-anonymous.rs +275 -0
  701. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/small-anonymous_async.rs +287 -0
  702. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-default.rs +59 -0
  703. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-default_async.rs +62 -0
  704. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-export.rs +86 -0
  705. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-export_async.rs +89 -0
  706. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke.rs +104 -0
  707. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke_async.rs +111 -0
  708. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/strings.rs +247 -0
  709. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/strings_async.rs +269 -0
  710. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/unversioned-foo.rs +136 -0
  711. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/unversioned-foo_async.rs +143 -0
  712. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/use-paths.rs +288 -0
  713. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/use-paths_async.rs +314 -0
  714. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/variants.rs +1750 -0
  715. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/variants_async.rs +1867 -0
  716. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/wat.rs +84 -0
  717. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/wat_async.rs +84 -0
  718. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/worlds-with-types.rs +138 -0
  719. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/worlds-with-types_async.rs +148 -0
  720. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded.rs +65 -0
  721. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/.cargo-checksum.json +1 -0
  722. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/Cargo.toml +25 -0
  723. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/src/lib.rs +182 -0
  724. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/.cargo-checksum.json +1 -0
  725. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/Cargo.toml +115 -0
  726. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/compiler/component.rs +957 -0
  727. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/compiler.rs +1067 -0
  728. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/gc.rs +252 -0
  729. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/address_transform.rs +783 -0
  730. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/attr.rs +320 -0
  731. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/expression.rs +1248 -0
  732. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/line_program.rs +287 -0
  733. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/mod.rs +256 -0
  734. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/simulate.rs +411 -0
  735. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/unit.rs +529 -0
  736. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/utils.rs +186 -0
  737. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/write_debuginfo.rs +196 -0
  738. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug.rs +18 -0
  739. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/func_environ.rs +2910 -0
  740. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/gc/enabled.rs +648 -0
  741. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/gc.rs +198 -0
  742. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/lib.rs +462 -0
  743. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/obj.rs +545 -0
  744. data/ext/cargo-vendor/wasmtime-environ-22.0.0/.cargo-checksum.json +1 -0
  745. data/ext/cargo-vendor/wasmtime-environ-22.0.0/Cargo.lock +774 -0
  746. data/ext/cargo-vendor/wasmtime-environ-22.0.0/Cargo.toml +161 -0
  747. data/ext/cargo-vendor/wasmtime-environ-22.0.0/examples/factc.rs +198 -0
  748. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/address_map.rs +73 -0
  749. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/mod.rs +374 -0
  750. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_artifacts.rs +315 -0
  751. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_environ.rs +1348 -0
  752. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_types.rs +455 -0
  753. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/trap_encoding.rs +70 -0
  754. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/artifacts.rs +68 -0
  755. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/compiler.rs +20 -0
  756. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/dfg.rs +691 -0
  757. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/info.rs +672 -0
  758. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/translate/adapt.rs +455 -0
  759. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/translate.rs +985 -0
  760. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types.rs +1038 -0
  761. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types_builder/resources.rs +233 -0
  762. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types_builder.rs +1004 -0
  763. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component.rs +107 -0
  764. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/demangling.rs +28 -0
  765. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/core_types.rs +25 -0
  766. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/signature.rs +119 -0
  767. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/trampoline.rs +3234 -0
  768. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/transcode.rs +90 -0
  769. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/traps.rs +116 -0
  770. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact.rs +714 -0
  771. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/lib.rs +151 -0
  772. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module.rs +704 -0
  773. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module_artifacts.rs +144 -0
  774. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module_types.rs +139 -0
  775. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/ref_bits.rs +36 -0
  776. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/scopevec.rs +80 -0
  777. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/stack_map.rs +37 -0
  778. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/trap_encoding.rs +189 -0
  779. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/tunables.rs +175 -0
  780. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/vmoffsets.rs +989 -0
  781. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/.cargo-checksum.json +1 -0
  782. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/Cargo.toml +65 -0
  783. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/build.rs +39 -0
  784. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/lib.rs +340 -0
  785. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/unix.rs +494 -0
  786. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/windows.rs +170 -0
  787. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/.cargo-checksum.json +1 -0
  788. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/Cargo.toml +68 -0
  789. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/src/gdb_jit_int.rs +130 -0
  790. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/src/perf_jitdump.rs +293 -0
  791. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/.cargo-checksum.json +1 -0
  792. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/Cargo.toml +52 -0
  793. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/lib.rs +109 -0
  794. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/libc.rs +164 -0
  795. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/miri.rs +10 -0
  796. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/win.rs +49 -0
  797. data/ext/cargo-vendor/wasmtime-slab-22.0.0/.cargo-checksum.json +1 -0
  798. data/ext/cargo-vendor/wasmtime-slab-22.0.0/Cargo.toml +21 -0
  799. data/ext/cargo-vendor/wasmtime-slab-22.0.0/src/lib.rs +498 -0
  800. data/ext/cargo-vendor/wasmtime-types-22.0.0/.cargo-checksum.json +1 -0
  801. data/ext/cargo-vendor/wasmtime-types-22.0.0/Cargo.toml +56 -0
  802. data/ext/cargo-vendor/wasmtime-types-22.0.0/src/error.rs +81 -0
  803. data/ext/cargo-vendor/wasmtime-types-22.0.0/src/lib.rs +1737 -0
  804. data/ext/cargo-vendor/wasmtime-versioned-export-macros-22.0.0/.cargo-checksum.json +1 -0
  805. data/ext/cargo-vendor/wasmtime-versioned-export-macros-22.0.0/Cargo.toml +32 -0
  806. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/.cargo-checksum.json +1 -0
  807. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/Cargo.toml +201 -0
  808. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/bindings.rs +289 -0
  809. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/ctx.rs +704 -0
  810. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/filesystem.rs +446 -0
  811. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/clocks.rs +109 -0
  812. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/env.rs +18 -0
  813. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/exit.rs +14 -0
  814. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/filesystem/sync.rs +525 -0
  815. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/filesystem.rs +1091 -0
  816. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/instance_network.rs +18 -0
  817. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/io.rs +388 -0
  818. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/network.rs +545 -0
  819. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/random.rs +45 -0
  820. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/tcp.rs +547 -0
  821. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/tcp_create_socket.rs +18 -0
  822. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/udp.rs +762 -0
  823. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/udp_create_socket.rs +18 -0
  824. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/ip_name_lookup.rs +132 -0
  825. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/lib.rs +417 -0
  826. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/network.rs +113 -0
  827. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/pipe.rs +826 -0
  828. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/poll.rs +245 -0
  829. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/preview0.rs +983 -0
  830. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/preview1.rs +2801 -0
  831. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/stdio.rs +533 -0
  832. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/api.rs +198 -0
  833. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/async_.rs +397 -0
  834. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/main.rs +91 -0
  835. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/preview1.rs +251 -0
  836. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/tests/all/sync.rs +331 -0
  837. data/ext/cargo-vendor/wasmtime-winch-22.0.0/.cargo-checksum.json +1 -0
  838. data/ext/cargo-vendor/wasmtime-winch-22.0.0/Cargo.toml +82 -0
  839. data/ext/cargo-vendor/wasmtime-winch-22.0.0/src/compiler.rs +239 -0
  840. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/.cargo-checksum.json +1 -0
  841. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/Cargo.toml +47 -0
  842. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/lib.rs +2639 -0
  843. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/rust.rs +427 -0
  844. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/types.rs +202 -0
  845. data/ext/cargo-vendor/wiggle-22.0.0/.cargo-checksum.json +1 -0
  846. data/ext/cargo-vendor/wiggle-22.0.0/Cargo.toml +124 -0
  847. data/ext/cargo-vendor/wiggle-22.0.0/src/guest_type.rs +200 -0
  848. data/ext/cargo-vendor/wiggle-22.0.0/src/lib.rs +605 -0
  849. data/ext/cargo-vendor/wiggle-generate-22.0.0/.cargo-checksum.json +1 -0
  850. data/ext/cargo-vendor/wiggle-generate-22.0.0/Cargo.toml +67 -0
  851. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/funcs.rs +434 -0
  852. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/module_trait.rs +89 -0
  853. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/names.rs +299 -0
  854. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/flags.rs +92 -0
  855. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/handle.rs +84 -0
  856. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/mod.rs +129 -0
  857. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/record.rs +129 -0
  858. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/variant.rs +186 -0
  859. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/wasmtime.rs +172 -0
  860. data/ext/cargo-vendor/wiggle-macro-22.0.0/.cargo-checksum.json +1 -0
  861. data/ext/cargo-vendor/wiggle-macro-22.0.0/Cargo.toml +51 -0
  862. data/ext/cargo-vendor/wiggle-macro-22.0.0/build.rs +5 -0
  863. data/ext/cargo-vendor/wiggle-macro-22.0.0/src/lib.rs +233 -0
  864. data/ext/cargo-vendor/winch-codegen-0.20.0/.cargo-checksum.json +1 -0
  865. data/ext/cargo-vendor/winch-codegen-0.20.0/Cargo.toml +77 -0
  866. data/ext/cargo-vendor/winch-codegen-0.20.0/src/abi/mod.rs +671 -0
  867. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/context.rs +536 -0
  868. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/control.rs +972 -0
  869. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/env.rs +448 -0
  870. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/mod.rs +882 -0
  871. data/ext/cargo-vendor/winch-codegen-0.20.0/src/frame/mod.rs +258 -0
  872. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/abi.rs +291 -0
  873. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/address.rs +143 -0
  874. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/asm.rs +430 -0
  875. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/masm.rs +572 -0
  876. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/mod.rs +158 -0
  877. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/regs.rs +161 -0
  878. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/reg.rs +73 -0
  879. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/x64/asm.rs +1423 -0
  880. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/x64/masm.rs +1120 -0
  881. data/ext/cargo-vendor/winch-codegen-0.20.0/src/masm.rs +941 -0
  882. data/ext/cargo-vendor/winch-codegen-0.20.0/src/regalloc.rs +65 -0
  883. data/ext/cargo-vendor/winch-codegen-0.20.0/src/regset.rs +194 -0
  884. data/ext/cargo-vendor/winch-codegen-0.20.0/src/stack.rs +439 -0
  885. data/ext/cargo-vendor/winch-codegen-0.20.0/src/visitor.rs +2149 -0
  886. data/ext/cargo-vendor/wit-parser-0.209.1/.cargo-checksum.json +1 -0
  887. data/ext/cargo-vendor/wit-parser-0.209.1/Cargo.toml +112 -0
  888. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast/resolve.rs +1524 -0
  889. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast.rs +1668 -0
  890. data/ext/cargo-vendor/wit-parser-0.209.1/src/decoding.rs +1795 -0
  891. data/ext/cargo-vendor/wit-parser-0.209.1/src/lib.rs +873 -0
  892. data/ext/cargo-vendor/wit-parser-0.209.1/src/live.rs +126 -0
  893. data/ext/cargo-vendor/wit-parser-0.209.1/src/metadata.rs +772 -0
  894. data/ext/cargo-vendor/wit-parser-0.209.1/src/resolve.rs +2498 -0
  895. data/ext/cargo-vendor/wit-parser-0.209.1/src/serde_.rs +124 -0
  896. data/ext/cargo-vendor/wit-parser-0.209.1/tests/all.rs +154 -0
  897. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/complex-include.wit.json +200 -0
  898. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/diamond1.wit.json +59 -0
  899. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/disambiguate-diamond.wit.json +115 -0
  900. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/feature-gates.wit +118 -0
  901. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/feature-gates.wit.json +288 -0
  902. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/foreign-deps-union.wit.json +410 -0
  903. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/foreign-deps.wit.json +362 -0
  904. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/ignore-files-deps.wit.json +41 -0
  905. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/import-export-overlap2.wit.json +43 -0
  906. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/include-reps.wit.json +68 -0
  907. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/kinds-of-deps.wit.json +95 -0
  908. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/many-names.wit.json +42 -0
  909. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/multi-file.wit.json +304 -0
  910. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate1.wit +8 -0
  911. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate1.wit.result +5 -0
  912. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate2.wit +8 -0
  913. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate2.wit.result +5 -0
  914. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate3.wit +6 -0
  915. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate3.wit.result +8 -0
  916. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate4.wit +8 -0
  917. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate4.wit.result +8 -0
  918. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate5.wit +11 -0
  919. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate5.wit.result +8 -0
  920. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since1.wit +4 -0
  921. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since1.wit.result +5 -0
  922. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since3.wit +5 -0
  923. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since3.wit.result +5 -0
  924. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/conflicting-package.wit.result +10 -0
  925. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/multiple-package-docs.wit.result +10 -0
  926. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +8 -0
  927. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/resources-return-borrow.wit.result +8 -0
  928. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow1.wit +7 -0
  929. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow1.wit.result +8 -0
  930. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow2.wit +8 -0
  931. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow2.wit.result +8 -0
  932. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow3.wit +7 -0
  933. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow3.wit.result +5 -0
  934. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow4.wit +7 -0
  935. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow4.wit.result +5 -0
  936. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow5.wit +7 -0
  937. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow5.wit.result +5 -0
  938. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow6.wit +7 -0
  939. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow6.wit.result +8 -0
  940. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow7.wit +11 -0
  941. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow7.wit.result +8 -0
  942. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow8/deps/baz.wit +9 -0
  943. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow8/foo.wit +7 -0
  944. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow8.wit.result +9 -0
  945. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/shared-types.wit.json +87 -0
  946. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/since-and-unstable.wit +89 -0
  947. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/since-and-unstable.wit.json +549 -0
  948. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/stress-export-elaborate.wit.json +1156 -0
  949. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-diamond.wit.json +124 -0
  950. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-iface-no-collide.wit.json +68 -0
  951. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import1.wit.json +81 -0
  952. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import2.wit.json +72 -0
  953. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import3.wit.json +73 -0
  954. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-same-fields4.wit.json +82 -0
  955. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-top-level-resources.wit +24 -0
  956. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-top-level-resources.wit.json +237 -0
  957. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/worlds-union-dedup.wit.json +112 -0
  958. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/worlds-with-types.wit.json +204 -0
  959. data/ext/src/lib.rs +1 -0
  960. data/ext/src/ruby_api/config.rs +1 -12
  961. data/ext/src/ruby_api/engine.rs +3 -6
  962. data/ext/src/ruby_api/pooling_allocation_config.rs +6 -6
  963. data/ext/src/ruby_api/store.rs +68 -5
  964. data/lib/wasmtime/version.rb +1 -1
  965. metadata +1766 -1507
  966. data/ext/cargo-vendor/bincode-1.3.3/.cargo-checksum.json +0 -1
  967. data/ext/cargo-vendor/bincode-1.3.3/Cargo.toml +0 -37
  968. data/ext/cargo-vendor/bincode-1.3.3/LICENSE.md +0 -21
  969. data/ext/cargo-vendor/bincode-1.3.3/readme.md +0 -112
  970. data/ext/cargo-vendor/bincode-1.3.3/src/byteorder.rs +0 -385
  971. data/ext/cargo-vendor/bincode-1.3.3/src/config/endian.rs +0 -27
  972. data/ext/cargo-vendor/bincode-1.3.3/src/config/int.rs +0 -682
  973. data/ext/cargo-vendor/bincode-1.3.3/src/config/legacy.rs +0 -253
  974. data/ext/cargo-vendor/bincode-1.3.3/src/config/limit.rs +0 -49
  975. data/ext/cargo-vendor/bincode-1.3.3/src/config/mod.rs +0 -408
  976. data/ext/cargo-vendor/bincode-1.3.3/src/config/trailing.rs +0 -37
  977. data/ext/cargo-vendor/bincode-1.3.3/src/de/mod.rs +0 -515
  978. data/ext/cargo-vendor/bincode-1.3.3/src/de/read.rs +0 -202
  979. data/ext/cargo-vendor/bincode-1.3.3/src/error.rs +0 -115
  980. data/ext/cargo-vendor/bincode-1.3.3/src/internal.rs +0 -124
  981. data/ext/cargo-vendor/bincode-1.3.3/src/lib.rs +0 -201
  982. data/ext/cargo-vendor/bincode-1.3.3/src/ser/mod.rs +0 -772
  983. data/ext/cargo-vendor/bincode-1.3.3/tests/test.rs +0 -899
  984. data/ext/cargo-vendor/cranelift-bforest-0.107.2/.cargo-checksum.json +0 -1
  985. data/ext/cargo-vendor/cranelift-bforest-0.107.2/Cargo.toml +0 -40
  986. data/ext/cargo-vendor/cranelift-codegen-0.107.2/.cargo-checksum.json +0 -1
  987. data/ext/cargo-vendor/cranelift-codegen-0.107.2/Cargo.toml +0 -178
  988. data/ext/cargo-vendor/cranelift-codegen-0.107.2/build.rs +0 -396
  989. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/alias_analysis.rs +0 -403
  990. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/context.rs +0 -386
  991. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ctxhash.rs +0 -167
  992. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/dce.rs +0 -37
  993. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/dominator_tree.rs +0 -803
  994. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph/elaborate.rs +0 -835
  995. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph.rs +0 -838
  996. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/fx.rs +0 -105
  997. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/incremental_cache.rs +0 -256
  998. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/inst_predicates.rs +0 -236
  999. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/dfg.rs +0 -1777
  1000. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/extfunc.rs +0 -411
  1001. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/immediates.rs +0 -1612
  1002. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/instructions.rs +0 -1019
  1003. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/stackslot.rs +0 -216
  1004. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/types.rs +0 -629
  1005. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/abi.rs +0 -1707
  1006. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/args.rs +0 -779
  1007. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit.rs +0 -3932
  1008. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit_tests.rs +0 -7919
  1009. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/imms.rs +0 -1218
  1010. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/mod.rs +0 -3083
  1011. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/regs.rs +0 -292
  1012. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/unwind/systemv.rs +0 -174
  1013. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst.isle +0 -4218
  1014. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/lower/isle.rs +0 -884
  1015. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/pcc.rs +0 -565
  1016. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/mod.rs +0 -432
  1017. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/abi.rs +0 -1109
  1018. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/args.rs +0 -1968
  1019. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit.rs +0 -3466
  1020. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit_tests.rs +0 -2146
  1021. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/encode.rs +0 -654
  1022. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/imms.rs +0 -374
  1023. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/mod.rs +0 -2041
  1024. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/regs.rs +0 -175
  1025. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/unwind/systemv.rs +0 -170
  1026. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/vector.rs +0 -1162
  1027. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst.isle +0 -2944
  1028. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst_vector.isle +0 -1899
  1029. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower/isle.rs +0 -625
  1030. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower.isle +0 -2872
  1031. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/mod.rs +0 -260
  1032. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/abi.rs +0 -1047
  1033. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/args.rs +0 -347
  1034. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/emit.rs +0 -3646
  1035. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/emit_tests.rs +0 -13389
  1036. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/imms.rs +0 -202
  1037. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/mod.rs +0 -3423
  1038. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/regs.rs +0 -187
  1039. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/unwind/systemv.rs +0 -212
  1040. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst.isle +0 -5033
  1041. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/lower.isle +0 -3995
  1042. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/abi.rs +0 -1369
  1043. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/args.rs +0 -2289
  1044. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit.rs +0 -4383
  1045. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit_state.rs +0 -74
  1046. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit_tests.rs +0 -5131
  1047. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/mod.rs +0 -2798
  1048. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/regs.rs +0 -276
  1049. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/unwind/systemv.rs +0 -198
  1050. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst.isle +0 -5304
  1051. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower/isle.rs +0 -1066
  1052. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.isle +0 -4809
  1053. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.rs +0 -339
  1054. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/pcc.rs +0 -1003
  1055. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isle_prelude.rs +0 -957
  1056. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/lib.rs +0 -106
  1057. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/abi.rs +0 -2594
  1058. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/blockorder.rs +0 -465
  1059. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/buffer.rs +0 -2512
  1060. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/isle.rs +0 -914
  1061. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/lower.rs +0 -1452
  1062. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/mod.rs +0 -555
  1063. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/reg.rs +0 -562
  1064. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/valueregs.rs +0 -132
  1065. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/vcode.rs +0 -1807
  1066. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/nan_canonicalization.rs +0 -110
  1067. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/arithmetic.isle +0 -179
  1068. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/cprop.isle +0 -281
  1069. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/icmp.isle +0 -197
  1070. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/shifts.isle +0 -307
  1071. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/prelude.isle +0 -646
  1072. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/prelude_lower.isle +0 -1073
  1073. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/remove_constant_phis.rs +0 -420
  1074. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/scoped_hash_map.rs +0 -310
  1075. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/settings.rs +0 -591
  1076. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/timing.rs +0 -297
  1077. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/verifier/mod.rs +0 -1957
  1078. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/write.rs +0 -631
  1079. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/.cargo-checksum.json +0 -1
  1080. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/Cargo.toml +0 -35
  1081. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/cdsl/types.rs +0 -496
  1082. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_inst.rs +0 -1784
  1083. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_settings.rs +0 -508
  1084. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_types.rs +0 -75
  1085. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/isa/riscv64.rs +0 -160
  1086. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/isa/x86.rs +0 -402
  1087. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/lib.rs +0 -59
  1088. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/shared/settings.rs +0 -355
  1089. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/srcgen.rs +0 -470
  1090. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/.cargo-checksum.json +0 -1
  1091. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/Cargo.toml +0 -22
  1092. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/src/constants.rs +0 -28
  1093. data/ext/cargo-vendor/cranelift-control-0.107.2/.cargo-checksum.json +0 -1
  1094. data/ext/cargo-vendor/cranelift-control-0.107.2/Cargo.toml +0 -30
  1095. data/ext/cargo-vendor/cranelift-entity-0.107.2/.cargo-checksum.json +0 -1
  1096. data/ext/cargo-vendor/cranelift-entity-0.107.2/Cargo.toml +0 -50
  1097. data/ext/cargo-vendor/cranelift-entity-0.107.2/src/lib.rs +0 -317
  1098. data/ext/cargo-vendor/cranelift-entity-0.107.2/src/set.rs +0 -290
  1099. data/ext/cargo-vendor/cranelift-frontend-0.107.2/.cargo-checksum.json +0 -1
  1100. data/ext/cargo-vendor/cranelift-frontend-0.107.2/Cargo.toml +0 -69
  1101. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/frontend.rs +0 -1854
  1102. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/lib.rs +0 -189
  1103. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/ssa.rs +0 -1328
  1104. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/switch.rs +0 -654
  1105. data/ext/cargo-vendor/cranelift-isle-0.107.2/.cargo-checksum.json +0 -1
  1106. data/ext/cargo-vendor/cranelift-isle-0.107.2/Cargo.toml +0 -46
  1107. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/codegen.rs +0 -886
  1108. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/lib.rs +0 -271
  1109. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/sema.rs +0 -2492
  1110. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/serialize.rs +0 -846
  1111. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/trie_again.rs +0 -683
  1112. data/ext/cargo-vendor/cranelift-native-0.107.2/.cargo-checksum.json +0 -1
  1113. data/ext/cargo-vendor/cranelift-native-0.107.2/Cargo.toml +0 -45
  1114. data/ext/cargo-vendor/cranelift-native-0.107.2/src/lib.rs +0 -188
  1115. data/ext/cargo-vendor/cranelift-native-0.107.2/src/riscv.rs +0 -128
  1116. data/ext/cargo-vendor/cranelift-wasm-0.107.2/.cargo-checksum.json +0 -1
  1117. data/ext/cargo-vendor/cranelift-wasm-0.107.2/Cargo.toml +0 -107
  1118. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/code_translator.rs +0 -3683
  1119. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/dummy.rs +0 -912
  1120. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/spec.rs +0 -945
  1121. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/func_translator.rs +0 -296
  1122. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/module_translator.rs +0 -128
  1123. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/sections_translator.rs +0 -409
  1124. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/state.rs +0 -522
  1125. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/.cargo-checksum.json +0 -1
  1126. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/Cargo.toml +0 -48
  1127. data/ext/cargo-vendor/object-0.33.0/.cargo-checksum.json +0 -1
  1128. data/ext/cargo-vendor/object-0.33.0/CHANGELOG.md +0 -797
  1129. data/ext/cargo-vendor/object-0.33.0/Cargo.toml +0 -179
  1130. data/ext/cargo-vendor/object-0.33.0/README.md +0 -56
  1131. data/ext/cargo-vendor/object-0.33.0/src/build/bytes.rs +0 -141
  1132. data/ext/cargo-vendor/object-0.33.0/src/build/elf.rs +0 -3033
  1133. data/ext/cargo-vendor/object-0.33.0/src/common.rs +0 -568
  1134. data/ext/cargo-vendor/object-0.33.0/src/elf.rs +0 -6291
  1135. data/ext/cargo-vendor/object-0.33.0/src/endian.rs +0 -831
  1136. data/ext/cargo-vendor/object-0.33.0/src/macho.rs +0 -3309
  1137. data/ext/cargo-vendor/object-0.33.0/src/pod.rs +0 -239
  1138. data/ext/cargo-vendor/object-0.33.0/src/read/any.rs +0 -1328
  1139. data/ext/cargo-vendor/object-0.33.0/src/read/archive.rs +0 -759
  1140. data/ext/cargo-vendor/object-0.33.0/src/read/coff/comdat.rs +0 -211
  1141. data/ext/cargo-vendor/object-0.33.0/src/read/coff/file.rs +0 -383
  1142. data/ext/cargo-vendor/object-0.33.0/src/read/coff/relocation.rs +0 -108
  1143. data/ext/cargo-vendor/object-0.33.0/src/read/coff/section.rs +0 -585
  1144. data/ext/cargo-vendor/object-0.33.0/src/read/coff/symbol.rs +0 -635
  1145. data/ext/cargo-vendor/object-0.33.0/src/read/elf/attributes.rs +0 -306
  1146. data/ext/cargo-vendor/object-0.33.0/src/read/elf/comdat.rs +0 -162
  1147. data/ext/cargo-vendor/object-0.33.0/src/read/elf/file.rs +0 -918
  1148. data/ext/cargo-vendor/object-0.33.0/src/read/elf/hash.rs +0 -224
  1149. data/ext/cargo-vendor/object-0.33.0/src/read/elf/note.rs +0 -271
  1150. data/ext/cargo-vendor/object-0.33.0/src/read/elf/relocation.rs +0 -629
  1151. data/ext/cargo-vendor/object-0.33.0/src/read/elf/section.rs +0 -1150
  1152. data/ext/cargo-vendor/object-0.33.0/src/read/elf/segment.rs +0 -356
  1153. data/ext/cargo-vendor/object-0.33.0/src/read/elf/symbol.rs +0 -595
  1154. data/ext/cargo-vendor/object-0.33.0/src/read/elf/version.rs +0 -424
  1155. data/ext/cargo-vendor/object-0.33.0/src/read/macho/dyld_cache.rs +0 -345
  1156. data/ext/cargo-vendor/object-0.33.0/src/read/macho/file.rs +0 -783
  1157. data/ext/cargo-vendor/object-0.33.0/src/read/macho/load_command.rs +0 -386
  1158. data/ext/cargo-vendor/object-0.33.0/src/read/macho/section.rs +0 -389
  1159. data/ext/cargo-vendor/object-0.33.0/src/read/macho/segment.rs +0 -303
  1160. data/ext/cargo-vendor/object-0.33.0/src/read/macho/symbol.rs +0 -492
  1161. data/ext/cargo-vendor/object-0.33.0/src/read/mod.rs +0 -880
  1162. data/ext/cargo-vendor/object-0.33.0/src/read/pe/file.rs +0 -1053
  1163. data/ext/cargo-vendor/object-0.33.0/src/read/pe/import.rs +0 -339
  1164. data/ext/cargo-vendor/object-0.33.0/src/read/pe/relocation.rs +0 -92
  1165. data/ext/cargo-vendor/object-0.33.0/src/read/pe/section.rs +0 -440
  1166. data/ext/cargo-vendor/object-0.33.0/src/read/read_cache.rs +0 -213
  1167. data/ext/cargo-vendor/object-0.33.0/src/read/traits.rs +0 -551
  1168. data/ext/cargo-vendor/object-0.33.0/src/read/wasm.rs +0 -966
  1169. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/file.rs +0 -697
  1170. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/relocation.rs +0 -134
  1171. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/section.rs +0 -433
  1172. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/symbol.rs +0 -784
  1173. data/ext/cargo-vendor/object-0.33.0/src/write/coff/object.rs +0 -678
  1174. data/ext/cargo-vendor/object-0.33.0/src/write/coff/writer.rs +0 -518
  1175. data/ext/cargo-vendor/object-0.33.0/src/write/elf/object.rs +0 -885
  1176. data/ext/cargo-vendor/object-0.33.0/src/write/elf/writer.rs +0 -2309
  1177. data/ext/cargo-vendor/object-0.33.0/src/write/macho.rs +0 -1107
  1178. data/ext/cargo-vendor/object-0.33.0/src/write/mod.rs +0 -990
  1179. data/ext/cargo-vendor/object-0.33.0/src/write/pe.rs +0 -847
  1180. data/ext/cargo-vendor/object-0.33.0/src/write/xcoff.rs +0 -589
  1181. data/ext/cargo-vendor/object-0.33.0/tests/integration.rs +0 -2
  1182. data/ext/cargo-vendor/object-0.33.0/tests/read/mod.rs +0 -4
  1183. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/bss.rs +0 -255
  1184. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/comdat.rs +0 -225
  1185. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/common.rs +0 -245
  1186. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/elf.rs +0 -289
  1187. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/mod.rs +0 -704
  1188. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/section_flags.rs +0 -90
  1189. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/tls.rs +0 -316
  1190. data/ext/cargo-vendor/rb-sys-0.9.97/.cargo-checksum.json +0 -1
  1191. data/ext/cargo-vendor/rb-sys-0.9.97/Cargo.toml +0 -54
  1192. data/ext/cargo-vendor/rb-sys-0.9.97/build/main.rs +0 -238
  1193. data/ext/cargo-vendor/rb-sys-0.9.97/build/stable_api_config.rs +0 -133
  1194. data/ext/cargo-vendor/rb-sys-0.9.97/src/bindings.rs +0 -20
  1195. data/ext/cargo-vendor/rb-sys-0.9.97/src/tracking_allocator.rs +0 -265
  1196. data/ext/cargo-vendor/rb-sys-build-0.9.97/.cargo-checksum.json +0 -1
  1197. data/ext/cargo-vendor/rb-sys-build-0.9.97/Cargo.toml +0 -62
  1198. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/bindings/stable_api.rs +0 -202
  1199. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/bindings.rs +0 -250
  1200. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/cc.rs +0 -365
  1201. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/utils.rs +0 -52
  1202. data/ext/cargo-vendor/wasi-common-20.0.2/.cargo-checksum.json +0 -1
  1203. data/ext/cargo-vendor/wasi-common-20.0.2/Cargo.toml +0 -220
  1204. data/ext/cargo-vendor/wasi-common-20.0.2/src/snapshots/preview_0.rs +0 -1145
  1205. data/ext/cargo-vendor/wasi-common-20.0.2/src/snapshots/preview_1.rs +0 -1497
  1206. data/ext/cargo-vendor/wasi-common-20.0.2/src/string_array.rs +0 -74
  1207. data/ext/cargo-vendor/wasi-common-20.0.2/src/sync/sched/windows.rs +0 -221
  1208. data/ext/cargo-vendor/wasi-common-20.0.2/src/tokio/file.rs +0 -247
  1209. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/async_.rs +0 -293
  1210. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/main.rs +0 -21
  1211. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/sync.rs +0 -279
  1212. data/ext/cargo-vendor/wasm-encoder-0.202.0/.cargo-checksum.json +0 -1
  1213. data/ext/cargo-vendor/wasm-encoder-0.202.0/Cargo.toml +0 -43
  1214. data/ext/cargo-vendor/wasm-encoder-0.202.0/README.md +0 -80
  1215. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/aliases.rs +0 -160
  1216. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/builder.rs +0 -455
  1217. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/canonicals.rs +0 -159
  1218. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/components.rs +0 -29
  1219. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/exports.rs +0 -124
  1220. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/imports.rs +0 -175
  1221. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/instances.rs +0 -200
  1222. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/modules.rs +0 -29
  1223. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/names.rs +0 -149
  1224. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/start.rs +0 -52
  1225. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/types.rs +0 -792
  1226. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component.rs +0 -168
  1227. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/code.rs +0 -3444
  1228. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/custom.rs +0 -73
  1229. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/data.rs +0 -185
  1230. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/dump.rs +0 -627
  1231. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/elements.rs +0 -220
  1232. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/exports.rs +0 -98
  1233. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/functions.rs +0 -63
  1234. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/globals.rs +0 -101
  1235. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/imports.rs +0 -156
  1236. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/linking.rs +0 -263
  1237. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/memories.rs +0 -111
  1238. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/names.rs +0 -298
  1239. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/producers.rs +0 -180
  1240. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/start.rs +0 -39
  1241. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/tables.rs +0 -116
  1242. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/tags.rs +0 -104
  1243. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/types.rs +0 -673
  1244. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core.rs +0 -168
  1245. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/lib.rs +0 -215
  1246. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/raw.rs +0 -30
  1247. data/ext/cargo-vendor/wasmparser-0.202.0/.cargo-checksum.json +0 -1
  1248. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.lock +0 -744
  1249. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.toml +0 -66
  1250. data/ext/cargo-vendor/wasmparser-0.202.0/src/binary_reader.rs +0 -1849
  1251. data/ext/cargo-vendor/wasmparser-0.202.0/src/lib.rs +0 -766
  1252. data/ext/cargo-vendor/wasmparser-0.202.0/src/limits.rs +0 -64
  1253. data/ext/cargo-vendor/wasmparser-0.202.0/src/parser.rs +0 -1611
  1254. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/canonicals.rs +0 -120
  1255. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/imports.rs +0 -129
  1256. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/instances.rs +0 -163
  1257. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/names.rs +0 -102
  1258. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/start.rs +0 -30
  1259. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/types.rs +0 -549
  1260. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/branch_hinting.rs +0 -59
  1261. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/code.rs +0 -146
  1262. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/coredumps.rs +0 -243
  1263. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/custom.rs +0 -63
  1264. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/data.rs +0 -96
  1265. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/dylink0.rs +0 -109
  1266. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/elements.rs +0 -152
  1267. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/globals.rs +0 -49
  1268. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/init.rs +0 -51
  1269. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/linking.rs +0 -449
  1270. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/memories.rs +0 -56
  1271. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/names.rs +0 -156
  1272. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/operators.rs +0 -411
  1273. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/producers.rs +0 -83
  1274. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/tables.rs +0 -87
  1275. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/types/matches.rs +0 -277
  1276. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/types.rs +0 -1680
  1277. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core.rs +0 -41
  1278. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers.rs +0 -316
  1279. data/ext/cargo-vendor/wasmparser-0.202.0/src/resources.rs +0 -235
  1280. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/component.rs +0 -3238
  1281. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/core/canonical.rs +0 -233
  1282. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/core.rs +0 -1400
  1283. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/func.rs +0 -338
  1284. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/names.rs +0 -929
  1285. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/operators.rs +0 -4076
  1286. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/types.rs +0 -4449
  1287. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator.rs +0 -1619
  1288. data/ext/cargo-vendor/wasmprinter-0.202.0/.cargo-checksum.json +0 -1
  1289. data/ext/cargo-vendor/wasmprinter-0.202.0/Cargo.toml +0 -45
  1290. data/ext/cargo-vendor/wasmprinter-0.202.0/src/lib.rs +0 -3202
  1291. data/ext/cargo-vendor/wasmprinter-0.202.0/src/operator.rs +0 -1131
  1292. data/ext/cargo-vendor/wasmprinter-0.202.0/tests/all.rs +0 -279
  1293. data/ext/cargo-vendor/wasmtime-20.0.2/.cargo-checksum.json +0 -1
  1294. data/ext/cargo-vendor/wasmtime-20.0.2/Cargo.toml +0 -268
  1295. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile/code_builder.rs +0 -201
  1296. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile/runtime.rs +0 -175
  1297. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile.rs +0 -897
  1298. data/ext/cargo-vendor/wasmtime-20.0.2/src/config.rs +0 -2695
  1299. data/ext/cargo-vendor/wasmtime-20.0.2/src/engine/serialization.rs +0 -849
  1300. data/ext/cargo-vendor/wasmtime-20.0.2/src/engine.rs +0 -741
  1301. data/ext/cargo-vendor/wasmtime-20.0.2/src/lib.rs +0 -303
  1302. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/jitdump.rs +0 -66
  1303. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/perfmap.rs +0 -47
  1304. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/vtune.rs +0 -80
  1305. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent.rs +0 -105
  1306. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/code.rs +0 -102
  1307. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/code_memory.rs +0 -335
  1308. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/component.rs +0 -661
  1309. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/host.rs +0 -439
  1310. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/options.rs +0 -554
  1311. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/typed.rs +0 -2484
  1312. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func.rs +0 -747
  1313. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/instance.rs +0 -804
  1314. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/linker.rs +0 -786
  1315. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/matching.rs +0 -217
  1316. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/mod.rs +0 -756
  1317. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/resource_table.rs +0 -350
  1318. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/resources.rs +0 -1133
  1319. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/storage.rs +0 -43
  1320. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/store.rs +0 -28
  1321. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/types.rs +0 -892
  1322. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/values.rs +0 -978
  1323. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/coredump.rs +0 -336
  1324. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/debug.rs +0 -165
  1325. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals/global.rs +0 -300
  1326. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals/table.rs +0 -480
  1327. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals.rs +0 -236
  1328. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/func/typed.rs +0 -898
  1329. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/func.rs +0 -2633
  1330. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/anyref.rs +0 -46
  1331. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/externref.rs +0 -50
  1332. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/rooting.rs +0 -222
  1333. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/anyref.rs +0 -472
  1334. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/externref.rs +0 -644
  1335. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/i31.rs +0 -345
  1336. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/rooting.rs +0 -1543
  1337. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc.rs +0 -87
  1338. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/instance.rs +0 -992
  1339. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/instantiate.rs +0 -345
  1340. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/limits.rs +0 -398
  1341. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/linker.rs +0 -1521
  1342. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/memory.rs +0 -999
  1343. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/module/registry.rs +0 -354
  1344. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/module.rs +0 -1295
  1345. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/profiling.rs +0 -224
  1346. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/resources.rs +0 -33
  1347. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/signatures.rs +0 -216
  1348. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/stack.rs +0 -73
  1349. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/context.rs +0 -243
  1350. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/data.rs +0 -289
  1351. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/func_refs.rs +0 -85
  1352. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store.rs +0 -2796
  1353. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/func.rs +0 -138
  1354. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/global.rs +0 -68
  1355. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/memory.rs +0 -286
  1356. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/table.rs +0 -34
  1357. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline.rs +0 -77
  1358. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trap.rs +0 -641
  1359. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/type_registry.rs +0 -632
  1360. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/types/matching.rs +0 -367
  1361. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/types.rs +0 -1378
  1362. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/unix.rs +0 -39
  1363. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/v128.rs +0 -131
  1364. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/values.rs +0 -945
  1365. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/windows.rs +0 -34
  1366. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime.rs +0 -112
  1367. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/.cargo-checksum.json +0 -1
  1368. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/Cargo.toml +0 -22
  1369. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/src/lib.rs +0 -81
  1370. data/ext/cargo-vendor/wasmtime-cache-20.0.2/.cargo-checksum.json +0 -1
  1371. data/ext/cargo-vendor/wasmtime-cache-20.0.2/Cargo.toml +0 -81
  1372. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/config.rs +0 -584
  1373. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/lib.rs +0 -235
  1374. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/tests.rs +0 -91
  1375. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/worker/tests.rs +0 -758
  1376. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/worker.rs +0 -890
  1377. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/.cargo-checksum.json +0 -1
  1378. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/Cargo.toml +0 -67
  1379. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/src/bindgen.rs +0 -390
  1380. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/src/component.rs +0 -1295
  1381. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/tests/codegen.rs +0 -342
  1382. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/.cargo-checksum.json +0 -1
  1383. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/Cargo.toml +0 -25
  1384. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/src/lib.rs +0 -180
  1385. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/.cargo-checksum.json +0 -1
  1386. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/Cargo.toml +0 -114
  1387. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/compiler/component.rs +0 -962
  1388. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/compiler.rs +0 -1369
  1389. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/gc.rs +0 -239
  1390. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/address_transform.rs +0 -783
  1391. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/attr.rs +0 -345
  1392. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/expression.rs +0 -1252
  1393. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/line_program.rs +0 -282
  1394. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/mod.rs +0 -126
  1395. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/simulate.rs +0 -411
  1396. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/unit.rs +0 -522
  1397. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/utils.rs +0 -187
  1398. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/write_debuginfo.rs +0 -187
  1399. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug.rs +0 -18
  1400. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/func_environ.rs +0 -2672
  1401. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/gc/enabled.rs +0 -649
  1402. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/gc.rs +0 -198
  1403. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/lib.rs +0 -505
  1404. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/obj.rs +0 -545
  1405. data/ext/cargo-vendor/wasmtime-environ-20.0.2/.cargo-checksum.json +0 -1
  1406. data/ext/cargo-vendor/wasmtime-environ-20.0.2/Cargo.lock +0 -782
  1407. data/ext/cargo-vendor/wasmtime-environ-20.0.2/Cargo.toml +0 -144
  1408. data/ext/cargo-vendor/wasmtime-environ-20.0.2/examples/factc.rs +0 -205
  1409. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/address_map.rs +0 -72
  1410. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/mod.rs +0 -389
  1411. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/module_artifacts.rs +0 -300
  1412. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/trap_encoding.rs +0 -69
  1413. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/artifacts.rs +0 -72
  1414. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/compiler.rs +0 -19
  1415. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/dfg.rs +0 -690
  1416. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/info.rs +0 -672
  1417. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/translate/adapt.rs +0 -459
  1418. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/translate.rs +0 -965
  1419. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/types/resources.rs +0 -234
  1420. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/types.rs +0 -1972
  1421. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component.rs +0 -103
  1422. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/demangling.rs +0 -28
  1423. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/core_types.rs +0 -24
  1424. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/signature.rs +0 -135
  1425. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/trampoline.rs +0 -3233
  1426. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/transcode.rs +0 -89
  1427. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/traps.rs +0 -115
  1428. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact.rs +0 -711
  1429. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/lib.rs +0 -70
  1430. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module.rs +0 -780
  1431. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_artifacts.rs +0 -145
  1432. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_environ.rs +0 -1288
  1433. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_types.rs +0 -122
  1434. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/ref_bits.rs +0 -36
  1435. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/scopevec.rs +0 -78
  1436. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/stack_map.rs +0 -36
  1437. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/trap_encoding.rs +0 -188
  1438. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/tunables.rs +0 -158
  1439. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/vmoffsets.rs +0 -952
  1440. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/.cargo-checksum.json +0 -1
  1441. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/Cargo.toml +0 -63
  1442. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/build.rs +0 -26
  1443. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/lib.rs +0 -328
  1444. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/unix.rs +0 -265
  1445. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/windows.rs +0 -166
  1446. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/.cargo-checksum.json +0 -1
  1447. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/Cargo.toml +0 -67
  1448. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/src/gdb_jit_int.rs +0 -130
  1449. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/src/perf_jitdump.rs +0 -293
  1450. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/.cargo-checksum.json +0 -1
  1451. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/Cargo.toml +0 -47
  1452. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/lib.rs +0 -108
  1453. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/libc.rs +0 -149
  1454. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/miri.rs +0 -10
  1455. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/win.rs +0 -45
  1456. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/.cargo-checksum.json +0 -1
  1457. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/Cargo.toml +0 -147
  1458. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/build.rs +0 -24
  1459. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/arch/aarch64.rs +0 -76
  1460. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/arch/x86_64.rs +0 -41
  1461. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/async_yield.rs +0 -35
  1462. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component/libcalls.rs +0 -571
  1463. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component/resources.rs +0 -351
  1464. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component.rs +0 -860
  1465. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/cow.rs +0 -888
  1466. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/debug_builtins.rs +0 -59
  1467. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/export.rs +0 -108
  1468. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/disabled.rs +0 -23
  1469. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/drc.rs +0 -963
  1470. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/externref.rs +0 -115
  1471. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/free_list.rs +0 -767
  1472. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled.rs +0 -18
  1473. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/gc_ref.rs +0 -486
  1474. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/gc_runtime.rs +0 -503
  1475. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/host_data.rs +0 -81
  1476. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/i31.rs +0 -86
  1477. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc.rs +0 -244
  1478. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/imports.rs +0 -27
  1479. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/on_demand.rs +0 -217
  1480. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/gc_heap_pool.rs +0 -92
  1481. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/index_allocator.rs +0 -704
  1482. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/memory_pool.rs +0 -996
  1483. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/stack_pool.rs +0 -242
  1484. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/table_pool.rs +0 -231
  1485. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling.rs +0 -699
  1486. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator.rs +0 -780
  1487. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance.rs +0 -1566
  1488. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/lib.rs +0 -289
  1489. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/libcalls.rs +0 -777
  1490. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/memory.rs +0 -751
  1491. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mmap.rs +0 -214
  1492. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mmap_vec.rs +0 -201
  1493. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/module_id.rs +0 -43
  1494. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/enabled.rs +0 -213
  1495. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/mod.rs +0 -54
  1496. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/pkru.rs +0 -104
  1497. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/sys.rs +0 -113
  1498. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/send_sync_ptr.rs +0 -106
  1499. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/store_box.rs +0 -35
  1500. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/capi.rs +0 -189
  1501. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/mmap.rs +0 -111
  1502. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/mod.rs +0 -24
  1503. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/traphandlers.rs +0 -55
  1504. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/vm.rs +0 -108
  1505. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/mmap.rs +0 -94
  1506. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/mod.rs +0 -10
  1507. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/traphandlers.rs +0 -47
  1508. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/vm.rs +0 -63
  1509. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/mod.rs +0 -33
  1510. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/machports.rs +0 -416
  1511. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/mmap.rs +0 -151
  1512. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/mod.rs +0 -21
  1513. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/signals.rs +0 -401
  1514. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/unwind.rs +0 -149
  1515. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/vm.rs +0 -208
  1516. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/mmap.rs +0 -216
  1517. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/mod.rs +0 -6
  1518. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/traphandlers.rs +0 -104
  1519. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/vm.rs +0 -79
  1520. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/table.rs +0 -851
  1521. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/parking_spot.rs +0 -621
  1522. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/shared_memory.rs +0 -230
  1523. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/shared_memory_disabled.rs +0 -100
  1524. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/backtrace.rs +0 -265
  1525. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/coredump_disabled.rs +0 -16
  1526. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/coredump_enabled.rs +0 -40
  1527. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers.rs +0 -785
  1528. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/vmcontext/vm_host_func_context.rs +0 -137
  1529. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/vmcontext.rs +0 -1293
  1530. data/ext/cargo-vendor/wasmtime-slab-20.0.2/.cargo-checksum.json +0 -1
  1531. data/ext/cargo-vendor/wasmtime-slab-20.0.2/Cargo.toml +0 -21
  1532. data/ext/cargo-vendor/wasmtime-slab-20.0.2/src/lib.rs +0 -493
  1533. data/ext/cargo-vendor/wasmtime-types-20.0.2/.cargo-checksum.json +0 -1
  1534. data/ext/cargo-vendor/wasmtime-types-20.0.2/Cargo.toml +0 -36
  1535. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/error.rs +0 -59
  1536. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/lib.rs +0 -832
  1537. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.2/.cargo-checksum.json +0 -1
  1538. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.2/Cargo.toml +0 -32
  1539. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/.cargo-checksum.json +0 -1
  1540. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/Cargo.toml +0 -194
  1541. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/bindings.rs +0 -283
  1542. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/ctx.rs +0 -659
  1543. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/filesystem.rs +0 -433
  1544. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/clocks.rs +0 -103
  1545. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/env.rs +0 -15
  1546. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/exit.rs +0 -11
  1547. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/filesystem/sync.rs +0 -518
  1548. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/filesystem.rs +0 -1079
  1549. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/instance_network.rs +0 -15
  1550. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/io.rs +0 -367
  1551. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/network.rs +0 -539
  1552. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/random.rs +0 -36
  1553. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/tcp.rs +0 -306
  1554. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/tcp_create_socket.rs +0 -15
  1555. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/udp.rs +0 -532
  1556. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/host/udp_create_socket.rs +0 -15
  1557. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/ip_name_lookup.rs +0 -126
  1558. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/lib.rs +0 -404
  1559. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/network.rs +0 -107
  1560. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/pipe.rs +0 -826
  1561. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/poll.rs +0 -233
  1562. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/preview0.rs +0 -879
  1563. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/preview1.rs +0 -2601
  1564. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/stdio.rs +0 -507
  1565. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/api.rs +0 -194
  1566. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/async_.rs +0 -397
  1567. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/main.rs +0 -91
  1568. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/preview1.rs +0 -251
  1569. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/sync.rs +0 -333
  1570. data/ext/cargo-vendor/wasmtime-winch-20.0.2/.cargo-checksum.json +0 -1
  1571. data/ext/cargo-vendor/wasmtime-winch-20.0.2/Cargo.toml +0 -81
  1572. data/ext/cargo-vendor/wasmtime-winch-20.0.2/src/compiler.rs +0 -257
  1573. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/.cargo-checksum.json +0 -1
  1574. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/Cargo.toml +0 -41
  1575. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/lib.rs +0 -2213
  1576. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/rust.rs +0 -421
  1577. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/types.rs +0 -202
  1578. data/ext/cargo-vendor/wiggle-20.0.2/.cargo-checksum.json +0 -1
  1579. data/ext/cargo-vendor/wiggle-20.0.2/Cargo.toml +0 -122
  1580. data/ext/cargo-vendor/wiggle-20.0.2/LICENSE +0 -220
  1581. data/ext/cargo-vendor/wiggle-20.0.2/src/borrow.rs +0 -113
  1582. data/ext/cargo-vendor/wiggle-20.0.2/src/guest_type.rs +0 -237
  1583. data/ext/cargo-vendor/wiggle-20.0.2/src/lib.rs +0 -1184
  1584. data/ext/cargo-vendor/wiggle-20.0.2/src/wasmtime.rs +0 -97
  1585. data/ext/cargo-vendor/wiggle-generate-20.0.2/.cargo-checksum.json +0 -1
  1586. data/ext/cargo-vendor/wiggle-generate-20.0.2/Cargo.toml +0 -65
  1587. data/ext/cargo-vendor/wiggle-generate-20.0.2/LICENSE +0 -220
  1588. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/funcs.rs +0 -435
  1589. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/module_trait.rs +0 -102
  1590. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/names.rs +0 -303
  1591. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/flags.rs +0 -92
  1592. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/handle.rs +0 -84
  1593. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/mod.rs +0 -129
  1594. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/record.rs +0 -132
  1595. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/types/variant.rs +0 -191
  1596. data/ext/cargo-vendor/wiggle-generate-20.0.2/src/wasmtime.rs +0 -170
  1597. data/ext/cargo-vendor/wiggle-macro-20.0.2/.cargo-checksum.json +0 -1
  1598. data/ext/cargo-vendor/wiggle-macro-20.0.2/Cargo.toml +0 -55
  1599. data/ext/cargo-vendor/wiggle-macro-20.0.2/LICENSE +0 -220
  1600. data/ext/cargo-vendor/wiggle-macro-20.0.2/src/lib.rs +0 -210
  1601. data/ext/cargo-vendor/winch-codegen-0.18.2/.cargo-checksum.json +0 -1
  1602. data/ext/cargo-vendor/winch-codegen-0.18.2/Cargo.toml +0 -81
  1603. data/ext/cargo-vendor/winch-codegen-0.18.2/src/abi/mod.rs +0 -671
  1604. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/context.rs +0 -534
  1605. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/control.rs +0 -972
  1606. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/env.rs +0 -435
  1607. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/mod.rs +0 -756
  1608. data/ext/cargo-vendor/winch-codegen-0.18.2/src/frame/mod.rs +0 -258
  1609. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/abi.rs +0 -291
  1610. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/address.rs +0 -144
  1611. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/asm.rs +0 -252
  1612. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/masm.rs +0 -573
  1613. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/mod.rs +0 -154
  1614. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/regs.rs +0 -149
  1615. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/reg.rs +0 -86
  1616. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/asm.rs +0 -1423
  1617. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/masm.rs +0 -1256
  1618. data/ext/cargo-vendor/winch-codegen-0.18.2/src/masm.rs +0 -947
  1619. data/ext/cargo-vendor/winch-codegen-0.18.2/src/regalloc.rs +0 -65
  1620. data/ext/cargo-vendor/winch-codegen-0.18.2/src/regset.rs +0 -194
  1621. data/ext/cargo-vendor/winch-codegen-0.18.2/src/stack.rs +0 -439
  1622. data/ext/cargo-vendor/winch-codegen-0.18.2/src/visitor.rs +0 -2149
  1623. data/ext/cargo-vendor/wit-parser-0.202.0/.cargo-checksum.json +0 -1
  1624. data/ext/cargo-vendor/wit-parser-0.202.0/Cargo.toml +0 -101
  1625. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast/resolve.rs +0 -1443
  1626. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast.rs +0 -1348
  1627. data/ext/cargo-vendor/wit-parser-0.202.0/src/decoding.rs +0 -1764
  1628. data/ext/cargo-vendor/wit-parser-0.202.0/src/docs.rs +0 -389
  1629. data/ext/cargo-vendor/wit-parser-0.202.0/src/lib.rs +0 -765
  1630. data/ext/cargo-vendor/wit-parser-0.202.0/src/live.rs +0 -111
  1631. data/ext/cargo-vendor/wit-parser-0.202.0/src/resolve.rs +0 -2240
  1632. data/ext/cargo-vendor/wit-parser-0.202.0/src/serde_.rs +0 -108
  1633. data/ext/cargo-vendor/wit-parser-0.202.0/tests/all.rs +0 -153
  1634. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/complex-include.wit.json +0 -168
  1635. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/diamond1.wit.json +0 -55
  1636. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/disambiguate-diamond.wit.json +0 -107
  1637. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/foreign-deps-union.wit.json +0 -380
  1638. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/foreign-deps.wit.json +0 -344
  1639. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/ignore-files-deps.wit.json +0 -39
  1640. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/import-export-overlap2.wit.json +0 -41
  1641. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/include-reps.wit.json +0 -60
  1642. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/kinds-of-deps.wit.json +0 -87
  1643. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/many-names.wit.json +0 -40
  1644. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/multi-file.wit.json +0 -298
  1645. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/parse-fail/conflicting-package.wit.result +0 -9
  1646. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/parse-fail/multiple-package-docs.wit.result +0 -9
  1647. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-multiple-returns-borrow.wit.json +0 -74
  1648. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-return-borrow.wit.json +0 -69
  1649. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/shared-types.wit.json +0 -83
  1650. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/stress-export-elaborate.wit.json +0 -1136
  1651. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-diamond.wit.json +0 -118
  1652. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-iface-no-collide.wit.json +0 -66
  1653. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-implicit-import1.wit.json +0 -75
  1654. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-implicit-import2.wit.json +0 -70
  1655. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-implicit-import3.wit.json +0 -71
  1656. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-same-fields4.wit.json +0 -76
  1657. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-top-level-resources.wit +0 -24
  1658. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-top-level-resources.wit.json +0 -240
  1659. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/worlds-union-dedup.wit.json +0 -100
  1660. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/worlds-with-types.wit.json +0 -202
  1661. data/ext/src/ruby_api/config/tracked_memory_creator.rs +0 -82
  1662. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/LICENSE +0 -0
  1663. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/README.md +0 -0
  1664. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/lib.rs +0 -0
  1665. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/map.rs +0 -0
  1666. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/node.rs +0 -0
  1667. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/path.rs +0 -0
  1668. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/pool.rs +0 -0
  1669. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.109.0}/src/set.rs +0 -0
  1670. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/LICENSE +0 -0
  1671. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/README.md +0 -0
  1672. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/benches/x64-evex-encoding.rs +0 -0
  1673. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/binemit/mod.rs +0 -0
  1674. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/binemit/stack_map.rs +0 -0
  1675. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/bitset.rs +0 -0
  1676. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/cfg_printer.rs +0 -0
  1677. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/constant_hash.rs +0 -0
  1678. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/cursor.rs +0 -0
  1679. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/data_value.rs +0 -0
  1680. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/dbg.rs +0 -0
  1681. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/egraph/cost.rs +0 -0
  1682. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/flowgraph.rs +0 -0
  1683. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/atomic_rmw_op.rs +0 -0
  1684. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/builder.rs +0 -0
  1685. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/condcodes.rs +0 -0
  1686. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/constant.rs +0 -0
  1687. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/dynamic_type.rs +0 -0
  1688. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/entities.rs +0 -0
  1689. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/extname.rs +0 -0
  1690. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/function.rs +0 -0
  1691. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/globalvalue.rs +0 -0
  1692. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/jumptable.rs +0 -0
  1693. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/known_symbol.rs +0 -0
  1694. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/layout.rs +0 -0
  1695. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/libcall.rs +0 -0
  1696. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/memflags.rs +0 -0
  1697. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/memtype.rs +0 -0
  1698. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/mod.rs +0 -0
  1699. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/pcc.rs +0 -0
  1700. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/progpoint.rs +0 -0
  1701. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/sourceloc.rs +0 -0
  1702. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/ir/trapcode.rs +0 -0
  1703. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  1704. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/inst_neon.isle +0 -0
  1705. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1706. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower.isle +0 -0
  1707. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower.rs +0 -0
  1708. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1709. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/mod.rs +0 -0
  1710. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/aarch64/settings.rs +0 -0
  1711. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/call_conv.rs +0 -0
  1712. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  1713. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1714. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/riscv64/lower.rs +0 -0
  1715. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/riscv64/settings.rs +0 -0
  1716. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/inst/unwind.rs +0 -0
  1717. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1718. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/lower/isle.rs +0 -0
  1719. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/lower.rs +0 -0
  1720. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/mod.rs +0 -0
  1721. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/s390x/settings.rs +0 -0
  1722. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/unwind/systemv.rs +0 -0
  1723. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/unwind/winx64.rs +0 -0
  1724. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/unwind.rs +0 -0
  1725. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/evex.rs +0 -0
  1726. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/mod.rs +0 -0
  1727. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/rex.rs +0 -0
  1728. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/vex.rs +0 -0
  1729. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1730. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/inst/unwind.rs +0 -0
  1731. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1732. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/mod.rs +0 -0
  1733. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/isa/x64/settings.rs +0 -0
  1734. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/iterators.rs +0 -0
  1735. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/legalizer/globalvalue.rs +0 -0
  1736. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/legalizer/mod.rs +0 -0
  1737. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/loop_analysis.rs +0 -0
  1738. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/machinst/compile.rs +0 -0
  1739. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/machinst/helpers.rs +0 -0
  1740. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/machinst/inst_common.rs +0 -0
  1741. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/machinst/pcc.rs +0 -0
  1742. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/README.md +0 -0
  1743. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/bitops.isle +0 -0
  1744. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/extends.isle +0 -0
  1745. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/generated_code.rs +0 -0
  1746. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/remat.isle +0 -0
  1747. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/selects.isle +0 -0
  1748. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/spaceship.isle +0 -0
  1749. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/spectre.isle +0 -0
  1750. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts/vector.isle +0 -0
  1751. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/opts.rs +0 -0
  1752. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/prelude_opt.isle +0 -0
  1753. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/print_errors.rs +0 -0
  1754. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/result.rs +0 -0
  1755. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/souper_harvest.rs +0 -0
  1756. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/unionfind.rs +0 -0
  1757. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/unreachable_code.rs +0 -0
  1758. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.109.0}/src/value_label.rs +0 -0
  1759. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/LICENSE +0 -0
  1760. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/README.md +0 -0
  1761. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/formats.rs +0 -0
  1762. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/instructions.rs +0 -0
  1763. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/isa.rs +0 -0
  1764. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/mod.rs +0 -0
  1765. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/operands.rs +0 -0
  1766. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/settings.rs +0 -0
  1767. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/cdsl/typevar.rs +0 -0
  1768. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/constant_hash.rs +0 -0
  1769. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/error.rs +0 -0
  1770. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/isa/arm64.rs +0 -0
  1771. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/isa/mod.rs +0 -0
  1772. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/isa/s390x.rs +0 -0
  1773. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/entities.rs +0 -0
  1774. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/formats.rs +0 -0
  1775. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/immediates.rs +0 -0
  1776. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/instructions.rs +0 -0
  1777. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/mod.rs +0 -0
  1778. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/shared/types.rs +0 -0
  1779. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.109.0}/src/unique_table.rs +0 -0
  1780. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.109.0}/LICENSE +0 -0
  1781. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.109.0}/README.md +0 -0
  1782. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.109.0}/src/constant_hash.rs +0 -0
  1783. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.109.0}/src/lib.rs +0 -0
  1784. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/LICENSE +0 -0
  1785. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/README.md +0 -0
  1786. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/src/chaos.rs +0 -0
  1787. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/src/lib.rs +0 -0
  1788. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.109.0}/src/zero_sized.rs +0 -0
  1789. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/LICENSE +0 -0
  1790. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/README.md +0 -0
  1791. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/boxed_slice.rs +0 -0
  1792. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/iter.rs +0 -0
  1793. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/keys.rs +0 -0
  1794. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/list.rs +0 -0
  1795. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/map.rs +0 -0
  1796. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/packed_option.rs +0 -0
  1797. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/primary.rs +0 -0
  1798. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/sparse.rs +0 -0
  1799. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.109.0}/src/unsigned.rs +0 -0
  1800. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.109.0}/LICENSE +0 -0
  1801. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.109.0}/README.md +0 -0
  1802. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.109.0}/src/variable.rs +0 -0
  1803. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/README.md +0 -0
  1804. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/build.rs +0 -0
  1805. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/bad_converters.isle +0 -0
  1806. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1807. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1808. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/error1.isle +0 -0
  1809. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/extra_parens.isle +0 -0
  1810. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/impure_expression.isle +0 -0
  1811. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/impure_rhs.isle +0 -0
  1812. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1813. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/fail/multi_prio.isle +0 -0
  1814. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/borrows.isle +0 -0
  1815. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/borrows_main.rs +0 -0
  1816. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/iflets.isle +0 -0
  1817. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/iflets_main.rs +0 -0
  1818. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/multi_constructor.isle +0 -0
  1819. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/multi_constructor_main.rs +0 -0
  1820. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/multi_extractor.isle +0 -0
  1821. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/multi_extractor_main.rs +0 -0
  1822. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/test.isle +0 -0
  1823. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/link/test_main.rs +0 -0
  1824. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/bound_var.isle +0 -0
  1825. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  1826. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/conversions.isle +0 -0
  1827. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/conversions_extern.isle +0 -0
  1828. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/let.isle +0 -0
  1829. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/nodebug.isle +0 -0
  1830. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1831. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/test2.isle +0 -0
  1832. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/test3.isle +0 -0
  1833. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/test4.isle +0 -0
  1834. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/pass/tutorial.isle +0 -0
  1835. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/run/iconst.isle +0 -0
  1836. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/run/iconst_main.rs +0 -0
  1837. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/run/let_shadowing.isle +0 -0
  1838. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  1839. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/ast.rs +0 -0
  1840. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/compile.rs +0 -0
  1841. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/error.rs +0 -0
  1842. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/lexer.rs +0 -0
  1843. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/log.rs +0 -0
  1844. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/overlap.rs +0 -0
  1845. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/src/parser.rs +0 -0
  1846. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.109.0}/tests/run_tests.rs +0 -0
  1847. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.109.0}/LICENSE +0 -0
  1848. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.109.0}/README.md +0 -0
  1849. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/LICENSE +0 -0
  1850. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/README.md +0 -0
  1851. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/code_translator/bounds_checks.rs +0 -0
  1852. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/environ/mod.rs +0 -0
  1853. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/heap.rs +0 -0
  1854. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/lib.rs +0 -0
  1855. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/table.rs +0 -0
  1856. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.109.0}/src/translation_utils.rs +0 -0
  1857. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/README.md +0 -0
  1858. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/clocks.rs +0 -0
  1859. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/lib.rs +0 -0
  1860. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/noop_scheduler.rs +0 -0
  1861. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/clocks.rs +0 -0
  1862. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/common/mod.rs +0 -0
  1863. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/random.rs +0 -0
  1864. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/scheduler.rs +0 -0
  1865. /data/ext/cargo-vendor/{object-0.33.0 → embedded-io-0.4.0}/LICENSE-APACHE +0 -0
  1866. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/LICENSE-MIT +0 -0
  1867. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/archive.rs +0 -0
  1868. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/error.rs +0 -0
  1869. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/mod.rs +0 -0
  1870. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/table.rs +0 -0
  1871. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/lib.rs +0 -0
  1872. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/pe.rs +0 -0
  1873. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/coff/import.rs +0 -0
  1874. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/coff/mod.rs +0 -0
  1875. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/compression.rs +0 -0
  1876. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/dynamic.rs +0 -0
  1877. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/mod.rs +0 -0
  1878. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/fat.rs +0 -0
  1879. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/mod.rs +0 -0
  1880. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/relocation.rs +0 -0
  1881. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/data_directory.rs +0 -0
  1882. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/export.rs +0 -0
  1883. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/mod.rs +0 -0
  1884. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/resource.rs +0 -0
  1885. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/rich.rs +0 -0
  1886. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/read_ref.rs +0 -0
  1887. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/util.rs +0 -0
  1888. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/comdat.rs +0 -0
  1889. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/mod.rs +0 -0
  1890. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/segment.rs +0 -0
  1891. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/coff/mod.rs +0 -0
  1892. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/elf/mod.rs +0 -0
  1893. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/string.rs +0 -0
  1894. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/util.rs +0 -0
  1895. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/xcoff.rs +0 -0
  1896. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/parse_self.rs +0 -0
  1897. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/read/coff.rs +0 -0
  1898. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/read/elf.rs +0 -0
  1899. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/round_trip/coff.rs +0 -0
  1900. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/round_trip/macho.rs +0 -0
  1901. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/LICENSE-APACHE +0 -0
  1902. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/LICENSE-MIT +0 -0
  1903. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/bin/release.sh +0 -0
  1904. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/build/features.rs +0 -0
  1905. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/build/version.rs +0 -0
  1906. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/readme.md +0 -0
  1907. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/hidden.rs +0 -0
  1908. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/lib.rs +0 -0
  1909. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/macros.rs +0 -0
  1910. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/memory.rs +0 -0
  1911. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/ruby_abi_version.rs +0 -0
  1912. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/special_consts.rs +0 -0
  1913. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/compiled.c +0 -0
  1914. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/compiled.rs +0 -0
  1915. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_2_6.rs +0 -0
  1916. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_2_7.rs +0 -0
  1917. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_0.rs +0 -0
  1918. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_1.rs +0 -0
  1919. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_2.rs +0 -0
  1920. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_3.rs +0 -0
  1921. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api.rs +0 -0
  1922. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/symbol.rs +0 -0
  1923. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/utils.rs +0 -0
  1924. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/value_type.rs +0 -0
  1925. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/LICENSE-APACHE +0 -0
  1926. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/LICENSE-MIT +0 -0
  1927. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/bindings/sanitizer.rs +0 -0
  1928. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/bindings/wrapper.h +0 -0
  1929. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/lib.rs +0 -0
  1930. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/flags.rs +0 -0
  1931. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/library.rs +0 -0
  1932. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/search_path.rs +0 -0
  1933. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config.rs +0 -0
  1934. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/LICENSE +0 -0
  1935. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/README.md +0 -0
  1936. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/clocks.rs +0 -0
  1937. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/ctx.rs +0 -0
  1938. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/dir.rs +0 -0
  1939. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/error.rs +0 -0
  1940. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/file.rs +0 -0
  1941. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/lib.rs +0 -0
  1942. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/pipe.rs +0 -0
  1943. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/random.rs +0 -0
  1944. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sched/subscription.rs +0 -0
  1945. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sched.rs +0 -0
  1946. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/snapshots/mod.rs +0 -0
  1947. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/snapshots/preview_1/error.rs +0 -0
  1948. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/clocks.rs +0 -0
  1949. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/dir.rs +0 -0
  1950. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/file.rs +0 -0
  1951. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/mod.rs +0 -0
  1952. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/net.rs +0 -0
  1953. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/sched/unix.rs +0 -0
  1954. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/sched.rs +0 -0
  1955. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/sync/stdio.rs +0 -0
  1956. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/table.rs +0 -0
  1957. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/dir.rs +0 -0
  1958. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/mod.rs +0 -0
  1959. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/net.rs +0 -0
  1960. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/sched/unix.rs +0 -0
  1961. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/sched/windows.rs +0 -0
  1962. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/sched.rs +0 -0
  1963. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/src/tokio/stdio.rs +0 -0
  1964. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/witx/preview0/typenames.witx +0 -0
  1965. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  1966. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/witx/preview1/typenames.witx +0 -0
  1967. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-22.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1968. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/README.md +0 -0
  1969. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/benches/benchmark.rs +0 -0
  1970. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/examples/simple.rs +0 -0
  1971. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/component/aliases.rs +0 -0
  1972. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/component/exports.rs +0 -0
  1973. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/component.rs +0 -0
  1974. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/core/exports.rs +0 -0
  1975. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/core/functions.rs +0 -0
  1976. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/core/imports.rs +0 -0
  1977. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/src/readers/core/tags.rs +0 -0
  1978. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.209.1}/tests/big-module.rs +0 -0
  1979. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasmprinter-0.209.1}/LICENSE +0 -0
  1980. /data/ext/cargo-vendor/{wasmprinter-0.202.0 → wasmprinter-0.209.1}/README.md +0 -0
  1981. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmtime-22.0.0}/LICENSE +0 -0
  1982. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/README.md +0 -0
  1983. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/proptest-regressions → wasmtime-22.0.0/proptest-regressions/runtime/vm}/instance/allocator/pooling/memory_pool.txt +0 -0
  1984. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/src/runtime/gc/disabled/i31.rs +0 -0
  1985. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/src/runtime/gc/disabled.rs +0 -0
  1986. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/src/runtime/gc/enabled.rs +0 -0
  1987. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-22.0.0}/src/runtime/uninhabited.rs +0 -0
  1988. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/arch/mod.rs +0 -0
  1989. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/arch/riscv64.rs +0 -0
  1990. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/arch/s390x.S +0 -0
  1991. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/arch/s390x.rs +0 -0
  1992. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/helpers.c +0 -0
  1993. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/mpk/disabled.rs +0 -0
  1994. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/sys/custom/unwind.rs +0 -0
  1995. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/sys/miri/unwind.rs +0 -0
  1996. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/sys/unix/macos_traphandlers.rs +0 -0
  1997. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/sys/windows/unwind.rs +0 -0
  1998. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-22.0.0/src/runtime/vm}/threads/mod.rs +0 -0
  1999. /data/ext/cargo-vendor/{wasmprinter-0.202.0 → wasmtime-cache-22.0.0}/LICENSE +0 -0
  2000. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-22.0.0}/build.rs +0 -0
  2001. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-22.0.0}/src/config/tests.rs +0 -0
  2002. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-22.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  2003. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-22.0.0}/tests/cache_write_default_config.rs +0 -0
  2004. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/build.rs +0 -0
  2005. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/src/lib.rs +0 -0
  2006. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/char.wit +0 -0
  2007. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/conventions.wit +0 -0
  2008. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/dead-code.wit +0 -0
  2009. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/direct-import.wit +0 -0
  2010. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/empty.wit +0 -0
  2011. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/flags.wit +0 -0
  2012. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/floats.wit +0 -0
  2013. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/function-new.wit +0 -0
  2014. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/integers.wit +0 -0
  2015. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/lists.wit +0 -0
  2016. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/many-arguments.wit +0 -0
  2017. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/multi-return.wit +0 -0
  2018. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  2019. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  2020. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/root.wit +0 -0
  2021. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/records.wit +0 -0
  2022. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/rename.wit +0 -0
  2023. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/resources-export.wit +0 -0
  2024. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/resources-import.wit +0 -0
  2025. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/share-types.wit +0 -0
  2026. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-functions.wit +0 -0
  2027. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-lists.wit +0 -0
  2028. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-wasi.wit +0 -0
  2029. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/small-anonymous.wit +0 -0
  2030. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke-default.wit +0 -0
  2031. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke-export.wit +0 -0
  2032. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke.wit +0 -0
  2033. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/strings.wit +0 -0
  2034. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/unversioned-foo.wit +0 -0
  2035. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/use-paths.wit +0 -0
  2036. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/variants.wit +0 -0
  2037. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/wat.wit +0 -0
  2038. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-22.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  2039. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-cranelift-22.0.0}/LICENSE +0 -0
  2040. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/SECURITY.md +0 -0
  2041. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/builder.rs +0 -0
  2042. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/compiled_function.rs +0 -0
  2043. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  2044. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/debug/transform/refs.rs +0 -0
  2045. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/gc/disabled.rs +0 -0
  2046. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-22.0.0}/src/isa_builder.rs +0 -0
  2047. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-environ-22.0.0}/LICENSE +0 -0
  2048. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/address_map.rs +0 -0
  2049. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/builtin.rs +0 -0
  2050. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/component/translate/inline.rs +0 -0
  2051. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  2052. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/gc.rs +0 -0
  2053. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-22.0.0}/src/obj.rs +0 -0
  2054. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-fiber-22.0.0}/LICENSE +0 -0
  2055. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/aarch64.rs +0 -0
  2056. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/arm.rs +0 -0
  2057. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/riscv64.rs +0 -0
  2058. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/s390x.S +0 -0
  2059. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/x86.rs +0 -0
  2060. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/unix/x86_64.rs +0 -0
  2061. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-22.0.0}/src/windows.c +0 -0
  2062. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-22.0.0}/README.md +0 -0
  2063. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-22.0.0}/src/lib.rs +0 -0
  2064. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-types-22.0.0}/LICENSE +0 -0
  2065. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-20.0.2 → wasmtime-versioned-export-macros-22.0.0}/src/lib.rs +0 -0
  2066. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-wasi-22.0.0}/LICENSE +0 -0
  2067. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/README.md +0 -0
  2068. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/clocks/host.rs +0 -0
  2069. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/clocks.rs +0 -0
  2070. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/error.rs +0 -0
  2071. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/host/mod.rs +0 -0
  2072. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/random.rs +0 -0
  2073. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/runtime.rs +0 -0
  2074. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/stdio/worker_thread_stdin.rs +0 -0
  2075. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/stream.rs +0 -0
  2076. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/tcp.rs +0 -0
  2077. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/udp.rs +0 -0
  2078. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/src/write_stream.rs +0 -0
  2079. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/tests/process_stdin.rs +0 -0
  2080. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/command-extended.wit +0 -0
  2081. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/command.wit +0 -0
  2082. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/environment.wit +0 -0
  2083. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/exit.wit +0 -0
  2084. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/imports.wit +0 -0
  2085. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/run.wit +0 -0
  2086. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/stdio.wit +0 -0
  2087. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/cli/terminal.wit +0 -0
  2088. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  2089. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  2090. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/clocks/world.wit +0 -0
  2091. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  2092. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/types.wit +0 -0
  2093. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/world.wit +0 -0
  2094. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/http/handler.wit +0 -0
  2095. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/http/proxy.wit +0 -0
  2096. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/http/types.wit +0 -0
  2097. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/io/error.wit +0 -0
  2098. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/io/poll.wit +0 -0
  2099. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/io/streams.wit +0 -0
  2100. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/io/world.wit +0 -0
  2101. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  2102. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/random/insecure.wit +0 -0
  2103. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/random/random.wit +0 -0
  2104. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/random/world.wit +0 -0
  2105. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  2106. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  2107. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/network.wit +0 -0
  2108. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  2109. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/tcp.wit +0 -0
  2110. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  2111. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/udp.wit +0 -0
  2112. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/deps/sockets/world.wit +0 -0
  2113. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/wit/test.wit +0 -0
  2114. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/witx/preview0/typenames.witx +0 -0
  2115. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  2116. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/witx/preview1/typenames.witx +0 -0
  2117. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-22.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  2118. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-22.0.0}/LICENSE +0 -0
  2119. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-22.0.0}/src/builder.rs +0 -0
  2120. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-22.0.0}/src/lib.rs +0 -0
  2121. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-20.0.2 → wasmtime-wit-bindgen-22.0.0}/src/source.rs +0 -0
  2122. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2 → wiggle-22.0.0}/LICENSE +0 -0
  2123. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-22.0.0}/README.md +0 -0
  2124. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-22.0.0}/src/error.rs +0 -0
  2125. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-22.0.0}/src/region.rs +0 -0
  2126. /data/ext/cargo-vendor/{wasmtime-types-20.0.2 → wiggle-generate-22.0.0}/LICENSE +0 -0
  2127. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/README.md +0 -0
  2128. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/codegen_settings.rs +0 -0
  2129. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/config.rs +0 -0
  2130. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/lib.rs +0 -0
  2131. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/lifetimes.rs +0 -0
  2132. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-22.0.0}/src/types/error.rs +0 -0
  2133. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wiggle-macro-22.0.0}/LICENSE +0 -0
  2134. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/LICENSE +0 -0
  2135. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/build.rs +0 -0
  2136. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/abi/local.rs +0 -0
  2137. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/codegen/bounds.rs +0 -0
  2138. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/codegen/builtin.rs +0 -0
  2139. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/codegen/call.rs +0 -0
  2140. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/mod.rs +0 -0
  2141. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/x64/abi.rs +0 -0
  2142. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/x64/address.rs +0 -0
  2143. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/x64/mod.rs +0 -0
  2144. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/isa/x64/regs.rs +0 -0
  2145. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.20.0}/src/lib.rs +0 -0
  2146. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/README.md +0 -0
  2147. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/src/abi.rs +0 -0
  2148. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/src/ast/lex.rs +0 -0
  2149. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/src/ast/toposort.rs +0 -0
  2150. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/src/sizealign.rs +0 -0
  2151. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/comments.wit +0 -0
  2152. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/comments.wit.json +0 -0
  2153. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/complex-include/deps/bar/root.wit +0 -0
  2154. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/complex-include/deps/baz/root.wit +0 -0
  2155. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/complex-include/root.wit +0 -0
  2156. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource/deps/foo/foo.wit +0 -0
  2157. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource/foo.wit +0 -0
  2158. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource.wit.json +0 -0
  2159. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/diamond1/deps/dep1/types.wit +0 -0
  2160. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/diamond1/deps/dep2/types.wit +0 -0
  2161. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/diamond1/join.wit +0 -0
  2162. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/shared1.wit +0 -0
  2163. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/shared2.wit +0 -0
  2164. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/world.wit +0 -0
  2165. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/empty.wit +0 -0
  2166. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/empty.wit.json +0 -0
  2167. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -0
  2168. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/corp/saas.wit +0 -0
  2169. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -0
  2170. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -0
  2171. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -0
  2172. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -0
  2173. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -0
  2174. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/root.wit +0 -0
  2175. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +0 -0
  2176. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/corp/saas.wit +0 -0
  2177. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +0 -0
  2178. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +0 -0
  2179. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +0 -0
  2180. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +0 -0
  2181. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +0 -0
  2182. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +0 -0
  2183. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/root.wit +0 -0
  2184. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/functions.wit +0 -0
  2185. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/functions.wit.json +0 -0
  2186. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/deps/bar/types.wit +0 -0
  2187. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/deps/ignore-me.txt +0 -0
  2188. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/world.wit +0 -0
  2189. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap1.wit +0 -0
  2190. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap1.wit.json +0 -0
  2191. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap2.wit +0 -0
  2192. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/include-reps.wit +0 -0
  2193. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kebab-name-include-with.wit +0 -0
  2194. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kebab-name-include-with.wit.json +0 -0
  2195. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/a.wit +0 -0
  2196. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/b/root.wit +0 -0
  2197. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/c.wit +0 -0
  2198. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/d.wat +0 -0
  2199. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  2200. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/many-names/a.wit +0 -0
  2201. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/many-names/b.wit +0 -0
  2202. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/multi-file/bar.wit +0 -0
  2203. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/multi-file/cycle-a.wit +0 -0
  2204. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/multi-file/cycle-b.wit +0 -0
  2205. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/multi-file/foo.wit +0 -0
  2206. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +0 -0
  2207. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type/foo.wit +0 -0
  2208. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type.wit.json +0 -0
  2209. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax1.wit +0 -0
  2210. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax1.wit.json +0 -0
  2211. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax3.wit +0 -0
  2212. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax3.wit.json +0 -0
  2213. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax4.wit +0 -0
  2214. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/package-syntax4.wit.json +0 -0
  2215. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  2216. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/alias-no-type.wit.result +0 -0
  2217. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/async.wit.result +0 -0
  2218. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/async1.wit.result +0 -0
  2219. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function.wit +0 -0
  2220. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function.wit.result +0 -0
  2221. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function2.wit +0 -0
  2222. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function2.wit.result +0 -0
  2223. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include1.wit +0 -0
  2224. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include1.wit.result +0 -0
  2225. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include2.wit +0 -0
  2226. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include2.wit.result +0 -0
  2227. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include3.wit +0 -0
  2228. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include3.wit.result +0 -0
  2229. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-list.wit +0 -0
  2230. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  2231. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg1/root.wit +0 -0
  2232. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg1.wit.result +0 -0
  2233. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +0 -0
  2234. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2/root.wit +0 -0
  2235. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2.wit.result +0 -0
  2236. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  2237. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3/root.wit +0 -0
  2238. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3.wit.result +0 -0
  2239. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -0
  2240. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4/root.wit +0 -0
  2241. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4.wit.result +0 -0
  2242. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -0
  2243. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5/root.wit +0 -0
  2244. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5.wit.result +0 -0
  2245. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  2246. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6/root.wit +0 -0
  2247. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6.wit.result +0 -0
  2248. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource1.wit +0 -0
  2249. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource1.wit.result +0 -0
  2250. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource10.wit +0 -0
  2251. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource10.wit.result +0 -0
  2252. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource11.wit +0 -0
  2253. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource11.wit.result +0 -0
  2254. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource12.wit +0 -0
  2255. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource12.wit.result +0 -0
  2256. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource13.wit +0 -0
  2257. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource13.wit.result +0 -0
  2258. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource14.wit +0 -0
  2259. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource14.wit.result +0 -0
  2260. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +0 -0
  2261. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15/foo.wit +0 -0
  2262. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15.wit.result +0 -0
  2263. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource2.wit +0 -0
  2264. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource2.wit.result +0 -0
  2265. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource3.wit +0 -0
  2266. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource3.wit.result +0 -0
  2267. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource4.wit +0 -0
  2268. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource4.wit.result +0 -0
  2269. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource5.wit +0 -0
  2270. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource5.wit.result +0 -0
  2271. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource6.wit +0 -0
  2272. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource6.wit.result +0 -0
  2273. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource7.wit +0 -0
  2274. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource7.wit.result +0 -0
  2275. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource8.wit +0 -0
  2276. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource8.wit.result +0 -0
  2277. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource9.wit +0 -0
  2278. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource9.wit.result +0 -0
  2279. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-world-type1.wit +0 -0
  2280. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-world-type1.wit.result +0 -0
  2281. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/conflicting-package/a.wit +0 -0
  2282. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/conflicting-package/b.wit +0 -0
  2283. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle.wit +0 -0
  2284. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle.wit.result +0 -0
  2285. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle2.wit +0 -0
  2286. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle2.wit.result +0 -0
  2287. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle3.wit +0 -0
  2288. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle3.wit.result +0 -0
  2289. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle4.wit +0 -0
  2290. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle4.wit.result +0 -0
  2291. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle5.wit +0 -0
  2292. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle5.wit.result +0 -0
  2293. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/dangling-type.wit +0 -0
  2294. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  2295. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-function-params.wit +0 -0
  2296. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-function-params.wit.result +0 -0
  2297. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-functions.wit +0 -0
  2298. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-functions.wit.result +0 -0
  2299. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface.wit +0 -0
  2300. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface.wit.result +0 -0
  2301. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2/foo.wit +0 -0
  2302. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2/foo2.wit +0 -0
  2303. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2.wit.result +0 -0
  2304. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-type.wit +0 -0
  2305. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-type.wit.result +0 -0
  2306. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-enum.wit +0 -0
  2307. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-enum.wit.result +0 -0
  2308. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-variant1.wit +0 -0
  2309. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-variant1.wit.result +0 -0
  2310. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/export-twice.wit +0 -0
  2311. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/export-twice.wit.result +0 -0
  2312. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export1.wit +0 -0
  2313. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export1.wit.result +0 -0
  2314. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export2.wit +0 -0
  2315. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export2.wit.result +0 -0
  2316. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export3.wit +0 -0
  2317. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export3.wit.result +0 -0
  2318. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export4.wit +0 -0
  2319. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export4.wit.result +0 -0
  2320. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export5.wit +0 -0
  2321. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export5.wit.result +0 -0
  2322. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-twice.wit +0 -0
  2323. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-twice.wit.result +0 -0
  2324. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-cycle.wit +0 -0
  2325. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-cycle.wit.result +0 -0
  2326. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +0 -0
  2327. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign/root.wit +0 -0
  2328. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign.wit.result +0 -0
  2329. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-id.wit +0 -0
  2330. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-id.wit.result +0 -0
  2331. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-on-id.wit +0 -0
  2332. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-on-id.wit.result +0 -0
  2333. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  2334. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  2335. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference.wit +0 -0
  2336. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -0
  2337. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference2.wit +0 -0
  2338. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -0
  2339. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include-not-found.wit +0 -0
  2340. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +0 -0
  2341. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include.wit +0 -0
  2342. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include.wit.result +0 -0
  2343. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/keyword.wit +0 -0
  2344. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/keyword.wit.result +0 -0
  2345. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/missing-package.wit +0 -0
  2346. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/missing-package.wit.result +0 -0
  2347. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/multiple-package-docs/a.wit +0 -0
  2348. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/multiple-package-docs/b.wit +0 -0
  2349. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +0 -0
  2350. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +0 -0
  2351. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +0 -0
  2352. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +0 -0
  2353. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include/root.wit +0 -0
  2354. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include.wit.result +0 -0
  2355. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -0
  2356. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle/root.wit +0 -0
  2357. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle.wit.result +0 -0
  2358. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -0
  2359. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -0
  2360. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -0
  2361. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -0
  2362. /data/ext/cargo-vendor/{wit-parser-0.202.0/tests/ui → wit-parser-0.209.1/tests/ui/parse-fail}/resources-multiple-returns-borrow.wit +0 -0
  2363. /data/ext/cargo-vendor/{wit-parser-0.202.0/tests/ui → wit-parser-0.209.1/tests/ui/parse-fail}/resources-return-borrow.wit +0 -0
  2364. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +0 -0
  2365. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +0 -0
  2366. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name.wit.result +0 -0
  2367. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/undefined-typed.wit +0 -0
  2368. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/undefined-typed.wit.result +0 -0
  2369. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unknown-interface.wit +0 -0
  2370. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unknown-interface.wit.result +0 -0
  2371. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface1.wit +0 -0
  2372. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -0
  2373. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface2.wit +0 -0
  2374. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -0
  2375. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface3.wit +0 -0
  2376. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -0
  2377. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface4.wit +0 -0
  2378. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -0
  2379. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use1.wit +0 -0
  2380. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use1.wit.result +0 -0
  2381. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -0
  2382. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  2383. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10.wit.result +0 -0
  2384. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use2.wit +0 -0
  2385. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use2.wit.result +0 -0
  2386. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use3.wit +0 -0
  2387. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use3.wit.result +0 -0
  2388. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use7.wit +0 -0
  2389. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use7.wit.result +0 -0
  2390. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use8.wit +0 -0
  2391. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use8.wit.result +0 -0
  2392. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use9.wit +0 -0
  2393. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use9.wit.result +0 -0
  2394. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
  2395. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +0 -0
  2396. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world/root.wit +0 -0
  2397. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world.wit.result +0 -0
  2398. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict.wit +0 -0
  2399. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict.wit.result +0 -0
  2400. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict2.wit +0 -0
  2401. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict2.wit.result +0 -0
  2402. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict3.wit +0 -0
  2403. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict3.wit.result +0 -0
  2404. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle1.wit +0 -0
  2405. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle1.wit.result +0 -0
  2406. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle4.wit +0 -0
  2407. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle4.wit.result +0 -0
  2408. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-shadow1.wit +0 -0
  2409. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-shadow1.wit.result +0 -0
  2410. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world/deps/bar/baz.wit +0 -0
  2411. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world/root.wit +0 -0
  2412. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world.wit.result +0 -0
  2413. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-interface-clash.wit +0 -0
  2414. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-interface-clash.wit.result +0 -0
  2415. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields2.wit +0 -0
  2416. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields2.wit.result +0 -0
  2417. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields3.wit +0 -0
  2418. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields3.wit.result +0 -0
  2419. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func.wit +0 -0
  2420. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func.wit.result +0 -0
  2421. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func2.wit +0 -0
  2422. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -0
  2423. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/random.wit +0 -0
  2424. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/random.wit.json +0 -0
  2425. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-empty.wit +0 -0
  2426. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-empty.wit.json +0 -0
  2427. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-multiple-returns-own.wit +0 -0
  2428. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-multiple-returns-own.wit.json +0 -0
  2429. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-multiple.wit +0 -0
  2430. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-multiple.wit.json +0 -0
  2431. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-return-own.wit +0 -0
  2432. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources-return-own.wit.json +0 -0
  2433. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources.wit +0 -0
  2434. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources.wit.json +0 -0
  2435. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources1.wit +0 -0
  2436. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/resources1.wit.json +0 -0
  2437. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/same-name-import-export.wit +0 -0
  2438. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/same-name-import-export.wit.json +0 -0
  2439. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/shared-types.wit +0 -0
  2440. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/simple-wasm-text.wat +0 -0
  2441. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/simple-wasm-text.wit.json +0 -0
  2442. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/stress-export-elaborate.wit +0 -0
  2443. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/type-then-eof.wit +0 -0
  2444. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/type-then-eof.wit.json +0 -0
  2445. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/types.wit +0 -0
  2446. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/types.wit.json +0 -0
  2447. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-1.wit +0 -0
  2448. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-1.wit.json +0 -0
  2449. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-2.wit +0 -0
  2450. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-2.wit.json +0 -0
  2451. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/use-chain.wit +0 -0
  2452. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/use-chain.wit.json +0 -0
  2453. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/use.wit +0 -0
  2454. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/use.wit.json +0 -0
  2455. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/versions/deps/a1/foo.wit +0 -0
  2456. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/versions/deps/a2/foo.wit +0 -0
  2457. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/versions/foo.wit +0 -0
  2458. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/versions.wit.json +0 -0
  2459. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/wasi.wit +0 -0
  2460. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/wasi.wit.json +0 -0
  2461. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-diamond.wit +0 -0
  2462. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-iface-no-collide.wit +0 -0
  2463. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import1.wit +0 -0
  2464. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import2.wit +0 -0
  2465. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import3.wit +0 -0
  2466. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-same-fields4.wit +0 -0
  2467. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-top-level-funcs.wit +0 -0
  2468. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/world-top-level-funcs.wit.json +0 -0
  2469. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/worlds-union-dedup.wit +0 -0
  2470. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.209.1}/tests/ui/worlds-with-types.wit +0 -0
@@ -0,0 +1,4550 @@
1
+ //! Types relating to type information provided by validation.
2
+
3
+ use super::{
4
+ component::{ComponentState, ExternKind},
5
+ core::Module,
6
+ };
7
+ use crate::collections::map::Entry;
8
+ use crate::prelude::*;
9
+ use crate::{validator::names::KebabString, HeapType, ValidatorId};
10
+ use crate::{
11
+ BinaryReaderError, CompositeType, Export, ExternalKind, FuncType, GlobalType, Import, Matches,
12
+ MemoryType, PackedIndex, PrimitiveValType, RecGroup, RefType, Result, SubType, TableType,
13
+ TypeRef, UnpackedIndex, ValType, WithRecGroup,
14
+ };
15
+ use alloc::sync::Arc;
16
+ use core::ops::{Deref, DerefMut, Index, Range};
17
+ use core::sync::atomic::{AtomicUsize, Ordering};
18
+ use core::{
19
+ borrow::Borrow,
20
+ hash::{Hash, Hasher},
21
+ mem,
22
+ };
23
+
24
+ /// The maximum number of parameters in the canonical ABI that can be passed by value.
25
+ ///
26
+ /// Functions that exceed this limit will instead pass parameters indirectly from
27
+ /// linear memory via a single pointer parameter.
28
+ const MAX_FLAT_FUNC_PARAMS: usize = 16;
29
+ /// The maximum number of results in the canonical ABI that can be returned by a function.
30
+ ///
31
+ /// Functions that exceed this limit have their results written to linear memory via an
32
+ /// additional pointer parameter (imports) or return a single pointer value (exports).
33
+ const MAX_FLAT_FUNC_RESULTS: usize = 1;
34
+
35
+ /// The maximum lowered types, including a possible type for a return pointer parameter.
36
+ const MAX_LOWERED_TYPES: usize = MAX_FLAT_FUNC_PARAMS + 1;
37
+
38
+ /// A simple alloc-free list of types used for calculating lowered function signatures.
39
+ pub(crate) struct LoweredTypes {
40
+ types: [ValType; MAX_LOWERED_TYPES],
41
+ len: usize,
42
+ max: usize,
43
+ }
44
+
45
+ impl LoweredTypes {
46
+ fn new(max: usize) -> Self {
47
+ assert!(max <= MAX_LOWERED_TYPES);
48
+ Self {
49
+ types: [ValType::I32; MAX_LOWERED_TYPES],
50
+ len: 0,
51
+ max,
52
+ }
53
+ }
54
+
55
+ fn len(&self) -> usize {
56
+ self.len
57
+ }
58
+
59
+ fn maxed(&self) -> bool {
60
+ self.len == self.max
61
+ }
62
+
63
+ fn get_mut(&mut self, index: usize) -> Option<&mut ValType> {
64
+ if index < self.len {
65
+ Some(&mut self.types[index])
66
+ } else {
67
+ None
68
+ }
69
+ }
70
+
71
+ fn push(&mut self, ty: ValType) -> bool {
72
+ if self.maxed() {
73
+ return false;
74
+ }
75
+
76
+ self.types[self.len] = ty;
77
+ self.len += 1;
78
+ true
79
+ }
80
+
81
+ fn clear(&mut self) {
82
+ self.len = 0;
83
+ }
84
+
85
+ pub fn as_slice(&self) -> &[ValType] {
86
+ &self.types[..self.len]
87
+ }
88
+
89
+ pub fn iter(&self) -> impl Iterator<Item = ValType> + '_ {
90
+ self.as_slice().iter().copied()
91
+ }
92
+ }
93
+
94
+ /// Represents information about a component function type lowering.
95
+ pub(crate) struct LoweringInfo {
96
+ pub(crate) params: LoweredTypes,
97
+ pub(crate) results: LoweredTypes,
98
+ pub(crate) requires_memory: bool,
99
+ pub(crate) requires_realloc: bool,
100
+ }
101
+
102
+ impl LoweringInfo {
103
+ pub(crate) fn into_func_type(self) -> FuncType {
104
+ FuncType::new(
105
+ self.params.as_slice().iter().copied(),
106
+ self.results.as_slice().iter().copied(),
107
+ )
108
+ }
109
+ }
110
+
111
+ impl Default for LoweringInfo {
112
+ fn default() -> Self {
113
+ Self {
114
+ params: LoweredTypes::new(MAX_FLAT_FUNC_PARAMS),
115
+ results: LoweredTypes::new(MAX_FLAT_FUNC_RESULTS),
116
+ requires_memory: false,
117
+ requires_realloc: false,
118
+ }
119
+ }
120
+ }
121
+
122
+ fn push_primitive_wasm_types(ty: &PrimitiveValType, lowered_types: &mut LoweredTypes) -> bool {
123
+ match ty {
124
+ PrimitiveValType::Bool
125
+ | PrimitiveValType::S8
126
+ | PrimitiveValType::U8
127
+ | PrimitiveValType::S16
128
+ | PrimitiveValType::U16
129
+ | PrimitiveValType::S32
130
+ | PrimitiveValType::U32
131
+ | PrimitiveValType::Char => lowered_types.push(ValType::I32),
132
+ PrimitiveValType::S64 | PrimitiveValType::U64 => lowered_types.push(ValType::I64),
133
+ PrimitiveValType::F32 => lowered_types.push(ValType::F32),
134
+ PrimitiveValType::F64 => lowered_types.push(ValType::F64),
135
+ PrimitiveValType::String => {
136
+ lowered_types.push(ValType::I32) && lowered_types.push(ValType::I32)
137
+ }
138
+ }
139
+ }
140
+
141
+ /// A trait shared by all type identifiers.
142
+ ///
143
+ /// Any id that can be used to get a type from a `Types`.
144
+ //
145
+ // Or, internally, from a `TypeList`.
146
+ pub trait TypeIdentifier: core::fmt::Debug + Copy + Eq + Sized + 'static {
147
+ /// The data pointed to by this type of id.
148
+ type Data: TypeData<Id = Self>;
149
+
150
+ /// Create a type id from an index.
151
+ #[doc(hidden)]
152
+ fn from_index(index: u32) -> Self;
153
+
154
+ /// Get a shared reference to the list where this id's type data is stored
155
+ /// within.
156
+ #[doc(hidden)]
157
+ fn list(types: &TypeList) -> &SnapshotList<Self::Data>;
158
+
159
+ /// Get an exclusive reference to the list where this id's type data is
160
+ /// stored within.
161
+ #[doc(hidden)]
162
+ fn list_mut(types: &mut TypeList) -> &mut SnapshotList<Self::Data>;
163
+
164
+ /// The raw index of this id.
165
+ #[doc(hidden)]
166
+ fn index(&self) -> usize;
167
+ }
168
+
169
+ /// A trait shared by all types within a `Types`.
170
+ ///
171
+ /// This is the data that can be retreived by indexing with the associated
172
+ /// [`TypeIdentifier`].
173
+ pub trait TypeData: core::fmt::Debug {
174
+ /// The identifier for this type data.
175
+ type Id: TypeIdentifier<Data = Self>;
176
+
177
+ /// Get the info for this type.
178
+ #[doc(hidden)]
179
+ fn type_info(&self, types: &TypeList) -> TypeInfo;
180
+ }
181
+
182
+ /// A type that can be aliased in the component model.
183
+ pub trait Aliasable {
184
+ #[doc(hidden)]
185
+ fn alias_id(&self) -> u32;
186
+
187
+ #[doc(hidden)]
188
+ fn set_alias_id(&mut self, alias_id: u32);
189
+ }
190
+
191
+ /// A fresh alias id that means the entity is not an alias of anything.
192
+ ///
193
+ /// Note that the `TypeList::alias_counter` starts at zero, so we can't use that
194
+ /// as this sentinel. The implementation limits are such that we can't ever
195
+ /// generate `u32::MAX` aliases, so we don't need to worryabout running into
196
+ /// this value in practice either.
197
+ const NO_ALIAS: u32 = u32::MAX;
198
+
199
+ macro_rules! define_type_id {
200
+ ($name:ident, $data:ty, $list:ident, $type_str:expr) => {
201
+ #[doc = "Represents a unique identifier for a "]
202
+ #[doc = $type_str]
203
+ #[doc = " type known to a [`crate::Validator`]."]
204
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
205
+ #[repr(C)] // Use fixed field layout to ensure minimal size.
206
+ pub struct $name {
207
+ /// The index into the associated list of types.
208
+ index: u32,
209
+ }
210
+
211
+ impl TypeIdentifier for $name {
212
+ type Data = $data;
213
+
214
+ fn from_index(index: u32) -> Self {
215
+ $name { index }
216
+ }
217
+
218
+ fn list(types: &TypeList) -> &SnapshotList<Self::Data> {
219
+ &types.$list
220
+ }
221
+
222
+ fn list_mut(types: &mut TypeList) -> &mut SnapshotList<Self::Data> {
223
+ &mut types.$list
224
+ }
225
+
226
+ fn index(&self) -> usize {
227
+ usize::try_from(self.index).unwrap()
228
+ }
229
+ }
230
+
231
+ impl Aliasable for $name {
232
+ fn alias_id(&self) -> u32 {
233
+ NO_ALIAS
234
+ }
235
+
236
+ fn set_alias_id(&mut self, _: u32) {}
237
+ }
238
+
239
+ // The size of type IDs was seen to have a large-ish impact in #844, so
240
+ // this assert ensures that it stays relatively small.
241
+ const _: () = {
242
+ assert!(core::mem::size_of::<$name>() <= 4);
243
+ };
244
+ };
245
+ }
246
+
247
+ /// A core WebAssembly type, in the core WebAssembly types index space.
248
+ pub enum CoreType {
249
+ /// A sub type.
250
+ Sub(SubType),
251
+
252
+ /// A module type.
253
+ ///
254
+ /// Does not actually appear in core Wasm at the moment. Only used for the
255
+ /// core types index space within components.
256
+ Module(ModuleType),
257
+ }
258
+
259
+ /// Represents a unique identifier for a core type type known to a
260
+ /// [`crate::Validator`]
261
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
262
+ #[repr(C)]
263
+ pub struct CoreTypeId {
264
+ index: u32,
265
+ }
266
+
267
+ const _: () = {
268
+ assert!(core::mem::size_of::<CoreTypeId>() <= 4);
269
+ };
270
+
271
+ impl TypeIdentifier for CoreTypeId {
272
+ type Data = SubType;
273
+
274
+ fn from_index(index: u32) -> Self {
275
+ CoreTypeId { index }
276
+ }
277
+
278
+ fn list(types: &TypeList) -> &SnapshotList<Self::Data> {
279
+ &types.core_types
280
+ }
281
+
282
+ fn list_mut(types: &mut TypeList) -> &mut SnapshotList<Self::Data> {
283
+ &mut types.core_types
284
+ }
285
+
286
+ fn index(&self) -> usize {
287
+ usize::try_from(self.index).unwrap()
288
+ }
289
+ }
290
+
291
+ impl TypeData for SubType {
292
+ type Id = CoreTypeId;
293
+
294
+ fn type_info(&self, _types: &TypeList) -> TypeInfo {
295
+ // TODO(#1036): calculate actual size for func, array, struct.
296
+ let size = 1 + match &self.composite_type {
297
+ CompositeType::Func(ty) => 1 + (ty.params().len() + ty.results().len()) as u32,
298
+ CompositeType::Array(_) => 2,
299
+ CompositeType::Struct(ty) => 1 + 2 * ty.fields.len() as u32,
300
+ };
301
+ TypeInfo::core(size)
302
+ }
303
+ }
304
+
305
+ impl CoreType {
306
+ /// Get the underlying `SubType` or panic.
307
+ pub fn unwrap_sub(&self) -> &SubType {
308
+ match self {
309
+ CoreType::Sub(s) => s,
310
+ CoreType::Module(_) => panic!("`unwrap_sub` on module type"),
311
+ }
312
+ }
313
+
314
+ /// Get the underlying `FuncType` within this `SubType` or panic.
315
+ pub fn unwrap_func(&self) -> &FuncType {
316
+ match &self.unwrap_sub().composite_type {
317
+ CompositeType::Func(f) => f,
318
+ CompositeType::Array(_) | CompositeType::Struct(_) => {
319
+ panic!("`unwrap_func` on non-func composite type")
320
+ }
321
+ }
322
+ }
323
+
324
+ /// Get the underlying `ModuleType` or panic.
325
+ pub fn unwrap_module(&self) -> &ModuleType {
326
+ match self {
327
+ CoreType::Module(m) => m,
328
+ CoreType::Sub(_) => panic!("`unwrap_module` on a subtype"),
329
+ }
330
+ }
331
+ }
332
+
333
+ macro_rules! define_wrapper_id {
334
+ (
335
+ $(#[$outer_attrs:meta])*
336
+ pub enum $name:ident {
337
+ $(
338
+ #[unwrap = $unwrap:ident]
339
+ $(#[$inner_attrs:meta])*
340
+ $variant:ident ( $inner:ty ) ,
341
+ )*
342
+ }
343
+ ) => {
344
+ $(#[$outer_attrs])*
345
+ pub enum $name {
346
+ $(
347
+ $(#[$inner_attrs])*
348
+ $variant ( $inner ) ,
349
+ )*
350
+ }
351
+
352
+ $(
353
+ impl From<$inner> for $name {
354
+ #[inline]
355
+ fn from(x: $inner) -> Self {
356
+ Self::$variant(x)
357
+ }
358
+ }
359
+
360
+ impl TryFrom<$name> for $inner {
361
+ type Error = ();
362
+
363
+ #[inline]
364
+ fn try_from(x: $name) -> Result<Self, Self::Error> {
365
+ match x {
366
+ $name::$variant(x) => Ok(x),
367
+ _ => Err(())
368
+ }
369
+ }
370
+ }
371
+ )*
372
+
373
+ impl $name {
374
+ $(
375
+ #[doc = "Unwrap a `"]
376
+ #[doc = stringify!($inner)]
377
+ #[doc = "` or panic."]
378
+ #[inline]
379
+ pub fn $unwrap(self) -> $inner {
380
+ <$inner>::try_from(self).unwrap()
381
+ }
382
+ )*
383
+ }
384
+ };
385
+ }
386
+
387
+ macro_rules! define_transitive_conversions {
388
+ (
389
+ $(
390
+ $outer:ty,
391
+ $middle:ty,
392
+ $inner:ty,
393
+ $unwrap:ident;
394
+ )*
395
+ ) => {
396
+ $(
397
+ impl From<$inner> for $outer {
398
+ #[inline]
399
+ fn from(x: $inner) -> Self {
400
+ <$middle>::from(x).into()
401
+ }
402
+ }
403
+
404
+ impl TryFrom<$outer> for $inner {
405
+ type Error = ();
406
+
407
+ #[inline]
408
+ fn try_from(x: $outer) -> Result<Self, Self::Error> {
409
+ let middle = <$middle>::try_from(x)?;
410
+ <$inner>::try_from(middle)
411
+ }
412
+ }
413
+
414
+ impl $outer {
415
+ #[doc = "Unwrap a `"]
416
+ #[doc = stringify!($inner)]
417
+ #[doc = "` or panic."]
418
+ #[inline]
419
+ pub fn $unwrap(self) -> $inner {
420
+ <$inner>::try_from(self).unwrap()
421
+ }
422
+ }
423
+ )*
424
+ };
425
+ }
426
+
427
+ define_wrapper_id! {
428
+ /// An identifier pointing to any kind of type, component or core.
429
+ #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
430
+ pub enum AnyTypeId {
431
+ #[unwrap = unwrap_component_core_type]
432
+ /// A core type.
433
+ Core(ComponentCoreTypeId),
434
+
435
+ #[unwrap = unwrap_component_any_type]
436
+ /// A component type.
437
+ Component(ComponentAnyTypeId),
438
+ }
439
+ }
440
+
441
+ define_transitive_conversions! {
442
+ AnyTypeId, ComponentCoreTypeId, CoreTypeId, unwrap_core_type;
443
+ AnyTypeId, ComponentCoreTypeId, ComponentCoreModuleTypeId, unwrap_component_core_module_type;
444
+ AnyTypeId, ComponentAnyTypeId, AliasableResourceId, unwrap_aliasable_resource;
445
+ AnyTypeId, ComponentAnyTypeId, ComponentDefinedTypeId, unwrap_component_defined_type;
446
+ AnyTypeId, ComponentAnyTypeId, ComponentFuncTypeId, unwrap_component_func_type;
447
+ AnyTypeId, ComponentAnyTypeId, ComponentInstanceTypeId, unwrap_component_instance_type;
448
+ AnyTypeId, ComponentAnyTypeId, ComponentTypeId, unwrap_component_type;
449
+ }
450
+
451
+ impl AnyTypeId {
452
+ /// Peel off one layer of aliasing from this type and return the aliased
453
+ /// inner type, or `None` if this type is not aliasing anything.
454
+ pub fn peel_alias(&self, types: &Types) -> Option<Self> {
455
+ match *self {
456
+ Self::Core(id) => id.peel_alias(types).map(Self::Core),
457
+ Self::Component(id) => types.peel_alias(id).map(Self::Component),
458
+ }
459
+ }
460
+ }
461
+
462
+ define_wrapper_id! {
463
+ /// An identifier for a core type or a core module's type.
464
+ #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
465
+ pub enum ComponentCoreTypeId {
466
+ #[unwrap = unwrap_sub]
467
+ /// A core type.
468
+ Sub(CoreTypeId),
469
+
470
+ #[unwrap = unwrap_module]
471
+ /// A core module's type.
472
+ Module(ComponentCoreModuleTypeId),
473
+ }
474
+ }
475
+
476
+ impl ComponentCoreTypeId {
477
+ /// Peel off one layer of aliasing from this type and return the aliased
478
+ /// inner type, or `None` if this type is not aliasing anything.
479
+ pub fn peel_alias(&self, types: &Types) -> Option<Self> {
480
+ match *self {
481
+ Self::Sub(_) => None,
482
+ Self::Module(id) => types.peel_alias(id).map(Self::Module),
483
+ }
484
+ }
485
+ }
486
+
487
+ /// An aliasable resource identifier.
488
+ #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
489
+ pub struct AliasableResourceId {
490
+ id: ResourceId,
491
+ alias_id: u32,
492
+ }
493
+
494
+ impl Aliasable for AliasableResourceId {
495
+ fn alias_id(&self) -> u32 {
496
+ self.alias_id
497
+ }
498
+
499
+ fn set_alias_id(&mut self, alias_id: u32) {
500
+ self.alias_id = alias_id;
501
+ }
502
+ }
503
+
504
+ impl AliasableResourceId {
505
+ /// Create a new instance with the specified resource ID and `self`'s alias
506
+ /// ID.
507
+ pub fn with_resource_id(&self, id: ResourceId) -> Self {
508
+ Self {
509
+ id,
510
+ alias_id: self.alias_id,
511
+ }
512
+ }
513
+
514
+ /// Get the underlying resource.
515
+ pub fn resource(&self) -> ResourceId {
516
+ self.id
517
+ }
518
+
519
+ pub(crate) fn resource_mut(&mut self) -> &mut ResourceId {
520
+ &mut self.id
521
+ }
522
+ }
523
+
524
+ define_wrapper_id! {
525
+ /// An identifier for any kind of component type.
526
+ #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
527
+ pub enum ComponentAnyTypeId {
528
+ #[unwrap = unwrap_resource]
529
+ /// The type is a resource with the specified id.
530
+ Resource(AliasableResourceId),
531
+
532
+ #[unwrap = unwrap_defined]
533
+ /// The type is a defined type with the specified id.
534
+ Defined(ComponentDefinedTypeId),
535
+
536
+ #[unwrap = unwrap_func]
537
+ /// The type is a function type with the specified id.
538
+ Func(ComponentFuncTypeId),
539
+
540
+ #[unwrap = unwrap_instance]
541
+ /// The type is an instance type with the specified id.
542
+ Instance(ComponentInstanceTypeId),
543
+
544
+ #[unwrap = unwrap_component]
545
+ /// The type is a component type with the specified id.
546
+ Component(ComponentTypeId),
547
+ }
548
+ }
549
+
550
+ impl Aliasable for ComponentAnyTypeId {
551
+ fn alias_id(&self) -> u32 {
552
+ match self {
553
+ ComponentAnyTypeId::Resource(x) => x.alias_id(),
554
+ ComponentAnyTypeId::Defined(x) => x.alias_id(),
555
+ ComponentAnyTypeId::Func(x) => x.alias_id(),
556
+ ComponentAnyTypeId::Instance(x) => x.alias_id(),
557
+ ComponentAnyTypeId::Component(x) => x.alias_id(),
558
+ }
559
+ }
560
+
561
+ fn set_alias_id(&mut self, alias_id: u32) {
562
+ match self {
563
+ ComponentAnyTypeId::Resource(x) => x.set_alias_id(alias_id),
564
+ ComponentAnyTypeId::Defined(x) => x.set_alias_id(alias_id),
565
+ ComponentAnyTypeId::Func(x) => x.set_alias_id(alias_id),
566
+ ComponentAnyTypeId::Instance(x) => x.set_alias_id(alias_id),
567
+ ComponentAnyTypeId::Component(x) => x.set_alias_id(alias_id),
568
+ }
569
+ }
570
+ }
571
+
572
+ impl ComponentAnyTypeId {
573
+ pub(crate) fn info(&self, types: &TypeList) -> TypeInfo {
574
+ match *self {
575
+ Self::Resource(_) => TypeInfo::new(),
576
+ Self::Defined(id) => types[id].type_info(types),
577
+ Self::Func(id) => types[id].type_info(types),
578
+ Self::Instance(id) => types[id].type_info(types),
579
+ Self::Component(id) => types[id].type_info(types),
580
+ }
581
+ }
582
+
583
+ pub(crate) fn desc(&self) -> &'static str {
584
+ match self {
585
+ Self::Resource(_) => "resource",
586
+ Self::Defined(_) => "defined type",
587
+ Self::Func(_) => "func",
588
+ Self::Instance(_) => "instance",
589
+ Self::Component(_) => "component",
590
+ }
591
+ }
592
+ }
593
+
594
+ define_type_id!(
595
+ RecGroupId,
596
+ Range<CoreTypeId>,
597
+ rec_group_elements,
598
+ "recursion group"
599
+ );
600
+
601
+ impl TypeData for Range<CoreTypeId> {
602
+ type Id = RecGroupId;
603
+
604
+ fn type_info(&self, _types: &TypeList) -> TypeInfo {
605
+ let size = self.end.index() - self.start.index();
606
+ TypeInfo::core(u32::try_from(size).unwrap())
607
+ }
608
+ }
609
+
610
+ define_type_id!(ComponentTypeId, ComponentType, components, "component");
611
+
612
+ define_type_id!(
613
+ ComponentValueTypeId,
614
+ ComponentValType,
615
+ component_values,
616
+ "component value"
617
+ );
618
+
619
+ define_type_id!(
620
+ ComponentInstanceTypeId,
621
+ ComponentInstanceType,
622
+ component_instances,
623
+ "component instance"
624
+ );
625
+
626
+ define_type_id!(
627
+ ComponentFuncTypeId,
628
+ ComponentFuncType,
629
+ component_funcs,
630
+ "component function"
631
+ );
632
+
633
+ define_type_id!(
634
+ ComponentCoreInstanceTypeId,
635
+ InstanceType,
636
+ core_instances,
637
+ "component's core instance"
638
+ );
639
+
640
+ define_type_id!(
641
+ ComponentCoreModuleTypeId,
642
+ ModuleType,
643
+ core_modules,
644
+ "component's core module"
645
+ );
646
+
647
+ /// Represents a unique identifier for a component type type known to a
648
+ /// [`crate::Validator`].
649
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
650
+ #[repr(C)]
651
+ pub struct ComponentDefinedTypeId {
652
+ index: u32,
653
+ alias_id: u32,
654
+ }
655
+
656
+ const _: () = {
657
+ assert!(core::mem::size_of::<ComponentDefinedTypeId>() <= 8);
658
+ };
659
+
660
+ impl TypeIdentifier for ComponentDefinedTypeId {
661
+ type Data = ComponentDefinedType;
662
+
663
+ fn from_index(index: u32) -> Self {
664
+ ComponentDefinedTypeId {
665
+ index,
666
+ alias_id: NO_ALIAS,
667
+ }
668
+ }
669
+
670
+ fn list(types: &TypeList) -> &SnapshotList<Self::Data> {
671
+ &types.component_defined_types
672
+ }
673
+
674
+ fn list_mut(types: &mut TypeList) -> &mut SnapshotList<Self::Data> {
675
+ &mut types.component_defined_types
676
+ }
677
+
678
+ fn index(&self) -> usize {
679
+ usize::try_from(self.index).unwrap()
680
+ }
681
+ }
682
+
683
+ impl Aliasable for ComponentDefinedTypeId {
684
+ fn alias_id(&self) -> u32 {
685
+ self.alias_id
686
+ }
687
+
688
+ fn set_alias_id(&mut self, alias_id: u32) {
689
+ self.alias_id = alias_id;
690
+ }
691
+ }
692
+
693
+ /// Metadata about a type and its transitive structure.
694
+ ///
695
+ /// Currently contains two properties:
696
+ ///
697
+ /// * The "size" of a type - a proxy to the recursive size of a type if
698
+ /// everything in the type were unique (e.g. no shared references). Not an
699
+ /// approximation of runtime size, but instead of type-complexity size if
700
+ /// someone were to visit each element of the type individually. For example
701
+ /// `u32` has size 1 and `(list u32)` has size 2 (roughly). Used to prevent
702
+ /// massive trees of types.
703
+ ///
704
+ /// * Whether or not a type contains a "borrow" transitively inside of it. For
705
+ /// example `(borrow $t)` and `(list (borrow $t))` both contain borrows, but
706
+ /// `(list u32)` does not. Used to validate that component function results do
707
+ /// not contain borrows.
708
+ ///
709
+ /// Currently this is represented as a compact 32-bit integer to ensure that
710
+ /// `TypeId`, which this is stored in, remains relatively small. The maximum
711
+ /// type size allowed in wasmparser is 1M at this time which is 20 bits of
712
+ /// information, and then one more bit is used for whether or not a borrow is
713
+ /// used. Currently this uses the low 24 bits for the type size and the MSB for
714
+ /// the borrow bit.
715
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
716
+ // Only public because it shows up in a public trait's `doc(hidden)` method.
717
+ #[doc(hidden)]
718
+ pub struct TypeInfo(u32);
719
+
720
+ impl TypeInfo {
721
+ /// Creates a new blank set of type information.
722
+ ///
723
+ /// Defaults to size 1 to ensure that this consumes space in the final type
724
+ /// structure.
725
+ pub(crate) fn new() -> TypeInfo {
726
+ TypeInfo::_new(1, false)
727
+ }
728
+
729
+ /// Creates a new blank set of information about a leaf "borrow" type which
730
+ /// has size 1.
731
+ pub(crate) fn borrow() -> TypeInfo {
732
+ TypeInfo::_new(1, true)
733
+ }
734
+
735
+ /// Creates type information corresponding to a core type of the `size`
736
+ /// specified, meaning no borrows are contained within.
737
+ pub(crate) fn core(size: u32) -> TypeInfo {
738
+ TypeInfo::_new(size, false)
739
+ }
740
+
741
+ fn _new(size: u32, contains_borrow: bool) -> TypeInfo {
742
+ assert!(size < (1 << 24));
743
+ TypeInfo(size | ((contains_borrow as u32) << 31))
744
+ }
745
+
746
+ /// Combines another set of type information into this one, for example if
747
+ /// this is a record which has `other` as a field.
748
+ ///
749
+ /// Updates the size of `self` and whether or not this type contains a
750
+ /// borrow based on whether `other` contains a borrow.
751
+ ///
752
+ /// Returns an error if the type size would exceed this crate's static limit
753
+ /// of a type size.
754
+ pub(crate) fn combine(&mut self, other: TypeInfo, offset: usize) -> Result<()> {
755
+ *self = TypeInfo::_new(
756
+ super::combine_type_sizes(self.size(), other.size(), offset)?,
757
+ self.contains_borrow() || other.contains_borrow(),
758
+ );
759
+ Ok(())
760
+ }
761
+
762
+ pub(crate) fn size(&self) -> u32 {
763
+ self.0 & 0xffffff
764
+ }
765
+
766
+ pub(crate) fn contains_borrow(&self) -> bool {
767
+ (self.0 >> 31) != 0
768
+ }
769
+ }
770
+
771
+ /// A component value type.
772
+ #[derive(Debug, Clone, Copy)]
773
+ pub enum ComponentValType {
774
+ /// The value type is one of the primitive types.
775
+ Primitive(PrimitiveValType),
776
+ /// The type is represented with the given type identifier.
777
+ Type(ComponentDefinedTypeId),
778
+ }
779
+
780
+ impl TypeData for ComponentValType {
781
+ type Id = ComponentValueTypeId;
782
+
783
+ fn type_info(&self, types: &TypeList) -> TypeInfo {
784
+ match self {
785
+ ComponentValType::Primitive(_) => TypeInfo::new(),
786
+ ComponentValType::Type(id) => types[*id].type_info(types),
787
+ }
788
+ }
789
+ }
790
+
791
+ impl ComponentValType {
792
+ pub(crate) fn contains_ptr(&self, types: &TypeList) -> bool {
793
+ match self {
794
+ ComponentValType::Primitive(ty) => ty.contains_ptr(),
795
+ ComponentValType::Type(ty) => types[*ty].contains_ptr(types),
796
+ }
797
+ }
798
+
799
+ fn push_wasm_types(&self, types: &TypeList, lowered_types: &mut LoweredTypes) -> bool {
800
+ match self {
801
+ Self::Primitive(ty) => push_primitive_wasm_types(ty, lowered_types),
802
+ Self::Type(id) => types[*id].push_wasm_types(types, lowered_types),
803
+ }
804
+ }
805
+
806
+ pub(crate) fn info(&self, types: &TypeList) -> TypeInfo {
807
+ match self {
808
+ Self::Primitive(_) => TypeInfo::new(),
809
+ Self::Type(id) => types[*id].type_info(types),
810
+ }
811
+ }
812
+ }
813
+
814
+ /// The entity type for imports and exports of a module.
815
+ #[derive(Debug, Clone, Copy)]
816
+ pub enum EntityType {
817
+ /// The entity is a function.
818
+ Func(CoreTypeId),
819
+ /// The entity is a table.
820
+ Table(TableType),
821
+ /// The entity is a memory.
822
+ Memory(MemoryType),
823
+ /// The entity is a global.
824
+ Global(GlobalType),
825
+ /// The entity is a tag.
826
+ Tag(CoreTypeId),
827
+ }
828
+
829
+ impl EntityType {
830
+ pub(crate) fn desc(&self) -> &'static str {
831
+ match self {
832
+ Self::Func(_) => "func",
833
+ Self::Table(_) => "table",
834
+ Self::Memory(_) => "memory",
835
+ Self::Global(_) => "global",
836
+ Self::Tag(_) => "tag",
837
+ }
838
+ }
839
+
840
+ pub(crate) fn info(&self, types: &TypeList) -> TypeInfo {
841
+ match self {
842
+ Self::Func(id) | Self::Tag(id) => types[*id].type_info(types),
843
+ Self::Table(_) | Self::Memory(_) | Self::Global(_) => TypeInfo::new(),
844
+ }
845
+ }
846
+ }
847
+
848
+ trait ModuleImportKey {
849
+ fn module(&self) -> &str;
850
+ fn name(&self) -> &str;
851
+ }
852
+
853
+ impl<'a> Borrow<dyn ModuleImportKey + 'a> for (String, String) {
854
+ fn borrow(&self) -> &(dyn ModuleImportKey + 'a) {
855
+ self
856
+ }
857
+ }
858
+
859
+ impl Hash for (dyn ModuleImportKey + '_) {
860
+ fn hash<H: Hasher>(&self, state: &mut H) {
861
+ self.module().hash(state);
862
+ self.name().hash(state);
863
+ }
864
+ }
865
+
866
+ impl PartialEq for (dyn ModuleImportKey + '_) {
867
+ fn eq(&self, other: &Self) -> bool {
868
+ self.module() == other.module() && self.name() == other.name()
869
+ }
870
+ }
871
+
872
+ impl Eq for (dyn ModuleImportKey + '_) {}
873
+
874
+ impl Ord for (dyn ModuleImportKey + '_) {
875
+ fn cmp(&self, other: &Self) -> core::cmp::Ordering {
876
+ match self.module().cmp(other.module()) {
877
+ core::cmp::Ordering::Equal => (),
878
+ order => return order,
879
+ };
880
+ self.name().cmp(other.name())
881
+ }
882
+ }
883
+
884
+ impl PartialOrd for (dyn ModuleImportKey + '_) {
885
+ fn partial_cmp(&self, other: &Self) -> Option<core::cmp::Ordering> {
886
+ Some(self.cmp(other))
887
+ }
888
+ }
889
+
890
+ impl ModuleImportKey for (String, String) {
891
+ fn module(&self) -> &str {
892
+ &self.0
893
+ }
894
+
895
+ fn name(&self) -> &str {
896
+ &self.1
897
+ }
898
+ }
899
+
900
+ impl ModuleImportKey for (&str, &str) {
901
+ fn module(&self) -> &str {
902
+ self.0
903
+ }
904
+
905
+ fn name(&self) -> &str {
906
+ self.1
907
+ }
908
+ }
909
+
910
+ /// Represents a core module type.
911
+ #[derive(Debug, Clone)]
912
+ pub struct ModuleType {
913
+ /// Metadata about this module type
914
+ pub(crate) info: TypeInfo,
915
+ /// The imports of the module type.
916
+ pub imports: IndexMap<(String, String), EntityType>,
917
+ /// The exports of the module type.
918
+ pub exports: IndexMap<String, EntityType>,
919
+ }
920
+
921
+ impl TypeData for ModuleType {
922
+ type Id = ComponentCoreModuleTypeId;
923
+
924
+ fn type_info(&self, _types: &TypeList) -> TypeInfo {
925
+ self.info
926
+ }
927
+ }
928
+
929
+ impl ModuleType {
930
+ /// Looks up an import by its module and name.
931
+ ///
932
+ /// Returns `None` if the import was not found.
933
+ pub fn lookup_import(&self, module: &str, name: &str) -> Option<&EntityType> {
934
+ self.imports.get(&(module, name) as &dyn ModuleImportKey)
935
+ }
936
+ }
937
+
938
+ /// Represents the kind of module instance type.
939
+ #[derive(Debug, Clone)]
940
+ pub enum CoreInstanceTypeKind {
941
+ /// The instance type is the result of instantiating a module type.
942
+ Instantiated(ComponentCoreModuleTypeId),
943
+
944
+ /// The instance type is the result of instantiating from exported items.
945
+ Exports(IndexMap<String, EntityType>),
946
+ }
947
+
948
+ /// Represents a module instance type.
949
+ #[derive(Debug, Clone)]
950
+ pub struct InstanceType {
951
+ /// Metadata about this instance type
952
+ pub(crate) info: TypeInfo,
953
+ /// The kind of module instance type.
954
+ pub kind: CoreInstanceTypeKind,
955
+ }
956
+
957
+ impl TypeData for InstanceType {
958
+ type Id = ComponentCoreInstanceTypeId;
959
+
960
+ fn type_info(&self, _types: &TypeList) -> TypeInfo {
961
+ self.info
962
+ }
963
+ }
964
+
965
+ impl InstanceType {
966
+ /// Gets the exports of the instance type.
967
+ pub fn exports<'a>(&'a self, types: TypesRef<'a>) -> &'a IndexMap<String, EntityType> {
968
+ self.internal_exports(types.list)
969
+ }
970
+
971
+ pub(crate) fn internal_exports<'a>(
972
+ &'a self,
973
+ types: &'a TypeList,
974
+ ) -> &'a IndexMap<String, EntityType> {
975
+ match &self.kind {
976
+ CoreInstanceTypeKind::Instantiated(id) => &types[*id].exports,
977
+ CoreInstanceTypeKind::Exports(exports) => exports,
978
+ }
979
+ }
980
+ }
981
+
982
+ /// The entity type for imports and exports of a component.
983
+ #[derive(Debug, Clone, Copy)]
984
+ pub enum ComponentEntityType {
985
+ /// The entity is a core module.
986
+ Module(ComponentCoreModuleTypeId),
987
+ /// The entity is a function.
988
+ Func(ComponentFuncTypeId),
989
+ /// The entity is a value.
990
+ Value(ComponentValType),
991
+ /// The entity is a type.
992
+ Type {
993
+ /// This is the identifier of the type that was referenced when this
994
+ /// entity was created.
995
+ referenced: ComponentAnyTypeId,
996
+ /// This is the identifier of the type that was created when this type
997
+ /// was imported or exported from the component.
998
+ ///
999
+ /// Note that the underlying type information for the `referenced`
1000
+ /// field and for this `created` field is the same, but these two types
1001
+ /// will hash to different values.
1002
+ created: ComponentAnyTypeId,
1003
+ },
1004
+ /// The entity is a component instance.
1005
+ Instance(ComponentInstanceTypeId),
1006
+ /// The entity is a component.
1007
+ Component(ComponentTypeId),
1008
+ }
1009
+
1010
+ impl ComponentEntityType {
1011
+ /// Determines if component entity type `a` is a subtype of `b`.
1012
+ pub fn is_subtype_of(a: &Self, at: TypesRef, b: &Self, bt: TypesRef) -> bool {
1013
+ SubtypeCx::new(at.list, bt.list)
1014
+ .component_entity_type(a, b, 0)
1015
+ .is_ok()
1016
+ }
1017
+
1018
+ pub(crate) fn desc(&self) -> &'static str {
1019
+ match self {
1020
+ Self::Module(_) => "module",
1021
+ Self::Func(_) => "func",
1022
+ Self::Value(_) => "value",
1023
+ Self::Type { .. } => "type",
1024
+ Self::Instance(_) => "instance",
1025
+ Self::Component(_) => "component",
1026
+ }
1027
+ }
1028
+
1029
+ pub(crate) fn info(&self, types: &TypeList) -> TypeInfo {
1030
+ match self {
1031
+ Self::Module(ty) => types[*ty].type_info(types),
1032
+ Self::Func(ty) => types[*ty].type_info(types),
1033
+ Self::Type { referenced: ty, .. } => ty.info(types),
1034
+ Self::Instance(ty) => types[*ty].type_info(types),
1035
+ Self::Component(ty) => types[*ty].type_info(types),
1036
+ Self::Value(ty) => ty.info(types),
1037
+ }
1038
+ }
1039
+ }
1040
+
1041
+ /// Represents a type of a component.
1042
+ #[derive(Debug, Clone)]
1043
+ pub struct ComponentType {
1044
+ /// Metadata about this component type
1045
+ pub(crate) info: TypeInfo,
1046
+
1047
+ /// The imports of the component type.
1048
+ ///
1049
+ /// Each import has its own kebab-name and an optional URL listed. Note that
1050
+ /// the set of import names is disjoint with the set of export names.
1051
+ pub imports: IndexMap<String, ComponentEntityType>,
1052
+
1053
+ /// The exports of the component type.
1054
+ ///
1055
+ /// Each export has its own kebab-name and an optional URL listed. Note that
1056
+ /// the set of export names is disjoint with the set of import names.
1057
+ pub exports: IndexMap<String, ComponentEntityType>,
1058
+
1059
+ /// Universally quantified resources required to be provided when
1060
+ /// instantiating this component type.
1061
+ ///
1062
+ /// Each resource in this map is explicitly imported somewhere in the
1063
+ /// `imports` map. The "path" to where it's imported is specified by the
1064
+ /// `Vec<usize>` payload here. For more information about the indexes see
1065
+ /// the documentation on `ComponentState::imported_resources`.
1066
+ ///
1067
+ /// This should technically be inferrable from the structure of `imports`,
1068
+ /// but it's stored as an auxiliary set for subtype checking and
1069
+ /// instantiation.
1070
+ ///
1071
+ /// Note that this is not a set of all resources referred to by the
1072
+ /// `imports`. Instead it's only those created, relative to the internals of
1073
+ /// this component, by the imports.
1074
+ pub imported_resources: Vec<(ResourceId, Vec<usize>)>,
1075
+
1076
+ /// The dual of the `imported_resources`, or the set of defined
1077
+ /// resources -- those created through the instantiation process which are
1078
+ /// unique to this component.
1079
+ ///
1080
+ /// This set is similar to the `imported_resources` set but it's those
1081
+ /// contained within the `exports`. Instantiating this component will
1082
+ /// create fresh new versions of all of these resources. The path here is
1083
+ /// within the `exports` array.
1084
+ pub defined_resources: Vec<(ResourceId, Vec<usize>)>,
1085
+
1086
+ /// The set of all resources which are explicitly exported by this
1087
+ /// component, and where they're exported.
1088
+ ///
1089
+ /// This mapping is stored separately from `defined_resources` to ensure
1090
+ /// that it contains all exported resources, not just those which are
1091
+ /// defined. That means that this can cover reexports of imported
1092
+ /// resources, exports of local resources, or exports of closed-over
1093
+ /// resources for example.
1094
+ pub explicit_resources: IndexMap<ResourceId, Vec<usize>>,
1095
+ }
1096
+
1097
+ impl TypeData for ComponentType {
1098
+ type Id = ComponentTypeId;
1099
+
1100
+ fn type_info(&self, _types: &TypeList) -> TypeInfo {
1101
+ self.info
1102
+ }
1103
+ }
1104
+
1105
+ /// Represents a type of a component instance.
1106
+ #[derive(Debug, Clone)]
1107
+ pub struct ComponentInstanceType {
1108
+ /// Metadata about this instance type
1109
+ pub(crate) info: TypeInfo,
1110
+
1111
+ /// The list of exports, keyed by name, that this instance has.
1112
+ ///
1113
+ /// An optional URL and type of each export is provided as well.
1114
+ pub exports: IndexMap<String, ComponentEntityType>,
1115
+
1116
+ /// The list of "defined resources" or those which are closed over in
1117
+ /// this instance type.
1118
+ ///
1119
+ /// This list is populated, for example, when the type of an instance is
1120
+ /// declared and it contains its own resource type exports defined
1121
+ /// internally. For example:
1122
+ ///
1123
+ /// ```wasm
1124
+ /// (component
1125
+ /// (type (instance
1126
+ /// (export "x" (type sub resource)) ;; one `defined_resources` entry
1127
+ /// ))
1128
+ /// )
1129
+ /// ```
1130
+ ///
1131
+ /// This list is also a bit of an oddity, however, because the type of a
1132
+ /// concrete instance will always have this as empty. For example:
1133
+ ///
1134
+ /// ```wasm
1135
+ /// (component
1136
+ /// (type $t (instance (export "x" (type sub resource))))
1137
+ ///
1138
+ /// ;; the type of this instance has no defined resources
1139
+ /// (import "i" (instance (type $t)))
1140
+ /// )
1141
+ /// ```
1142
+ ///
1143
+ /// This list ends up only being populated for instance types declared in a
1144
+ /// module which aren't yet "attached" to anything. Once something is
1145
+ /// instantiated, imported, exported, or otherwise refers to a concrete
1146
+ /// instance then this list is always empty. For concrete instances
1147
+ /// defined resources are tracked in the component state or component type.
1148
+ pub defined_resources: Vec<ResourceId>,
1149
+
1150
+ /// The list of all resources that are explicitly exported from this
1151
+ /// instance type along with the path they're exported at.
1152
+ pub explicit_resources: IndexMap<ResourceId, Vec<usize>>,
1153
+ }
1154
+
1155
+ impl TypeData for ComponentInstanceType {
1156
+ type Id = ComponentInstanceTypeId;
1157
+
1158
+ fn type_info(&self, _types: &TypeList) -> TypeInfo {
1159
+ self.info
1160
+ }
1161
+ }
1162
+
1163
+ /// Represents a type of a component function.
1164
+ #[derive(Debug, Clone)]
1165
+ pub struct ComponentFuncType {
1166
+ /// Metadata about this function type.
1167
+ pub(crate) info: TypeInfo,
1168
+ /// The function parameters.
1169
+ pub params: Box<[(KebabString, ComponentValType)]>,
1170
+ /// The function's results.
1171
+ pub results: Box<[(Option<KebabString>, ComponentValType)]>,
1172
+ }
1173
+
1174
+ impl TypeData for ComponentFuncType {
1175
+ type Id = ComponentFuncTypeId;
1176
+
1177
+ fn type_info(&self, _types: &TypeList) -> TypeInfo {
1178
+ self.info
1179
+ }
1180
+ }
1181
+
1182
+ impl ComponentFuncType {
1183
+ /// Lowers the component function type to core parameter and result types for the
1184
+ /// canonical ABI.
1185
+ pub(crate) fn lower(&self, types: &TypeList, is_lower: bool) -> LoweringInfo {
1186
+ let mut info = LoweringInfo::default();
1187
+
1188
+ for (_, ty) in self.params.iter() {
1189
+ // Check to see if `ty` has a pointer somewhere in it, needed for
1190
+ // any type that transitively contains either a string or a list.
1191
+ // In this situation lowered functions must specify `memory`, and
1192
+ // lifted functions must specify `realloc` as well. Lifted functions
1193
+ // gain their memory requirement through the final clause of this
1194
+ // function.
1195
+ if is_lower {
1196
+ if !info.requires_memory {
1197
+ info.requires_memory = ty.contains_ptr(types);
1198
+ }
1199
+ } else {
1200
+ if !info.requires_realloc {
1201
+ info.requires_realloc = ty.contains_ptr(types);
1202
+ }
1203
+ }
1204
+
1205
+ if !ty.push_wasm_types(types, &mut info.params) {
1206
+ // Too many parameters to pass directly
1207
+ // Function will have a single pointer parameter to pass the arguments
1208
+ // via linear memory
1209
+ info.params.clear();
1210
+ assert!(info.params.push(ValType::I32));
1211
+ info.requires_memory = true;
1212
+
1213
+ // We need realloc as well when lifting a function
1214
+ if !is_lower {
1215
+ info.requires_realloc = true;
1216
+ }
1217
+ break;
1218
+ }
1219
+ }
1220
+
1221
+ for (_, ty) in self.results.iter() {
1222
+ // Results of lowered functions that contains pointers must be
1223
+ // allocated by the callee meaning that realloc is required.
1224
+ // Results of lifted function are allocated by the guest which
1225
+ // means that no realloc option is necessary.
1226
+ if is_lower && !info.requires_realloc {
1227
+ info.requires_realloc = ty.contains_ptr(types);
1228
+ }
1229
+
1230
+ if !ty.push_wasm_types(types, &mut info.results) {
1231
+ // Too many results to return directly, either a retptr parameter will be used (import)
1232
+ // or a single pointer will be returned (export)
1233
+ info.results.clear();
1234
+ if is_lower {
1235
+ info.params.max = MAX_LOWERED_TYPES;
1236
+ assert!(info.params.push(ValType::I32));
1237
+ } else {
1238
+ assert!(info.results.push(ValType::I32));
1239
+ }
1240
+ info.requires_memory = true;
1241
+ break;
1242
+ }
1243
+ }
1244
+
1245
+ // Memory is always required when realloc is required
1246
+ info.requires_memory |= info.requires_realloc;
1247
+
1248
+ info
1249
+ }
1250
+ }
1251
+
1252
+ /// Represents a variant case.
1253
+ #[derive(Debug, Clone)]
1254
+ pub struct VariantCase {
1255
+ /// The variant case type.
1256
+ pub ty: Option<ComponentValType>,
1257
+ /// The name of the variant case refined by this one.
1258
+ pub refines: Option<KebabString>,
1259
+ }
1260
+
1261
+ /// Represents a record type.
1262
+ #[derive(Debug, Clone)]
1263
+ pub struct RecordType {
1264
+ /// Metadata about this record type.
1265
+ pub(crate) info: TypeInfo,
1266
+ /// The map of record fields.
1267
+ pub fields: IndexMap<KebabString, ComponentValType>,
1268
+ }
1269
+
1270
+ /// Represents a variant type.
1271
+ #[derive(Debug, Clone)]
1272
+ pub struct VariantType {
1273
+ /// Metadata about this variant type.
1274
+ pub(crate) info: TypeInfo,
1275
+ /// The map of variant cases.
1276
+ pub cases: IndexMap<KebabString, VariantCase>,
1277
+ }
1278
+
1279
+ /// Represents a tuple type.
1280
+ #[derive(Debug, Clone)]
1281
+ pub struct TupleType {
1282
+ /// Metadata about this tuple type.
1283
+ pub(crate) info: TypeInfo,
1284
+ /// The types of the tuple.
1285
+ pub types: Box<[ComponentValType]>,
1286
+ }
1287
+
1288
+ /// Represents a component defined type.
1289
+ #[derive(Debug, Clone)]
1290
+ pub enum ComponentDefinedType {
1291
+ /// The type is a primitive value type.
1292
+ Primitive(PrimitiveValType),
1293
+ /// The type is a record.
1294
+ Record(RecordType),
1295
+ /// The type is a variant.
1296
+ Variant(VariantType),
1297
+ /// The type is a list.
1298
+ List(ComponentValType),
1299
+ /// The type is a tuple.
1300
+ Tuple(TupleType),
1301
+ /// The type is a set of flags.
1302
+ Flags(IndexSet<KebabString>),
1303
+ /// The type is an enumeration.
1304
+ Enum(IndexSet<KebabString>),
1305
+ /// The type is an `option`.
1306
+ Option(ComponentValType),
1307
+ /// The type is a `result`.
1308
+ Result {
1309
+ /// The `ok` type.
1310
+ ok: Option<ComponentValType>,
1311
+ /// The `error` type.
1312
+ err: Option<ComponentValType>,
1313
+ },
1314
+ /// The type is an owned handle to the specified resource.
1315
+ Own(AliasableResourceId),
1316
+ /// The type is a borrowed handle to the specified resource.
1317
+ Borrow(AliasableResourceId),
1318
+ }
1319
+
1320
+ impl TypeData for ComponentDefinedType {
1321
+ type Id = ComponentDefinedTypeId;
1322
+
1323
+ fn type_info(&self, types: &TypeList) -> TypeInfo {
1324
+ match self {
1325
+ Self::Primitive(_) | Self::Flags(_) | Self::Enum(_) | Self::Own(_) => TypeInfo::new(),
1326
+ Self::Borrow(_) => TypeInfo::borrow(),
1327
+ Self::Record(r) => r.info,
1328
+ Self::Variant(v) => v.info,
1329
+ Self::Tuple(t) => t.info,
1330
+ Self::List(ty) | Self::Option(ty) => ty.info(types),
1331
+ Self::Result { ok, err } => {
1332
+ let default = TypeInfo::new();
1333
+ let mut info = ok.map(|ty| ty.type_info(types)).unwrap_or(default);
1334
+ info.combine(err.map(|ty| ty.type_info(types)).unwrap_or(default), 0)
1335
+ .unwrap();
1336
+ info
1337
+ }
1338
+ }
1339
+ }
1340
+ }
1341
+
1342
+ impl ComponentDefinedType {
1343
+ pub(crate) fn contains_ptr(&self, types: &TypeList) -> bool {
1344
+ match self {
1345
+ Self::Primitive(ty) => ty.contains_ptr(),
1346
+ Self::Record(r) => r.fields.values().any(|ty| ty.contains_ptr(types)),
1347
+ Self::Variant(v) => v
1348
+ .cases
1349
+ .values()
1350
+ .any(|case| case.ty.map(|ty| ty.contains_ptr(types)).unwrap_or(false)),
1351
+ Self::List(_) => true,
1352
+ Self::Tuple(t) => t.types.iter().any(|ty| ty.contains_ptr(types)),
1353
+ Self::Flags(_) | Self::Enum(_) | Self::Own(_) | Self::Borrow(_) => false,
1354
+ Self::Option(ty) => ty.contains_ptr(types),
1355
+ Self::Result { ok, err } => {
1356
+ ok.map(|ty| ty.contains_ptr(types)).unwrap_or(false)
1357
+ || err.map(|ty| ty.contains_ptr(types)).unwrap_or(false)
1358
+ }
1359
+ }
1360
+ }
1361
+
1362
+ fn push_wasm_types(&self, types: &TypeList, lowered_types: &mut LoweredTypes) -> bool {
1363
+ match self {
1364
+ Self::Primitive(ty) => push_primitive_wasm_types(ty, lowered_types),
1365
+ Self::Record(r) => r
1366
+ .fields
1367
+ .iter()
1368
+ .all(|(_, ty)| ty.push_wasm_types(types, lowered_types)),
1369
+ Self::Variant(v) => Self::push_variant_wasm_types(
1370
+ v.cases.iter().filter_map(|(_, case)| case.ty.as_ref()),
1371
+ types,
1372
+ lowered_types,
1373
+ ),
1374
+ Self::List(_) => lowered_types.push(ValType::I32) && lowered_types.push(ValType::I32),
1375
+ Self::Tuple(t) => t
1376
+ .types
1377
+ .iter()
1378
+ .all(|ty| ty.push_wasm_types(types, lowered_types)),
1379
+ Self::Flags(names) => {
1380
+ (0..(names.len() + 31) / 32).all(|_| lowered_types.push(ValType::I32))
1381
+ }
1382
+ Self::Enum(_) | Self::Own(_) | Self::Borrow(_) => lowered_types.push(ValType::I32),
1383
+ Self::Option(ty) => {
1384
+ Self::push_variant_wasm_types([ty].into_iter(), types, lowered_types)
1385
+ }
1386
+ Self::Result { ok, err } => {
1387
+ Self::push_variant_wasm_types(ok.iter().chain(err.iter()), types, lowered_types)
1388
+ }
1389
+ }
1390
+ }
1391
+
1392
+ fn push_variant_wasm_types<'a>(
1393
+ cases: impl Iterator<Item = &'a ComponentValType>,
1394
+ types: &TypeList,
1395
+ lowered_types: &mut LoweredTypes,
1396
+ ) -> bool {
1397
+ // Push the discriminant
1398
+ if !lowered_types.push(ValType::I32) {
1399
+ return false;
1400
+ }
1401
+
1402
+ let start = lowered_types.len();
1403
+
1404
+ for ty in cases {
1405
+ let mut temp = LoweredTypes::new(lowered_types.max);
1406
+
1407
+ if !ty.push_wasm_types(types, &mut temp) {
1408
+ return false;
1409
+ }
1410
+
1411
+ for (i, ty) in temp.iter().enumerate() {
1412
+ match lowered_types.get_mut(start + i) {
1413
+ Some(prev) => *prev = Self::join_types(*prev, ty),
1414
+ None => {
1415
+ if !lowered_types.push(ty) {
1416
+ return false;
1417
+ }
1418
+ }
1419
+ }
1420
+ }
1421
+ }
1422
+
1423
+ true
1424
+ }
1425
+
1426
+ fn join_types(a: ValType, b: ValType) -> ValType {
1427
+ use ValType::*;
1428
+
1429
+ match (a, b) {
1430
+ (I32, I32) | (I64, I64) | (F32, F32) | (F64, F64) => a,
1431
+ (I32, F32) | (F32, I32) => I32,
1432
+ (_, I64 | F64) | (I64 | F64, _) => I64,
1433
+ _ => panic!("unexpected wasm type for canonical ABI"),
1434
+ }
1435
+ }
1436
+
1437
+ fn desc(&self) -> &'static str {
1438
+ match self {
1439
+ ComponentDefinedType::Record(_) => "record",
1440
+ ComponentDefinedType::Primitive(_) => "primitive",
1441
+ ComponentDefinedType::Variant(_) => "variant",
1442
+ ComponentDefinedType::Tuple(_) => "tuple",
1443
+ ComponentDefinedType::Enum(_) => "enum",
1444
+ ComponentDefinedType::Flags(_) => "flags",
1445
+ ComponentDefinedType::Option(_) => "option",
1446
+ ComponentDefinedType::List(_) => "list",
1447
+ ComponentDefinedType::Result { .. } => "result",
1448
+ ComponentDefinedType::Own(_) => "own",
1449
+ ComponentDefinedType::Borrow(_) => "borrow",
1450
+ }
1451
+ }
1452
+ }
1453
+
1454
+ /// An opaque identifier intended to be used to distinguish whether two
1455
+ /// resource types are equivalent or not.
1456
+ #[derive(Debug, Clone, PartialEq, Eq, Hash, Ord, PartialOrd, Copy)]
1457
+ #[repr(packed(4))] // try to not waste 4 bytes in padding
1458
+ pub struct ResourceId {
1459
+ // This is a globally unique identifier which is assigned once per
1460
+ // `TypeAlloc`. This ensures that resource identifiers from different
1461
+ // instances of `Types`, for example, are considered unique.
1462
+ //
1463
+ // Technically 64-bits should be enough for all resource ids ever, but
1464
+ // they're allocated so often it's predicted that an atomic increment
1465
+ // per resource id is probably too expensive. To amortize that cost each
1466
+ // top-level wasm component gets a single globally unique identifier, and
1467
+ // then within a component contextually unique identifiers are handed out.
1468
+ globally_unique_id: usize,
1469
+
1470
+ // A contextually unique id within the globally unique id above. This is
1471
+ // allocated within a `TypeAlloc` with its own counter, and allocations of
1472
+ // this are cheap as nothing atomic is required.
1473
+ //
1474
+ // The 32-bit storage here should ideally be enough for any component
1475
+ // containing resources. If memory usage becomes an issue (this struct is
1476
+ // 12 bytes instead of 8 or 4) then this could get folded into the globally
1477
+ // unique id with everything using an atomic increment perhaps.
1478
+ contextually_unique_id: u32,
1479
+ }
1480
+
1481
+ #[allow(clippy::large_enum_variant)]
1482
+ enum TypesKind {
1483
+ Module(Arc<Module>),
1484
+ Component(ComponentState),
1485
+ }
1486
+
1487
+ /// Represents the types known to a [`crate::Validator`] once validation has completed.
1488
+ ///
1489
+ /// The type information is returned via the [`crate::Validator::end`] method.
1490
+ pub struct Types {
1491
+ id: ValidatorId,
1492
+ list: TypeList,
1493
+ kind: TypesKind,
1494
+ }
1495
+
1496
+ #[derive(Clone, Copy)]
1497
+ enum TypesRefKind<'a> {
1498
+ Module(&'a Module),
1499
+ Component(&'a ComponentState),
1500
+ }
1501
+
1502
+ /// Represents the types known to a [`crate::Validator`] during validation.
1503
+ ///
1504
+ /// Retrieved via the [`crate::Validator::types`] method.
1505
+ #[derive(Clone, Copy)]
1506
+ pub struct TypesRef<'a> {
1507
+ id: ValidatorId,
1508
+ list: &'a TypeList,
1509
+ kind: TypesRefKind<'a>,
1510
+ }
1511
+
1512
+ impl<'a> TypesRef<'a> {
1513
+ pub(crate) fn from_module(id: ValidatorId, types: &'a TypeList, module: &'a Module) -> Self {
1514
+ Self {
1515
+ id,
1516
+ list: types,
1517
+ kind: TypesRefKind::Module(module),
1518
+ }
1519
+ }
1520
+
1521
+ pub(crate) fn from_component(
1522
+ id: ValidatorId,
1523
+ types: &'a TypeList,
1524
+ component: &'a ComponentState,
1525
+ ) -> Self {
1526
+ Self {
1527
+ id,
1528
+ list: types,
1529
+ kind: TypesRefKind::Component(component),
1530
+ }
1531
+ }
1532
+
1533
+ /// Get the id of the validator that these types are associated with.
1534
+ #[inline]
1535
+ pub fn id(&self) -> ValidatorId {
1536
+ self.id
1537
+ }
1538
+
1539
+ /// Gets a type based on its type id.
1540
+ ///
1541
+ /// Returns `None` if the type id is unknown.
1542
+ pub fn get<T>(&self, id: T) -> Option<&'a T::Data>
1543
+ where
1544
+ T: TypeIdentifier,
1545
+ {
1546
+ self.list.get(id)
1547
+ }
1548
+
1549
+ /// Get the id of the rec group that the given type id was defined within.
1550
+ pub fn rec_group_id_of(&self, id: CoreTypeId) -> RecGroupId {
1551
+ self.list.rec_group_id_of(id)
1552
+ }
1553
+
1554
+ /// Get the types within a rec group.
1555
+ pub fn rec_group_elements(&self, id: RecGroupId) -> impl ExactSizeIterator<Item = CoreTypeId> {
1556
+ let range = &self.list.rec_group_elements[id];
1557
+ (range.start.index..range.end.index).map(|index| CoreTypeId { index })
1558
+ }
1559
+
1560
+ /// Get the super type of the given type id, if any.
1561
+ pub fn supertype_of(&self, id: CoreTypeId) -> Option<CoreTypeId> {
1562
+ self.list.supertype_of(id)
1563
+ }
1564
+
1565
+ /// Gets a core WebAssembly type id from a type index.
1566
+ ///
1567
+ /// Note that this is in contrast to [`TypesRef::component_type_at`] which
1568
+ /// gets a component type from its index.
1569
+ ///
1570
+ /// # Panics
1571
+ ///
1572
+ /// This will panic if the `index` provided is out of bounds.
1573
+ pub fn core_type_at(&self, index: u32) -> ComponentCoreTypeId {
1574
+ match &self.kind {
1575
+ TypesRefKind::Module(module) => ComponentCoreTypeId::Sub(module.types[index as usize]),
1576
+ TypesRefKind::Component(component) => component.core_types[index as usize],
1577
+ }
1578
+ }
1579
+
1580
+ /// Gets a type id from a type index.
1581
+ ///
1582
+ /// # Panics
1583
+ ///
1584
+ /// Panics if `index` is not a valid type index or if this type information
1585
+ /// represents a core module.
1586
+ pub fn component_any_type_at(&self, index: u32) -> ComponentAnyTypeId {
1587
+ match &self.kind {
1588
+ TypesRefKind::Module(_) => panic!("not a component"),
1589
+ TypesRefKind::Component(component) => component.types[index as usize],
1590
+ }
1591
+ }
1592
+
1593
+ /// Gets a component type id from a type index.
1594
+ ///
1595
+ /// # Panics
1596
+ ///
1597
+ /// Panics if `index` is not a valid component type index or if this type
1598
+ /// information represents a core module.
1599
+ pub fn component_type_at(&self, index: u32) -> ComponentTypeId {
1600
+ match self.component_any_type_at(index) {
1601
+ ComponentAnyTypeId::Component(id) => id,
1602
+ _ => panic!("not a component type"),
1603
+ }
1604
+ }
1605
+
1606
+ /// Gets a type id from a type index.
1607
+ ///
1608
+ /// # Panics
1609
+ ///
1610
+ /// Panics if `index` is not a valid function index or if this type
1611
+ /// information represents a core module.
1612
+ pub fn component_defined_type_at(&self, index: u32) -> ComponentDefinedTypeId {
1613
+ match self.component_any_type_at(index) {
1614
+ ComponentAnyTypeId::Defined(id) => id,
1615
+ _ => panic!("not a defined type"),
1616
+ }
1617
+ }
1618
+
1619
+ /// Returns the number of core types defined so far.
1620
+ pub fn core_type_count(&self) -> u32 {
1621
+ match &self.kind {
1622
+ TypesRefKind::Module(module) => module.types.len() as u32,
1623
+ TypesRefKind::Component(component) => component.core_types.len() as u32,
1624
+ }
1625
+ }
1626
+
1627
+ /// Returns the number of component types defined so far.
1628
+ pub fn component_type_count(&self) -> u32 {
1629
+ match &self.kind {
1630
+ TypesRefKind::Module(_module) => 0,
1631
+ TypesRefKind::Component(component) => component.types.len() as u32,
1632
+ }
1633
+ }
1634
+
1635
+ /// Gets the type of a table at the given table index.
1636
+ ///
1637
+ /// # Panics
1638
+ ///
1639
+ /// This will panic if the `index` provided is out of bounds.
1640
+ pub fn table_at(&self, index: u32) -> TableType {
1641
+ let tables = match &self.kind {
1642
+ TypesRefKind::Module(module) => &module.tables,
1643
+ TypesRefKind::Component(component) => &component.core_tables,
1644
+ };
1645
+ tables[index as usize]
1646
+ }
1647
+
1648
+ /// Returns the number of tables defined so far.
1649
+ pub fn table_count(&self) -> u32 {
1650
+ match &self.kind {
1651
+ TypesRefKind::Module(module) => module.tables.len() as u32,
1652
+ TypesRefKind::Component(component) => component.core_tables.len() as u32,
1653
+ }
1654
+ }
1655
+
1656
+ /// Gets the type of a memory at the given memory index.
1657
+ ///
1658
+ /// # Panics
1659
+ ///
1660
+ /// This will panic if the `index` provided is out of bounds.
1661
+ pub fn memory_at(&self, index: u32) -> MemoryType {
1662
+ let memories = match &self.kind {
1663
+ TypesRefKind::Module(module) => &module.memories,
1664
+ TypesRefKind::Component(component) => &component.core_memories,
1665
+ };
1666
+
1667
+ memories[index as usize]
1668
+ }
1669
+
1670
+ /// Returns the number of memories defined so far.
1671
+ pub fn memory_count(&self) -> u32 {
1672
+ match &self.kind {
1673
+ TypesRefKind::Module(module) => module.memories.len() as u32,
1674
+ TypesRefKind::Component(component) => component.core_memories.len() as u32,
1675
+ }
1676
+ }
1677
+
1678
+ /// Gets the type of a global at the given global index.
1679
+ ///
1680
+ /// # Panics
1681
+ ///
1682
+ /// This will panic if the `index` provided is out of bounds.
1683
+ pub fn global_at(&self, index: u32) -> GlobalType {
1684
+ let globals = match &self.kind {
1685
+ TypesRefKind::Module(module) => &module.globals,
1686
+ TypesRefKind::Component(component) => &component.core_globals,
1687
+ };
1688
+
1689
+ globals[index as usize]
1690
+ }
1691
+
1692
+ /// Returns the number of globals defined so far.
1693
+ pub fn global_count(&self) -> u32 {
1694
+ match &self.kind {
1695
+ TypesRefKind::Module(module) => module.globals.len() as u32,
1696
+ TypesRefKind::Component(component) => component.core_globals.len() as u32,
1697
+ }
1698
+ }
1699
+
1700
+ /// Gets the type of a tag at the given tag index.
1701
+ ///
1702
+ /// # Panics
1703
+ ///
1704
+ /// This will panic if the `index` provided is out of bounds.
1705
+ pub fn tag_at(&self, index: u32) -> CoreTypeId {
1706
+ let tags = match &self.kind {
1707
+ TypesRefKind::Module(module) => &module.tags,
1708
+ TypesRefKind::Component(component) => &component.core_tags,
1709
+ };
1710
+ tags[index as usize]
1711
+ }
1712
+
1713
+ /// Returns the number of tags defined so far.
1714
+ pub fn tag_count(&self) -> u32 {
1715
+ match &self.kind {
1716
+ TypesRefKind::Module(module) => module.tags.len() as u32,
1717
+ TypesRefKind::Component(component) => component.core_tags.len() as u32,
1718
+ }
1719
+ }
1720
+
1721
+ /// Gets the type of a core function at the given function index.
1722
+ ///
1723
+ /// # Panics
1724
+ ///
1725
+ /// This will panic if the `index` provided is out of bounds.
1726
+ pub fn core_function_at(&self, index: u32) -> CoreTypeId {
1727
+ match &self.kind {
1728
+ TypesRefKind::Module(module) => module.types[module.functions[index as usize] as usize],
1729
+ TypesRefKind::Component(component) => component.core_funcs[index as usize],
1730
+ }
1731
+ }
1732
+
1733
+ /// Gets the count of core functions defined so far.
1734
+ ///
1735
+ /// Note that this includes imported functions, defined functions, and for
1736
+ /// components lowered/aliased functions.
1737
+ pub fn function_count(&self) -> u32 {
1738
+ match &self.kind {
1739
+ TypesRefKind::Module(module) => module.functions.len() as u32,
1740
+ TypesRefKind::Component(component) => component.core_funcs.len() as u32,
1741
+ }
1742
+ }
1743
+
1744
+ /// Gets the type of an element segment at the given element segment index.
1745
+ ///
1746
+ /// # Panics
1747
+ ///
1748
+ /// This will panic if the `index` provided is out of bounds.
1749
+ pub fn element_at(&self, index: u32) -> RefType {
1750
+ match &self.kind {
1751
+ TypesRefKind::Module(module) => module.element_types[index as usize],
1752
+ TypesRefKind::Component(_) => {
1753
+ panic!("no elements on a component")
1754
+ }
1755
+ }
1756
+ }
1757
+
1758
+ /// Returns the number of elements defined so far.
1759
+ pub fn element_count(&self) -> u32 {
1760
+ match &self.kind {
1761
+ TypesRefKind::Module(module) => module.element_types.len() as u32,
1762
+ TypesRefKind::Component(_) => 0,
1763
+ }
1764
+ }
1765
+
1766
+ /// Gets the type of a component function at the given function index.
1767
+ ///
1768
+ /// # Panics
1769
+ ///
1770
+ /// This will panic if the `index` provided is out of bounds or if this type
1771
+ /// information represents a core module.
1772
+ pub fn component_function_at(&self, index: u32) -> ComponentFuncTypeId {
1773
+ match &self.kind {
1774
+ TypesRefKind::Module(_) => panic!("not a component"),
1775
+ TypesRefKind::Component(component) => component.funcs[index as usize],
1776
+ }
1777
+ }
1778
+
1779
+ /// Returns the number of component functions defined so far.
1780
+ pub fn component_function_count(&self) -> u32 {
1781
+ match &self.kind {
1782
+ TypesRefKind::Module(_module) => 0,
1783
+ TypesRefKind::Component(component) => component.funcs.len() as u32,
1784
+ }
1785
+ }
1786
+
1787
+ /// Gets the type of a module at the given module index.
1788
+ ///
1789
+ /// # Panics
1790
+ ///
1791
+ /// This will panic if the `index` provided is out of bounds or if this type
1792
+ /// information represents a core module.
1793
+ pub fn module_at(&self, index: u32) -> ComponentCoreModuleTypeId {
1794
+ match &self.kind {
1795
+ TypesRefKind::Module(_) => panic!("not a component"),
1796
+ TypesRefKind::Component(component) => component.core_modules[index as usize],
1797
+ }
1798
+ }
1799
+
1800
+ /// Returns the number of core wasm modules defined so far.
1801
+ pub fn module_count(&self) -> u32 {
1802
+ match &self.kind {
1803
+ TypesRefKind::Module(_module) => 0,
1804
+ TypesRefKind::Component(component) => component.core_modules.len() as u32,
1805
+ }
1806
+ }
1807
+
1808
+ /// Gets the type of a module instance at the given module instance index.
1809
+ ///
1810
+ /// # Panics
1811
+ ///
1812
+ /// This will panic if the `index` provided is out of bounds or if this type
1813
+ /// information represents a core module.
1814
+ pub fn core_instance_at(&self, index: u32) -> ComponentCoreInstanceTypeId {
1815
+ match &self.kind {
1816
+ TypesRefKind::Module(_) => panic!("not a component"),
1817
+ TypesRefKind::Component(component) => component.core_instances[index as usize],
1818
+ }
1819
+ }
1820
+
1821
+ /// Returns the number of core wasm instances defined so far.
1822
+ pub fn core_instance_count(&self) -> u32 {
1823
+ match &self.kind {
1824
+ TypesRefKind::Module(_module) => 0,
1825
+ TypesRefKind::Component(component) => component.core_instances.len() as u32,
1826
+ }
1827
+ }
1828
+
1829
+ /// Gets the type of a component at the given component index.
1830
+ ///
1831
+ /// # Panics
1832
+ ///
1833
+ /// This will panic if the `index` provided is out of bounds or if this type
1834
+ /// information represents a core module.
1835
+ pub fn component_at(&self, index: u32) -> ComponentTypeId {
1836
+ match &self.kind {
1837
+ TypesRefKind::Module(_) => panic!("not a component"),
1838
+ TypesRefKind::Component(component) => component.components[index as usize],
1839
+ }
1840
+ }
1841
+
1842
+ /// Returns the number of components defined so far.
1843
+ pub fn component_count(&self) -> u32 {
1844
+ match &self.kind {
1845
+ TypesRefKind::Module(_module) => 0,
1846
+ TypesRefKind::Component(component) => component.components.len() as u32,
1847
+ }
1848
+ }
1849
+
1850
+ /// Gets the type of an component instance at the given component instance index.
1851
+ ///
1852
+ /// # Panics
1853
+ ///
1854
+ /// This will panic if the `index` provided is out of bounds or if this type
1855
+ /// information represents a core module.
1856
+ pub fn component_instance_at(&self, index: u32) -> ComponentInstanceTypeId {
1857
+ match &self.kind {
1858
+ TypesRefKind::Module(_) => panic!("not a component"),
1859
+ TypesRefKind::Component(component) => component.instances[index as usize],
1860
+ }
1861
+ }
1862
+
1863
+ /// Returns the number of component instances defined so far.
1864
+ pub fn component_instance_count(&self) -> u32 {
1865
+ match &self.kind {
1866
+ TypesRefKind::Module(_module) => 0,
1867
+ TypesRefKind::Component(component) => component.instances.len() as u32,
1868
+ }
1869
+ }
1870
+
1871
+ /// Gets the type of a value at the given value index.
1872
+ ///
1873
+ /// # Panics
1874
+ ///
1875
+ /// This will panic if the `index` provided is out of bounds or if this type
1876
+ /// information represents a core module.
1877
+ pub fn value_at(&self, index: u32) -> ComponentValType {
1878
+ match &self.kind {
1879
+ TypesRefKind::Module(_) => panic!("not a component"),
1880
+ TypesRefKind::Component(component) => component.values[index as usize].0,
1881
+ }
1882
+ }
1883
+
1884
+ /// Gets the entity type for the given import.
1885
+ pub fn entity_type_from_import(&self, import: &Import) -> Option<EntityType> {
1886
+ match &self.kind {
1887
+ TypesRefKind::Module(module) => Some(match import.ty {
1888
+ TypeRef::Func(idx) => EntityType::Func(*module.types.get(idx as usize)?),
1889
+ TypeRef::Table(ty) => EntityType::Table(ty),
1890
+ TypeRef::Memory(ty) => EntityType::Memory(ty),
1891
+ TypeRef::Global(ty) => EntityType::Global(ty),
1892
+ TypeRef::Tag(ty) => EntityType::Tag(*module.types.get(ty.func_type_idx as usize)?),
1893
+ }),
1894
+ TypesRefKind::Component(_) => None,
1895
+ }
1896
+ }
1897
+
1898
+ /// Gets the entity type from the given export.
1899
+ pub fn entity_type_from_export(&self, export: &Export) -> Option<EntityType> {
1900
+ match &self.kind {
1901
+ TypesRefKind::Module(module) => Some(match export.kind {
1902
+ ExternalKind::Func => EntityType::Func(
1903
+ module.types[*module.functions.get(export.index as usize)? as usize],
1904
+ ),
1905
+ ExternalKind::Table => {
1906
+ EntityType::Table(*module.tables.get(export.index as usize)?)
1907
+ }
1908
+ ExternalKind::Memory => {
1909
+ EntityType::Memory(*module.memories.get(export.index as usize)?)
1910
+ }
1911
+ ExternalKind::Global => {
1912
+ EntityType::Global(*module.globals.get(export.index as usize)?)
1913
+ }
1914
+ ExternalKind::Tag => EntityType::Tag(
1915
+ module.types[*module.functions.get(export.index as usize)? as usize],
1916
+ ),
1917
+ }),
1918
+ TypesRefKind::Component(_) => None,
1919
+ }
1920
+ }
1921
+
1922
+ /// Gets the component entity type for the given component import.
1923
+ pub fn component_entity_type_of_import(&self, name: &str) -> Option<ComponentEntityType> {
1924
+ match &self.kind {
1925
+ TypesRefKind::Module(_) => None,
1926
+ TypesRefKind::Component(component) => Some(*component.imports.get(name)?),
1927
+ }
1928
+ }
1929
+
1930
+ /// Gets the component entity type for the given component export.
1931
+ pub fn component_entity_type_of_export(&self, name: &str) -> Option<ComponentEntityType> {
1932
+ match &self.kind {
1933
+ TypesRefKind::Module(_) => None,
1934
+ TypesRefKind::Component(component) => Some(*component.exports.get(name)?),
1935
+ }
1936
+ }
1937
+
1938
+ /// Attempts to lookup the type id that `ty` is an alias of.
1939
+ ///
1940
+ /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
1941
+ pub fn peel_alias<T>(&self, ty: T) -> Option<T>
1942
+ where
1943
+ T: Aliasable,
1944
+ {
1945
+ self.list.peel_alias(ty)
1946
+ }
1947
+ }
1948
+
1949
+ impl<T> Index<T> for TypesRef<'_>
1950
+ where
1951
+ T: TypeIdentifier,
1952
+ {
1953
+ type Output = T::Data;
1954
+
1955
+ fn index(&self, index: T) -> &Self::Output {
1956
+ &self.list[index]
1957
+ }
1958
+ }
1959
+
1960
+ impl Types {
1961
+ pub(crate) fn from_module(id: ValidatorId, types: TypeList, module: Arc<Module>) -> Self {
1962
+ Self {
1963
+ id,
1964
+ list: types,
1965
+ kind: TypesKind::Module(module),
1966
+ }
1967
+ }
1968
+
1969
+ pub(crate) fn from_component(
1970
+ id: ValidatorId,
1971
+ types: TypeList,
1972
+ component: ComponentState,
1973
+ ) -> Self {
1974
+ Self {
1975
+ id,
1976
+ list: types,
1977
+ kind: TypesKind::Component(component),
1978
+ }
1979
+ }
1980
+
1981
+ /// Get the id of the validator that these types are associated with.
1982
+ #[inline]
1983
+ pub fn id(&self) -> ValidatorId {
1984
+ self.id
1985
+ }
1986
+
1987
+ /// Gets a reference to this validation type information.
1988
+ pub fn as_ref(&self) -> TypesRef {
1989
+ TypesRef {
1990
+ id: self.id,
1991
+ list: &self.list,
1992
+ kind: match &self.kind {
1993
+ TypesKind::Module(module) => TypesRefKind::Module(module),
1994
+ TypesKind::Component(component) => TypesRefKind::Component(component),
1995
+ },
1996
+ }
1997
+ }
1998
+
1999
+ /// Gets a type based on its type id.
2000
+ ///
2001
+ /// Returns `None` if the type id is unknown.
2002
+ pub fn get<T>(&self, id: T) -> Option<&T::Data>
2003
+ where
2004
+ T: TypeIdentifier,
2005
+ {
2006
+ self.as_ref().get(id)
2007
+ }
2008
+
2009
+ /// Gets a core WebAssembly type at the given type index.
2010
+ ///
2011
+ /// Note that this is in contrast to [`TypesRef::component_type_at`] which
2012
+ /// gets a component type from its index.
2013
+ ///
2014
+ /// # Panics
2015
+ ///
2016
+ /// Panics if `index` is not a valid function index.
2017
+ pub fn core_type_at(&self, index: u32) -> ComponentCoreTypeId {
2018
+ self.as_ref().core_type_at(index)
2019
+ }
2020
+
2021
+ /// Gets a component WebAssembly type at the given type index.
2022
+ ///
2023
+ /// Note that this is in contrast to [`TypesRef::core_type_at`] which gets a
2024
+ /// core type from its index.
2025
+ ///
2026
+ /// # Panics
2027
+ ///
2028
+ /// Panics if `index` is not a valid type index.
2029
+ pub fn component_any_type_at(&self, index: u32) -> ComponentAnyTypeId {
2030
+ self.as_ref().component_any_type_at(index)
2031
+ }
2032
+
2033
+ /// Gets a component type at the given type index.
2034
+ ///
2035
+ /// # Panics
2036
+ ///
2037
+ /// Panics if `index` is not a valid component type index.
2038
+ pub fn component_type_at(&self, index: u32) -> ComponentTypeId {
2039
+ self.as_ref().component_type_at(index)
2040
+ }
2041
+
2042
+ /// Gets a component type from the given component type index.
2043
+ ///
2044
+ /// # Panics
2045
+ ///
2046
+ /// Panics if `index` is not a valid defined type index or if this type
2047
+ /// information represents a core module.
2048
+ pub fn component_defined_type_at(&self, index: u32) -> ComponentDefinedTypeId {
2049
+ self.as_ref().component_defined_type_at(index)
2050
+ }
2051
+
2052
+ /// Gets the count of core types.
2053
+ pub fn type_count(&self) -> usize {
2054
+ match &self.kind {
2055
+ TypesKind::Module(module) => module.types.len(),
2056
+ TypesKind::Component(component) => component.core_types.len(),
2057
+ }
2058
+ }
2059
+
2060
+ /// Gets the type of a table at the given table index.
2061
+ ///
2062
+ /// # Panics
2063
+ ///
2064
+ /// Panics if `index` is not a valid function index.
2065
+ pub fn table_at(&self, index: u32) -> TableType {
2066
+ self.as_ref().table_at(index)
2067
+ }
2068
+
2069
+ /// Gets the count of imported and defined tables.
2070
+ pub fn table_count(&self) -> usize {
2071
+ match &self.kind {
2072
+ TypesKind::Module(module) => module.tables.len(),
2073
+ TypesKind::Component(component) => component.core_tables.len(),
2074
+ }
2075
+ }
2076
+
2077
+ /// Gets the type of a memory at the given memory index.
2078
+ ///
2079
+ /// # Panics
2080
+ ///
2081
+ /// Panics if `index` is not a valid function index.
2082
+ pub fn memory_at(&self, index: u32) -> MemoryType {
2083
+ self.as_ref().memory_at(index)
2084
+ }
2085
+
2086
+ /// Gets the count of imported and defined memories.
2087
+ pub fn memory_count(&self) -> u32 {
2088
+ self.as_ref().memory_count()
2089
+ }
2090
+
2091
+ /// Gets the type of a global at the given global index.
2092
+ ///
2093
+ /// # Panics
2094
+ ///
2095
+ /// Panics if `index` is not a valid function index.
2096
+ pub fn global_at(&self, index: u32) -> GlobalType {
2097
+ self.as_ref().global_at(index)
2098
+ }
2099
+
2100
+ /// Gets the count of imported and defined globals.
2101
+ pub fn global_count(&self) -> u32 {
2102
+ self.as_ref().global_count()
2103
+ }
2104
+
2105
+ /// Gets the type of a tag at the given tag index.
2106
+ ///
2107
+ /// # Panics
2108
+ ///
2109
+ /// Panics if `index` is not a valid function index.
2110
+ pub fn tag_at(&self, index: u32) -> CoreTypeId {
2111
+ self.as_ref().tag_at(index)
2112
+ }
2113
+
2114
+ /// Gets the count of imported and defined tags.
2115
+ pub fn tag_count(&self) -> u32 {
2116
+ self.as_ref().tag_count()
2117
+ }
2118
+
2119
+ /// Gets the type of a core function at the given function index.
2120
+ ///
2121
+ /// # Panics
2122
+ ///
2123
+ /// Panics if `index` is not a valid function index.
2124
+ pub fn core_function_at(&self, index: u32) -> CoreTypeId {
2125
+ self.as_ref().core_function_at(index)
2126
+ }
2127
+
2128
+ /// Gets the count of core functions defined so far.
2129
+ ///
2130
+ /// Note that this includes imported functions, defined functions, and for
2131
+ /// components lowered/aliased functions.
2132
+ pub fn core_function_count(&self) -> u32 {
2133
+ self.as_ref().function_count()
2134
+ }
2135
+
2136
+ /// Gets the type of an element segment at the given element segment index.
2137
+ ///
2138
+ /// # Panics
2139
+ ///
2140
+ /// This will panic if the `index` provided is out of bounds.
2141
+ pub fn element_at(&self, index: u32) -> RefType {
2142
+ self.as_ref().element_at(index)
2143
+ }
2144
+
2145
+ /// Gets the count of element segments.
2146
+ pub fn element_count(&self) -> u32 {
2147
+ self.as_ref().element_count()
2148
+ }
2149
+
2150
+ /// Gets the type of a component function at the given function index.
2151
+ ///
2152
+ /// # Panics
2153
+ ///
2154
+ /// This will panic if the `index` provided is out of bounds or if this type
2155
+ /// information represents a core module.
2156
+ pub fn component_function_at(&self, index: u32) -> ComponentFuncTypeId {
2157
+ self.as_ref().component_function_at(index)
2158
+ }
2159
+
2160
+ /// Gets the count of imported, exported, or aliased component functions.
2161
+ pub fn component_function_count(&self) -> u32 {
2162
+ self.as_ref().component_function_count()
2163
+ }
2164
+
2165
+ /// Gets the type of a module at the given module index.
2166
+ ///
2167
+ /// # Panics
2168
+ ///
2169
+ /// This will panic if the `index` provided is out of bounds or if this type
2170
+ /// information represents a core module.
2171
+ pub fn module_at(&self, index: u32) -> ComponentCoreModuleTypeId {
2172
+ self.as_ref().module_at(index)
2173
+ }
2174
+
2175
+ /// Gets the count of imported, exported, or aliased modules.
2176
+ pub fn module_count(&self) -> usize {
2177
+ match &self.kind {
2178
+ TypesKind::Module(_) => 0,
2179
+ TypesKind::Component(component) => component.core_modules.len(),
2180
+ }
2181
+ }
2182
+
2183
+ /// Gets the type of a module instance at the given module instance index.
2184
+ ///
2185
+ /// # Panics
2186
+ ///
2187
+ /// This will panic if the `index` provided is out of bounds or if this type
2188
+ /// information represents a core module.
2189
+ pub fn core_instance_at(&self, index: u32) -> ComponentCoreInstanceTypeId {
2190
+ self.as_ref().core_instance_at(index)
2191
+ }
2192
+
2193
+ /// Gets the count of imported, exported, or aliased core module instances.
2194
+ pub fn core_instance_count(&self) -> usize {
2195
+ match &self.kind {
2196
+ TypesKind::Module(_) => 0,
2197
+ TypesKind::Component(component) => component.core_instances.len(),
2198
+ }
2199
+ }
2200
+
2201
+ /// Gets the type of a component at the given component index.
2202
+ ///
2203
+ /// # Panics
2204
+ ///
2205
+ /// This will panic if the `index` provided is out of bounds or if this type
2206
+ /// information represents a core module.
2207
+ pub fn component_at(&self, index: u32) -> ComponentTypeId {
2208
+ self.as_ref().component_at(index)
2209
+ }
2210
+
2211
+ /// Gets the count of imported, exported, or aliased components.
2212
+ pub fn component_count(&self) -> usize {
2213
+ match &self.kind {
2214
+ TypesKind::Module(_) => 0,
2215
+ TypesKind::Component(component) => component.components.len(),
2216
+ }
2217
+ }
2218
+
2219
+ /// Gets the type of an component instance at the given component instance index.
2220
+ ///
2221
+ /// # Panics
2222
+ ///
2223
+ /// This will panic if the `index` provided is out of bounds or if this type
2224
+ /// information represents a core module.
2225
+ pub fn component_instance_at(&self, index: u32) -> ComponentInstanceTypeId {
2226
+ self.as_ref().component_instance_at(index)
2227
+ }
2228
+
2229
+ /// Gets the count of imported, exported, or aliased component instances.
2230
+ pub fn component_instance_count(&self) -> usize {
2231
+ match &self.kind {
2232
+ TypesKind::Module(_) => 0,
2233
+ TypesKind::Component(component) => component.instances.len(),
2234
+ }
2235
+ }
2236
+
2237
+ /// Gets the type of a value at the given value index.
2238
+ ///
2239
+ /// # Panics
2240
+ ///
2241
+ /// This will panic if the `index` provided is out of bounds or if this type
2242
+ /// information represents a core module.
2243
+ pub fn value_at(&self, index: u32) -> ComponentValType {
2244
+ self.as_ref().value_at(index)
2245
+ }
2246
+
2247
+ /// Gets the count of imported, exported, or aliased values.
2248
+ pub fn value_count(&self) -> usize {
2249
+ match &self.kind {
2250
+ TypesKind::Module(_) => 0,
2251
+ TypesKind::Component(component) => component.values.len(),
2252
+ }
2253
+ }
2254
+
2255
+ /// Gets the entity type from the given import.
2256
+ pub fn entity_type_from_import(&self, import: &Import) -> Option<EntityType> {
2257
+ self.as_ref().entity_type_from_import(import)
2258
+ }
2259
+
2260
+ /// Gets the entity type from the given export.
2261
+ pub fn entity_type_from_export(&self, export: &Export) -> Option<EntityType> {
2262
+ self.as_ref().entity_type_from_export(export)
2263
+ }
2264
+
2265
+ /// Gets the component entity type for the given component import name.
2266
+ pub fn component_entity_type_of_import(&self, name: &str) -> Option<ComponentEntityType> {
2267
+ self.as_ref().component_entity_type_of_import(name)
2268
+ }
2269
+
2270
+ /// Gets the component entity type for the given component export name.
2271
+ pub fn component_entity_type_of_export(&self, name: &str) -> Option<ComponentEntityType> {
2272
+ self.as_ref().component_entity_type_of_export(name)
2273
+ }
2274
+
2275
+ /// Attempts to lookup the type id that `ty` is an alias of.
2276
+ ///
2277
+ /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
2278
+ pub fn peel_alias<T>(&self, ty: T) -> Option<T>
2279
+ where
2280
+ T: Aliasable,
2281
+ {
2282
+ self.list.peel_alias(ty)
2283
+ }
2284
+ }
2285
+
2286
+ impl<T> Index<T> for Types
2287
+ where
2288
+ T: TypeIdentifier,
2289
+ {
2290
+ type Output = T::Data;
2291
+
2292
+ fn index(&self, id: T) -> &Self::Output {
2293
+ &self.list[id]
2294
+ }
2295
+ }
2296
+
2297
+ /// This is a type which mirrors a subset of the `Vec<T>` API, but is intended
2298
+ /// to be able to be cheaply snapshotted and cloned.
2299
+ ///
2300
+ /// When each module's code sections start we "commit" the current list of types
2301
+ /// in the global list of types. This means that the temporary `cur` vec here is
2302
+ /// pushed onto `snapshots` and wrapped up in an `Arc`. At that point we clone
2303
+ /// this entire list (which is then O(modules), not O(types in all modules)) and
2304
+ /// pass out as a context to each function validator.
2305
+ ///
2306
+ /// Otherwise, though, this type behaves as if it were a large `Vec<T>`, but
2307
+ /// it's represented by lists of contiguous chunks.
2308
+ //
2309
+ // Only public because it shows up in a public trait's `doc(hidden)` method.
2310
+ #[doc(hidden)]
2311
+ #[derive(Debug)]
2312
+ pub struct SnapshotList<T> {
2313
+ // All previous snapshots, the "head" of the list that this type represents.
2314
+ // The first entry in this pair is the starting index for all elements
2315
+ // contained in the list, and the second element is the list itself. Note
2316
+ // the `Arc` wrapper around sub-lists, which makes cloning time for this
2317
+ // `SnapshotList` O(snapshots) rather than O(snapshots_total), which for
2318
+ // us in this context means the number of modules, not types.
2319
+ //
2320
+ // Note that this list is sorted least-to-greatest in order of the index for
2321
+ // binary searching.
2322
+ snapshots: Vec<Arc<Snapshot<T>>>,
2323
+
2324
+ // This is the total length of all lists in the `snapshots` array.
2325
+ snapshots_total: usize,
2326
+
2327
+ // The current list of types for the current snapshot that are being built.
2328
+ cur: Vec<T>,
2329
+ }
2330
+
2331
+ #[derive(Debug)]
2332
+ struct Snapshot<T> {
2333
+ prior_types: usize,
2334
+ items: Vec<T>,
2335
+ }
2336
+
2337
+ impl<T> SnapshotList<T> {
2338
+ /// Same as `<&[T]>::get`
2339
+ pub(crate) fn get(&self, index: usize) -> Option<&T> {
2340
+ // Check to see if this index falls on our local list
2341
+ if index >= self.snapshots_total {
2342
+ return self.cur.get(index - self.snapshots_total);
2343
+ }
2344
+ // ... and failing that we do a binary search to figure out which bucket
2345
+ // it's in. Note the `i-1` in the `Err` case because if we don't find an
2346
+ // exact match the type is located in the previous bucket.
2347
+ let i = match self
2348
+ .snapshots
2349
+ .binary_search_by_key(&index, |snapshot| snapshot.prior_types)
2350
+ {
2351
+ Ok(i) => i,
2352
+ Err(i) => i - 1,
2353
+ };
2354
+ let snapshot = &self.snapshots[i];
2355
+ Some(&snapshot.items[index - snapshot.prior_types])
2356
+ }
2357
+
2358
+ /// Same as `Vec::push`
2359
+ pub(crate) fn push(&mut self, val: T) {
2360
+ self.cur.push(val);
2361
+ }
2362
+
2363
+ /// Same as `<[T]>::len`
2364
+ pub(crate) fn len(&self) -> usize {
2365
+ self.cur.len() + self.snapshots_total
2366
+ }
2367
+
2368
+ /// Same as `Vec::truncate` but can only truncate uncommitted elements.
2369
+ pub(crate) fn truncate(&mut self, len: usize) {
2370
+ assert!(len >= self.snapshots_total);
2371
+ self.cur.truncate(len - self.snapshots_total);
2372
+ }
2373
+
2374
+ /// Commits previously pushed types into this snapshot vector, and returns a
2375
+ /// clone of this list.
2376
+ ///
2377
+ /// The returned `SnapshotList` can be used to access all the same types as
2378
+ /// this list itself. This list also is not changed (from an external
2379
+ /// perspective) and can continue to access all the same types.
2380
+ pub(crate) fn commit(&mut self) -> SnapshotList<T> {
2381
+ // If the current chunk has new elements, commit them in to an
2382
+ // `Arc`-wrapped vector in the snapshots list. Note the `shrink_to_fit`
2383
+ // ahead of time to hopefully keep memory usage lower than it would
2384
+ // otherwise be.
2385
+ let len = self.cur.len();
2386
+ if len > 0 {
2387
+ self.cur.shrink_to_fit();
2388
+ self.snapshots.push(Arc::new(Snapshot {
2389
+ prior_types: self.snapshots_total,
2390
+ items: mem::take(&mut self.cur),
2391
+ }));
2392
+ self.snapshots_total += len;
2393
+ }
2394
+ SnapshotList {
2395
+ snapshots: self.snapshots.clone(),
2396
+ snapshots_total: self.snapshots_total,
2397
+ cur: Vec::new(),
2398
+ }
2399
+ }
2400
+ }
2401
+
2402
+ impl<T> Index<usize> for SnapshotList<T> {
2403
+ type Output = T;
2404
+
2405
+ #[inline]
2406
+ fn index(&self, index: usize) -> &T {
2407
+ self.get(index).unwrap()
2408
+ }
2409
+ }
2410
+
2411
+ impl<T, U> Index<U> for SnapshotList<T>
2412
+ where
2413
+ U: TypeIdentifier<Data = T>,
2414
+ {
2415
+ type Output = T;
2416
+
2417
+ #[inline]
2418
+ fn index(&self, id: U) -> &T {
2419
+ self.get(id.index()).unwrap()
2420
+ }
2421
+ }
2422
+
2423
+ impl<T> Default for SnapshotList<T> {
2424
+ fn default() -> SnapshotList<T> {
2425
+ SnapshotList {
2426
+ snapshots: Vec::new(),
2427
+ snapshots_total: 0,
2428
+ cur: Vec::new(),
2429
+ }
2430
+ }
2431
+ }
2432
+
2433
+ /// A snapshot list of types.
2434
+ ///
2435
+ /// Note that the snapshot lists below do not correspond with index spaces. Many
2436
+ /// different kinds of types are in the same index space (e.g. all of the
2437
+ /// component model's {component, instance, defined, func} types are in the same
2438
+ /// index space). However, we store each of them in their own type-specific
2439
+ /// snapshot list and give each of them their own identifier type.
2440
+ #[derive(Default, Debug)]
2441
+ // Only public because it shows up in a public trait's `doc(hidden)` method.
2442
+ #[doc(hidden)]
2443
+ pub struct TypeList {
2444
+ // Keeps track of which `alias_id` is an alias of which other `alias_id`.
2445
+ alias_mappings: Map<u32, u32>,
2446
+ // Counter for generating new `alias_id`s.
2447
+ alias_counter: u32,
2448
+ // Snapshots of previously committed `TypeList`s' aliases.
2449
+ alias_snapshots: Vec<TypeListAliasSnapshot>,
2450
+
2451
+ // Core Wasm types.
2452
+ //
2453
+ // A primary map from `CoreTypeId` to `SubType`.
2454
+ core_types: SnapshotList<SubType>,
2455
+ // The id of each core Wasm type's rec group.
2456
+ //
2457
+ // A secondary map from `CoreTypeId` to `RecGroupId`.
2458
+ core_type_to_rec_group: SnapshotList<RecGroupId>,
2459
+ // The supertype of each core type.
2460
+ //
2461
+ // A secondary map from `CoreTypeId` to `Option<CoreTypeId>`.
2462
+ core_type_to_supertype: SnapshotList<Option<CoreTypeId>>,
2463
+ // The subtyping depth of each core type. We use `u8::MAX` as a sentinel for
2464
+ // an uninitialized entry.
2465
+ //
2466
+ // A secondary map from `CoreTypeId` to `u8`.
2467
+ core_type_to_depth: Option<IndexMap<CoreTypeId, u8>>,
2468
+ // A primary map from `RecGroupId` to the range of the rec group's elements
2469
+ // within `core_types`.
2470
+ rec_group_elements: SnapshotList<Range<CoreTypeId>>,
2471
+ // A hash map from rec group elements to their canonical `RecGroupId`.
2472
+ //
2473
+ // This is `None` when a list is "committed" meaning that no more insertions
2474
+ // can happen.
2475
+ canonical_rec_groups: Option<Map<RecGroup, RecGroupId>>,
2476
+
2477
+ // Component model types.
2478
+ components: SnapshotList<ComponentType>,
2479
+ component_defined_types: SnapshotList<ComponentDefinedType>,
2480
+ component_values: SnapshotList<ComponentValType>,
2481
+ component_instances: SnapshotList<ComponentInstanceType>,
2482
+ component_funcs: SnapshotList<ComponentFuncType>,
2483
+ core_modules: SnapshotList<ModuleType>,
2484
+ core_instances: SnapshotList<InstanceType>,
2485
+ }
2486
+
2487
+ #[derive(Clone, Debug)]
2488
+ struct TypeListAliasSnapshot {
2489
+ // The `alias_counter` at the time that this snapshot was taken.
2490
+ alias_counter: u32,
2491
+
2492
+ // The alias mappings in this snapshot.
2493
+ alias_mappings: Map<u32, u32>,
2494
+ }
2495
+
2496
+ struct TypeListCheckpoint {
2497
+ core_types: usize,
2498
+ components: usize,
2499
+ component_defined_types: usize,
2500
+ component_values: usize,
2501
+ component_instances: usize,
2502
+ component_funcs: usize,
2503
+ core_modules: usize,
2504
+ core_instances: usize,
2505
+ core_type_to_rec_group: usize,
2506
+ core_type_to_supertype: usize,
2507
+ core_type_to_depth: usize,
2508
+ rec_group_elements: usize,
2509
+ canonical_rec_groups: usize,
2510
+ }
2511
+
2512
+ impl TypeList {
2513
+ pub fn get<T>(&self, id: T) -> Option<&T::Data>
2514
+ where
2515
+ T: TypeIdentifier,
2516
+ {
2517
+ T::list(self).get(id.index())
2518
+ }
2519
+
2520
+ pub fn push<T>(&mut self, ty: T) -> T::Id
2521
+ where
2522
+ T: TypeData,
2523
+ {
2524
+ let index = u32::try_from(T::Id::list(self).len()).unwrap();
2525
+ let id = T::Id::from_index(index);
2526
+ T::Id::list_mut(self).push(ty);
2527
+ id
2528
+ }
2529
+
2530
+ /// Intern the given recursion group (that has already been canonicalized)
2531
+ /// and return its associated id and whether this was a new recursion group
2532
+ /// or not.
2533
+ pub fn intern_canonical_rec_group(&mut self, rec_group: RecGroup) -> (bool, RecGroupId) {
2534
+ let canonical_rec_groups = self
2535
+ .canonical_rec_groups
2536
+ .as_mut()
2537
+ .expect("cannot intern into a committed list");
2538
+ let entry = match canonical_rec_groups.entry(rec_group) {
2539
+ Entry::Occupied(e) => return (false, *e.get()),
2540
+ Entry::Vacant(e) => e,
2541
+ };
2542
+
2543
+ let rec_group_id = self.rec_group_elements.len();
2544
+ let rec_group_id = u32::try_from(rec_group_id).unwrap();
2545
+ let rec_group_id = RecGroupId::from_index(rec_group_id);
2546
+
2547
+ let start = self.core_types.len();
2548
+ let start = u32::try_from(start).unwrap();
2549
+ let start = CoreTypeId::from_index(start);
2550
+
2551
+ for ty in entry.key().types() {
2552
+ debug_assert_eq!(self.core_types.len(), self.core_type_to_supertype.len());
2553
+ debug_assert_eq!(self.core_types.len(), self.core_type_to_rec_group.len());
2554
+
2555
+ self.core_type_to_supertype
2556
+ .push(ty.supertype_idx.map(|idx| match idx.unpack() {
2557
+ UnpackedIndex::RecGroup(offset) => CoreTypeId::from_index(start.index + offset),
2558
+ UnpackedIndex::Id(id) => id,
2559
+ UnpackedIndex::Module(_) => unreachable!("in canonical form"),
2560
+ }));
2561
+ let mut ty = ty.clone();
2562
+ ty.remap_indices(&mut |index| {
2563
+ match index.unpack() {
2564
+ UnpackedIndex::Id(_) => {}
2565
+ UnpackedIndex::Module(_) => unreachable!(),
2566
+ UnpackedIndex::RecGroup(offset) => {
2567
+ *index = UnpackedIndex::Id(CoreTypeId::from_index(start.index + offset))
2568
+ .pack()
2569
+ .unwrap();
2570
+ }
2571
+ };
2572
+ Ok(())
2573
+ })
2574
+ .expect("cannot fail");
2575
+ self.core_types.push(ty);
2576
+ self.core_type_to_rec_group.push(rec_group_id);
2577
+ }
2578
+
2579
+ let end = self.core_types.len();
2580
+ let end = u32::try_from(end).unwrap();
2581
+ let end = CoreTypeId::from_index(end);
2582
+
2583
+ let range = start..end;
2584
+
2585
+ self.rec_group_elements.push(range.clone());
2586
+
2587
+ entry.insert(rec_group_id);
2588
+ return (true, rec_group_id);
2589
+ }
2590
+
2591
+ /// Get the `CoreTypeId` for a local index into a rec group.
2592
+ pub fn rec_group_local_id(
2593
+ &self,
2594
+ rec_group: RecGroupId,
2595
+ index: u32,
2596
+ offset: usize,
2597
+ ) -> Result<CoreTypeId> {
2598
+ let elems = &self[rec_group];
2599
+ let len = elems.end.index() - elems.start.index();
2600
+ let len = u32::try_from(len).unwrap();
2601
+ if index < len {
2602
+ let id = u32::try_from(elems.start.index()).unwrap() + index;
2603
+ let id = CoreTypeId::from_index(id);
2604
+ Ok(id)
2605
+ } else {
2606
+ bail!(
2607
+ offset,
2608
+ "unknown type {index}: type index out of rec group bounds"
2609
+ )
2610
+ }
2611
+ }
2612
+
2613
+ /// Get the id of the rec group that the given type id was defined within.
2614
+ pub fn rec_group_id_of(&self, id: CoreTypeId) -> RecGroupId {
2615
+ self.core_type_to_rec_group[id.index()]
2616
+ }
2617
+
2618
+ /// Get the super type of the given type id, if any.
2619
+ pub fn supertype_of(&self, id: CoreTypeId) -> Option<CoreTypeId> {
2620
+ self.core_type_to_supertype[id.index()]
2621
+ }
2622
+
2623
+ /// Get the subtyping depth of the given type. A type without any supertype
2624
+ /// has depth 0.
2625
+ pub fn get_subtyping_depth(&self, id: CoreTypeId) -> u8 {
2626
+ let depth = self
2627
+ .core_type_to_depth
2628
+ .as_ref()
2629
+ .expect("cannot get subtype depth from a committed list")[id.index()];
2630
+ debug_assert!(usize::from(depth) <= crate::limits::MAX_WASM_SUBTYPING_DEPTH);
2631
+ depth
2632
+ }
2633
+
2634
+ /// Set the subtyping depth of the given type. This may only be done once
2635
+ /// per type.
2636
+ pub fn set_subtyping_depth(&mut self, id: CoreTypeId, depth: u8) {
2637
+ debug_assert!(usize::from(depth) <= crate::limits::MAX_WASM_SUBTYPING_DEPTH);
2638
+ let map = self
2639
+ .core_type_to_depth
2640
+ .as_mut()
2641
+ .expect("cannot set a subtype depth in a committed list");
2642
+ debug_assert!(!map.contains_key(&id));
2643
+ map.insert(id, depth);
2644
+ }
2645
+
2646
+ /// Get the `CoreTypeId` for a canonicalized `PackedIndex`.
2647
+ ///
2648
+ /// Panics when given a non-canonicalized `PackedIndex`.
2649
+ pub fn at_canonicalized_packed_index(
2650
+ &self,
2651
+ rec_group: RecGroupId,
2652
+ index: PackedIndex,
2653
+ offset: usize,
2654
+ ) -> Result<CoreTypeId> {
2655
+ self.at_canonicalized_unpacked_index(rec_group, index.unpack(), offset)
2656
+ }
2657
+
2658
+ /// Get the `CoreTypeId` for a canonicalized `UnpackedIndex`.
2659
+ ///
2660
+ /// Panics when given a non-canonicalized `PackedIndex`.
2661
+ pub fn at_canonicalized_unpacked_index(
2662
+ &self,
2663
+ rec_group: RecGroupId,
2664
+ index: UnpackedIndex,
2665
+ offset: usize,
2666
+ ) -> Result<CoreTypeId> {
2667
+ match index {
2668
+ UnpackedIndex::Module(_) => panic!("not canonicalized"),
2669
+ UnpackedIndex::Id(id) => Ok(id),
2670
+ UnpackedIndex::RecGroup(idx) => self.rec_group_local_id(rec_group, idx, offset),
2671
+ }
2672
+ }
2673
+
2674
+ /// Does `a` structurally match `b`?
2675
+ pub fn matches(&self, a: CoreTypeId, b: CoreTypeId) -> bool {
2676
+ let a = WithRecGroup::new(self, a);
2677
+ let a = WithRecGroup::map(a, |a| &self[a]);
2678
+
2679
+ let b = WithRecGroup::new(self, b);
2680
+ let b = WithRecGroup::map(b, |b| &self[b]);
2681
+
2682
+ Matches::matches(self, a, b)
2683
+ }
2684
+
2685
+ /// Is `a == b` or was `a` declared (potentially transitively) to be a
2686
+ /// subtype of `b`?
2687
+ pub fn id_is_subtype(&self, mut a: CoreTypeId, b: CoreTypeId) -> bool {
2688
+ loop {
2689
+ if a == b {
2690
+ return true;
2691
+ }
2692
+
2693
+ // TODO: maintain supertype vectors and implement this check in O(1)
2694
+ // instead of O(n) time.
2695
+ a = match self.supertype_of(a) {
2696
+ Some(a) => a,
2697
+ None => return false,
2698
+ };
2699
+ }
2700
+ }
2701
+
2702
+ /// Like `id_is_subtype` but for `RefType`s.
2703
+ ///
2704
+ /// Both `a` and `b` must be canonicalized already.
2705
+ pub fn reftype_is_subtype(&self, a: RefType, b: RefType) -> bool {
2706
+ // NB: Don't need `RecGroupId`s since we are calling from outside of the
2707
+ // rec group, and so any `PackedIndex`es we encounter have already been
2708
+ // canonicalized to `CoreTypeId`s directly.
2709
+ self.reftype_is_subtype_impl(a, None, b, None)
2710
+ }
2711
+
2712
+ /// Implementation of `RefType` and `HeapType` subtyping.
2713
+ ///
2714
+ /// Panics if we need rec groups but aren't given them. Rec groups only need
2715
+ /// to be passed in when checking subtyping of `RefType`s that we encounter
2716
+ /// while validating a rec group itself.
2717
+ pub(crate) fn reftype_is_subtype_impl(
2718
+ &self,
2719
+ a: RefType,
2720
+ a_group: Option<RecGroupId>,
2721
+ b: RefType,
2722
+ b_group: Option<RecGroupId>,
2723
+ ) -> bool {
2724
+ if a == b && a_group == b_group {
2725
+ return true;
2726
+ }
2727
+
2728
+ if a.is_nullable() && !b.is_nullable() {
2729
+ return false;
2730
+ }
2731
+
2732
+ let core_type_id = |group: Option<RecGroupId>, index: UnpackedIndex| -> CoreTypeId {
2733
+ if let Some(id) = index.as_core_type_id() {
2734
+ id
2735
+ } else {
2736
+ self.at_canonicalized_unpacked_index(group.unwrap(), index, usize::MAX)
2737
+ .expect("type references are checked during canonicalization")
2738
+ }
2739
+ };
2740
+
2741
+ let subtype = |group, index| -> &SubType {
2742
+ let id = core_type_id(group, index);
2743
+ &self[id]
2744
+ };
2745
+
2746
+ use HeapType as HT;
2747
+ match (a.heap_type(), b.heap_type()) {
2748
+ (a, b) if a == b => true,
2749
+
2750
+ (HT::Eq | HT::I31 | HT::Struct | HT::Array | HT::None, HT::Any) => true,
2751
+ (HT::I31 | HT::Struct | HT::Array | HT::None, HT::Eq) => true,
2752
+ (HT::NoExtern, HT::Extern) => true,
2753
+ (HT::NoFunc, HT::Func) => true,
2754
+ (HT::None, HT::I31 | HT::Array | HT::Struct) => true,
2755
+
2756
+ (HT::Concrete(a), HT::Eq | HT::Any) => matches!(
2757
+ subtype(a_group, a).composite_type,
2758
+ CompositeType::Array(_) | CompositeType::Struct(_)
2759
+ ),
2760
+
2761
+ (HT::Concrete(a), HT::Struct) => {
2762
+ matches!(subtype(a_group, a).composite_type, CompositeType::Struct(_))
2763
+ }
2764
+
2765
+ (HT::Concrete(a), HT::Array) => {
2766
+ matches!(subtype(a_group, a).composite_type, CompositeType::Array(_))
2767
+ }
2768
+
2769
+ (HT::Concrete(a), HT::Func) => {
2770
+ matches!(subtype(a_group, a).composite_type, CompositeType::Func(_))
2771
+ }
2772
+
2773
+ (HT::Concrete(a), HT::Concrete(b)) => {
2774
+ self.id_is_subtype(core_type_id(a_group, a), core_type_id(b_group, b))
2775
+ }
2776
+
2777
+ (HT::None, HT::Concrete(b)) => matches!(
2778
+ subtype(b_group, b).composite_type,
2779
+ CompositeType::Array(_) | CompositeType::Struct(_)
2780
+ ),
2781
+
2782
+ (HT::NoFunc, HT::Concrete(b)) => {
2783
+ matches!(subtype(b_group, b).composite_type, CompositeType::Func(_))
2784
+ }
2785
+
2786
+ (HT::NoExn, HT::Exn) => true,
2787
+
2788
+ // Nothing else matches. (Avoid full wildcard matches so that
2789
+ // adding/modifying variants is easier in the future.)
2790
+ (HT::Concrete(_), _)
2791
+ | (HT::Func, _)
2792
+ | (HT::Extern, _)
2793
+ | (HT::Any, _)
2794
+ | (HT::None, _)
2795
+ | (HT::NoExtern, _)
2796
+ | (HT::NoFunc, _)
2797
+ | (HT::Eq, _)
2798
+ | (HT::Struct, _)
2799
+ | (HT::Array, _)
2800
+ | (HT::I31, _)
2801
+ | (HT::Exn, _)
2802
+ | (HT::NoExn, _) => false,
2803
+ }
2804
+ }
2805
+
2806
+ /// Like `id_is_subtype` but for `RefType`s.
2807
+ ///
2808
+ /// Both `a` and `b` must be canonicalized already.
2809
+ pub fn valtype_is_subtype(&self, a: ValType, b: ValType) -> bool {
2810
+ match (a, b) {
2811
+ (a, b) if a == b => true,
2812
+ (ValType::Ref(a), ValType::Ref(b)) => self.reftype_is_subtype(a, b),
2813
+ (ValType::Ref(_), _)
2814
+ | (ValType::I32, _)
2815
+ | (ValType::I64, _)
2816
+ | (ValType::F32, _)
2817
+ | (ValType::F64, _)
2818
+ | (ValType::V128, _) => false,
2819
+ }
2820
+ }
2821
+
2822
+ /// Get the top type of the given heap type.
2823
+ ///
2824
+ /// Concrete types must have had their indices canonicalized to core type
2825
+ /// ids, otherwise this method will panic.
2826
+ pub fn top_type(&self, heap_type: &HeapType) -> HeapType {
2827
+ match *heap_type {
2828
+ HeapType::Concrete(idx) => match self[idx.as_core_type_id().unwrap()].composite_type {
2829
+ CompositeType::Func(_) => HeapType::Func,
2830
+ CompositeType::Array(_) | CompositeType::Struct(_) => HeapType::Any,
2831
+ },
2832
+ HeapType::Func | HeapType::NoFunc => HeapType::Func,
2833
+ HeapType::Extern | HeapType::NoExtern => HeapType::Extern,
2834
+ HeapType::Any
2835
+ | HeapType::Eq
2836
+ | HeapType::Struct
2837
+ | HeapType::Array
2838
+ | HeapType::I31
2839
+ | HeapType::None => HeapType::Any,
2840
+ HeapType::Exn | HeapType::NoExn => HeapType::Exn,
2841
+ }
2842
+ }
2843
+
2844
+ fn checkpoint(&self) -> TypeListCheckpoint {
2845
+ let TypeList {
2846
+ alias_mappings: _,
2847
+ alias_counter: _,
2848
+ alias_snapshots: _,
2849
+ core_types,
2850
+ components,
2851
+ component_defined_types,
2852
+ component_values,
2853
+ component_instances,
2854
+ component_funcs,
2855
+ core_modules,
2856
+ core_instances,
2857
+ core_type_to_rec_group,
2858
+ core_type_to_supertype,
2859
+ core_type_to_depth,
2860
+ rec_group_elements,
2861
+ canonical_rec_groups,
2862
+ } = self;
2863
+
2864
+ TypeListCheckpoint {
2865
+ core_types: core_types.len(),
2866
+ components: components.len(),
2867
+ component_defined_types: component_defined_types.len(),
2868
+ component_values: component_values.len(),
2869
+ component_instances: component_instances.len(),
2870
+ component_funcs: component_funcs.len(),
2871
+ core_modules: core_modules.len(),
2872
+ core_instances: core_instances.len(),
2873
+ core_type_to_rec_group: core_type_to_rec_group.len(),
2874
+ core_type_to_supertype: core_type_to_supertype.len(),
2875
+ core_type_to_depth: core_type_to_depth.as_ref().map(|m| m.len()).unwrap_or(0),
2876
+ rec_group_elements: rec_group_elements.len(),
2877
+ canonical_rec_groups: canonical_rec_groups.as_ref().map(|m| m.len()).unwrap_or(0),
2878
+ }
2879
+ }
2880
+
2881
+ fn reset_to_checkpoint(&mut self, checkpoint: TypeListCheckpoint) {
2882
+ let TypeList {
2883
+ alias_mappings: _,
2884
+ alias_counter: _,
2885
+ alias_snapshots: _,
2886
+ core_types,
2887
+ components,
2888
+ component_defined_types,
2889
+ component_values,
2890
+ component_instances,
2891
+ component_funcs,
2892
+ core_modules,
2893
+ core_instances,
2894
+ core_type_to_rec_group,
2895
+ core_type_to_supertype,
2896
+ core_type_to_depth,
2897
+ rec_group_elements,
2898
+ canonical_rec_groups,
2899
+ } = self;
2900
+
2901
+ core_types.truncate(checkpoint.core_types);
2902
+ components.truncate(checkpoint.components);
2903
+ component_defined_types.truncate(checkpoint.component_defined_types);
2904
+ component_values.truncate(checkpoint.component_values);
2905
+ component_instances.truncate(checkpoint.component_instances);
2906
+ component_funcs.truncate(checkpoint.component_funcs);
2907
+ core_modules.truncate(checkpoint.core_modules);
2908
+ core_instances.truncate(checkpoint.core_instances);
2909
+ core_type_to_rec_group.truncate(checkpoint.core_type_to_rec_group);
2910
+ core_type_to_supertype.truncate(checkpoint.core_type_to_supertype);
2911
+ rec_group_elements.truncate(checkpoint.rec_group_elements);
2912
+
2913
+ if let Some(core_type_to_depth) = core_type_to_depth {
2914
+ assert_eq!(
2915
+ core_type_to_depth.len(),
2916
+ checkpoint.core_type_to_depth,
2917
+ "checkpointing does not support resetting `core_type_to_depth` (it would require a \
2918
+ proper immutable and persistent hash map) so adding new groups is disallowed"
2919
+ );
2920
+ }
2921
+ if let Some(canonical_rec_groups) = canonical_rec_groups {
2922
+ assert_eq!(
2923
+ canonical_rec_groups.len(),
2924
+ checkpoint.canonical_rec_groups,
2925
+ "checkpointing does not support resetting `canonical_rec_groups` (it would require a \
2926
+ proper immutable and persistent hash map) so adding new groups is disallowed"
2927
+ );
2928
+ }
2929
+ }
2930
+
2931
+ pub fn commit(&mut self) -> TypeList {
2932
+ // Note that the `alias_counter` is bumped here to ensure that the
2933
+ // previous value of the unique counter is never used for an actual type
2934
+ // so it's suitable for lookup via a binary search.
2935
+ let alias_counter = self.alias_counter;
2936
+ self.alias_counter += 1;
2937
+
2938
+ self.alias_snapshots.push(TypeListAliasSnapshot {
2939
+ alias_counter,
2940
+ alias_mappings: mem::take(&mut self.alias_mappings),
2941
+ });
2942
+
2943
+ TypeList {
2944
+ alias_mappings: Map::default(),
2945
+ alias_counter: self.alias_counter,
2946
+ alias_snapshots: self.alias_snapshots.clone(),
2947
+ core_types: self.core_types.commit(),
2948
+ components: self.components.commit(),
2949
+ component_defined_types: self.component_defined_types.commit(),
2950
+ component_values: self.component_values.commit(),
2951
+ component_instances: self.component_instances.commit(),
2952
+ component_funcs: self.component_funcs.commit(),
2953
+ core_modules: self.core_modules.commit(),
2954
+ core_instances: self.core_instances.commit(),
2955
+ core_type_to_rec_group: self.core_type_to_rec_group.commit(),
2956
+ core_type_to_supertype: self.core_type_to_supertype.commit(),
2957
+ core_type_to_depth: None,
2958
+ rec_group_elements: self.rec_group_elements.commit(),
2959
+ canonical_rec_groups: None,
2960
+ }
2961
+ }
2962
+
2963
+ /// See `SnapshotList::with_unique`.
2964
+ pub fn with_unique<T>(&mut self, mut ty: T) -> T
2965
+ where
2966
+ T: Aliasable,
2967
+ {
2968
+ self.alias_mappings
2969
+ .insert(self.alias_counter, ty.alias_id());
2970
+ ty.set_alias_id(self.alias_counter);
2971
+ self.alias_counter += 1;
2972
+ ty
2973
+ }
2974
+
2975
+ /// Attempts to lookup the type id that `ty` is an alias of.
2976
+ ///
2977
+ /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
2978
+ pub fn peel_alias<T>(&self, mut ty: T) -> Option<T>
2979
+ where
2980
+ T: Aliasable,
2981
+ {
2982
+ let alias_id = ty.alias_id();
2983
+
2984
+ // The unique counter in each snapshot is the unique counter at the
2985
+ // time of the snapshot so it's guaranteed to never be used, meaning
2986
+ // that `Ok` should never show up here. With an `Err` it's where the
2987
+ // index would be placed meaning that the index in question is the
2988
+ // smallest value over the unique id's value, meaning that slot has the
2989
+ // mapping we're interested in.
2990
+ let i = match self
2991
+ .alias_snapshots
2992
+ .binary_search_by_key(&alias_id, |snapshot| snapshot.alias_counter)
2993
+ {
2994
+ Ok(_) => unreachable!(),
2995
+ Err(i) => i,
2996
+ };
2997
+
2998
+ // If the `i` index is beyond the snapshot array then lookup in the
2999
+ // current mappings instead since it may refer to a type not snapshot
3000
+ // yet.
3001
+ ty.set_alias_id(match self.alias_snapshots.get(i) {
3002
+ Some(snapshot) => *snapshot.alias_mappings.get(&alias_id)?,
3003
+ None => *self.alias_mappings.get(&alias_id)?,
3004
+ });
3005
+ Some(ty)
3006
+ }
3007
+ }
3008
+
3009
+ impl<T> Index<T> for TypeList
3010
+ where
3011
+ T: TypeIdentifier,
3012
+ {
3013
+ type Output = T::Data;
3014
+
3015
+ fn index(&self, id: T) -> &Self::Output {
3016
+ let arena = T::list(self);
3017
+ &arena[id.index()]
3018
+ }
3019
+ }
3020
+
3021
+ /// Thin wrapper around `TypeList` which provides an allocator of unique ids for
3022
+ /// types contained within this list.
3023
+ pub(crate) struct TypeAlloc {
3024
+ list: TypeList,
3025
+
3026
+ // This is assigned at creation of a `TypeAlloc` and then never changed.
3027
+ // It's used in one entry for all `ResourceId`s contained within.
3028
+ globally_unique_id: usize,
3029
+
3030
+ // This is a counter that's incremeneted each time `alloc_resource_id` is
3031
+ // called.
3032
+ next_resource_id: u32,
3033
+ }
3034
+
3035
+ impl Default for TypeAlloc {
3036
+ fn default() -> TypeAlloc {
3037
+ static NEXT_GLOBAL_ID: AtomicUsize = AtomicUsize::new(0);
3038
+ let mut ret = TypeAlloc {
3039
+ list: TypeList::default(),
3040
+ globally_unique_id: {
3041
+ let id = NEXT_GLOBAL_ID.fetch_add(1, Ordering::Relaxed);
3042
+ if id > usize::MAX - 10_000 {
3043
+ NEXT_GLOBAL_ID.store(usize::MAX - 10_000, Ordering::Relaxed);
3044
+ panic!("overflow on the global id counter");
3045
+ }
3046
+ id
3047
+ },
3048
+ next_resource_id: 0,
3049
+ };
3050
+ ret.list.core_type_to_depth = Some(Default::default());
3051
+ ret.list.canonical_rec_groups = Some(Default::default());
3052
+ ret
3053
+ }
3054
+ }
3055
+
3056
+ impl Deref for TypeAlloc {
3057
+ type Target = TypeList;
3058
+ fn deref(&self) -> &TypeList {
3059
+ &self.list
3060
+ }
3061
+ }
3062
+
3063
+ impl DerefMut for TypeAlloc {
3064
+ fn deref_mut(&mut self) -> &mut TypeList {
3065
+ &mut self.list
3066
+ }
3067
+ }
3068
+
3069
+ impl TypeAlloc {
3070
+ /// Pushes a new type into this list, returning an identifier which can be
3071
+ /// used to later retrieve it.
3072
+ ///
3073
+ /// The returned identifier is unique within this `TypeAlloc` and won't be
3074
+ /// hash-equivalent to anything else.
3075
+ pub fn push_ty<T>(&mut self, ty: T) -> T::Id
3076
+ where
3077
+ T: TypeData,
3078
+ {
3079
+ self.list.push(ty)
3080
+ }
3081
+
3082
+ /// Allocates a new unique resource identifier.
3083
+ ///
3084
+ /// Note that uniqueness is only a property within this `TypeAlloc`.
3085
+ pub fn alloc_resource_id(&mut self) -> AliasableResourceId {
3086
+ let contextually_unique_id = self.next_resource_id;
3087
+ self.next_resource_id = self.next_resource_id.checked_add(1).unwrap();
3088
+ AliasableResourceId {
3089
+ id: ResourceId {
3090
+ globally_unique_id: self.globally_unique_id,
3091
+ contextually_unique_id,
3092
+ },
3093
+ alias_id: NO_ALIAS,
3094
+ }
3095
+ }
3096
+
3097
+ /// Adds the set of "free variables" of the `id` provided to the `set`
3098
+ /// provided.
3099
+ ///
3100
+ /// Free variables are defined as resources. Any resource, perhaps
3101
+ /// transitively, referred to but not defined by `id` is added to the `set`
3102
+ /// and returned.
3103
+ pub fn free_variables_any_type_id(
3104
+ &self,
3105
+ id: ComponentAnyTypeId,
3106
+ set: &mut IndexSet<ResourceId>,
3107
+ ) {
3108
+ match id {
3109
+ ComponentAnyTypeId::Resource(r) => {
3110
+ set.insert(r.resource());
3111
+ }
3112
+ ComponentAnyTypeId::Defined(id) => {
3113
+ self.free_variables_component_defined_type_id(id, set)
3114
+ }
3115
+ ComponentAnyTypeId::Func(id) => self.free_variables_component_func_type_id(id, set),
3116
+ ComponentAnyTypeId::Instance(id) => {
3117
+ self.free_variables_component_instance_type_id(id, set)
3118
+ }
3119
+ ComponentAnyTypeId::Component(id) => self.free_variables_component_type_id(id, set),
3120
+ }
3121
+ }
3122
+
3123
+ pub fn free_variables_component_defined_type_id(
3124
+ &self,
3125
+ id: ComponentDefinedTypeId,
3126
+ set: &mut IndexSet<ResourceId>,
3127
+ ) {
3128
+ match &self[id] {
3129
+ ComponentDefinedType::Primitive(_)
3130
+ | ComponentDefinedType::Flags(_)
3131
+ | ComponentDefinedType::Enum(_) => {}
3132
+ ComponentDefinedType::Record(r) => {
3133
+ for ty in r.fields.values() {
3134
+ self.free_variables_valtype(ty, set);
3135
+ }
3136
+ }
3137
+ ComponentDefinedType::Tuple(r) => {
3138
+ for ty in r.types.iter() {
3139
+ self.free_variables_valtype(ty, set);
3140
+ }
3141
+ }
3142
+ ComponentDefinedType::Variant(r) => {
3143
+ for ty in r.cases.values() {
3144
+ if let Some(ty) = &ty.ty {
3145
+ self.free_variables_valtype(ty, set);
3146
+ }
3147
+ }
3148
+ }
3149
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
3150
+ self.free_variables_valtype(ty, set);
3151
+ }
3152
+ ComponentDefinedType::Result { ok, err } => {
3153
+ if let Some(ok) = ok {
3154
+ self.free_variables_valtype(ok, set);
3155
+ }
3156
+ if let Some(err) = err {
3157
+ self.free_variables_valtype(err, set);
3158
+ }
3159
+ }
3160
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
3161
+ set.insert(id.resource());
3162
+ }
3163
+ }
3164
+ }
3165
+
3166
+ pub fn free_variables_component_type_id(
3167
+ &self,
3168
+ id: ComponentTypeId,
3169
+ set: &mut IndexSet<ResourceId>,
3170
+ ) {
3171
+ let i = &self[id];
3172
+ // Recurse on the imports/exports of components, but remove the
3173
+ // imported and defined resources within the component itself.
3174
+ //
3175
+ // Technically this needs to add all the free variables of the
3176
+ // exports, remove the defined resources, then add the free
3177
+ // variables of imports, then remove the imported resources. Given
3178
+ // prior validation of component types, however, the defined
3179
+ // and imported resources are disjoint and imports can't refer to
3180
+ // defined resources, so doing this all in one go should be
3181
+ // equivalent.
3182
+ for ty in i.imports.values().chain(i.exports.values()) {
3183
+ self.free_variables_component_entity(ty, set);
3184
+ }
3185
+ for (id, _path) in i.imported_resources.iter().chain(&i.defined_resources) {
3186
+ set.swap_remove(id);
3187
+ }
3188
+ }
3189
+
3190
+ pub fn free_variables_component_instance_type_id(
3191
+ &self,
3192
+ id: ComponentInstanceTypeId,
3193
+ set: &mut IndexSet<ResourceId>,
3194
+ ) {
3195
+ let i = &self[id];
3196
+ // Like components, add in all the free variables of referenced
3197
+ // types but then remove those defined by this component instance
3198
+ // itself.
3199
+ for ty in i.exports.values() {
3200
+ self.free_variables_component_entity(ty, set);
3201
+ }
3202
+ for id in i.defined_resources.iter() {
3203
+ set.swap_remove(id);
3204
+ }
3205
+ }
3206
+
3207
+ pub fn free_variables_component_func_type_id(
3208
+ &self,
3209
+ id: ComponentFuncTypeId,
3210
+ set: &mut IndexSet<ResourceId>,
3211
+ ) {
3212
+ let i = &self[id];
3213
+ for ty in i
3214
+ .params
3215
+ .iter()
3216
+ .map(|(_, ty)| ty)
3217
+ .chain(i.results.iter().map(|(_, ty)| ty))
3218
+ {
3219
+ self.free_variables_valtype(ty, set);
3220
+ }
3221
+ }
3222
+
3223
+ /// Same as `free_variables_type_id`, but for `ComponentEntityType`.
3224
+ pub fn free_variables_component_entity(
3225
+ &self,
3226
+ ty: &ComponentEntityType,
3227
+ set: &mut IndexSet<ResourceId>,
3228
+ ) {
3229
+ match ty {
3230
+ ComponentEntityType::Module(_) => {}
3231
+ ComponentEntityType::Func(id) => self.free_variables_component_func_type_id(*id, set),
3232
+ ComponentEntityType::Instance(id) => {
3233
+ self.free_variables_component_instance_type_id(*id, set)
3234
+ }
3235
+ ComponentEntityType::Component(id) => self.free_variables_component_type_id(*id, set),
3236
+ ComponentEntityType::Type { created, .. } => {
3237
+ self.free_variables_any_type_id(*created, set);
3238
+ }
3239
+ ComponentEntityType::Value(ty) => self.free_variables_valtype(ty, set),
3240
+ }
3241
+ }
3242
+
3243
+ /// Same as `free_variables_type_id`, but for `ComponentValType`.
3244
+ fn free_variables_valtype(&self, ty: &ComponentValType, set: &mut IndexSet<ResourceId>) {
3245
+ match ty {
3246
+ ComponentValType::Primitive(_) => {}
3247
+ ComponentValType::Type(id) => self.free_variables_component_defined_type_id(*id, set),
3248
+ }
3249
+ }
3250
+
3251
+ /// Returns whether the type `id` is "named" where named types are presented
3252
+ /// via the provided `set`.
3253
+ ///
3254
+ /// This requires that `id` is a `Defined` type.
3255
+ pub(crate) fn type_named_type_id(
3256
+ &self,
3257
+ id: ComponentDefinedTypeId,
3258
+ set: &Set<ComponentAnyTypeId>,
3259
+ ) -> bool {
3260
+ let ty = &self[id];
3261
+ match ty {
3262
+ // Primitives are always considered named
3263
+ ComponentDefinedType::Primitive(_) => true,
3264
+
3265
+ // These structures are never allowed to be anonymous, so they
3266
+ // themselves must be named.
3267
+ ComponentDefinedType::Flags(_)
3268
+ | ComponentDefinedType::Enum(_)
3269
+ | ComponentDefinedType::Record(_)
3270
+ | ComponentDefinedType::Variant(_) => set.contains(&ComponentAnyTypeId::from(id)),
3271
+
3272
+ // All types below here are allowed to be anonymous, but their
3273
+ // own components must be appropriately named.
3274
+ ComponentDefinedType::Tuple(r) => {
3275
+ r.types.iter().all(|t| self.type_named_valtype(t, set))
3276
+ }
3277
+ ComponentDefinedType::Result { ok, err } => {
3278
+ ok.as_ref()
3279
+ .map(|t| self.type_named_valtype(t, set))
3280
+ .unwrap_or(true)
3281
+ && err
3282
+ .as_ref()
3283
+ .map(|t| self.type_named_valtype(t, set))
3284
+ .unwrap_or(true)
3285
+ }
3286
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
3287
+ self.type_named_valtype(ty, set)
3288
+ }
3289
+
3290
+ // own/borrow themselves don't have to be named, but the resource
3291
+ // they refer to must be named.
3292
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
3293
+ set.contains(&ComponentAnyTypeId::from(*id))
3294
+ }
3295
+ }
3296
+ }
3297
+
3298
+ pub(crate) fn type_named_valtype(
3299
+ &self,
3300
+ ty: &ComponentValType,
3301
+ set: &Set<ComponentAnyTypeId>,
3302
+ ) -> bool {
3303
+ match ty {
3304
+ ComponentValType::Primitive(_) => true,
3305
+ ComponentValType::Type(id) => self.type_named_type_id(*id, set),
3306
+ }
3307
+ }
3308
+ }
3309
+
3310
+ /// A helper trait to provide the functionality necessary to resources within a
3311
+ /// type.
3312
+ ///
3313
+ /// This currently exists to abstract over `TypeAlloc` and `SubtypeArena` which
3314
+ /// both need to perform remapping operations.
3315
+ pub trait Remap
3316
+ where
3317
+ Self: Index<ComponentTypeId, Output = ComponentType>,
3318
+ Self: Index<ComponentDefinedTypeId, Output = ComponentDefinedType>,
3319
+ Self: Index<ComponentInstanceTypeId, Output = ComponentInstanceType>,
3320
+ Self: Index<ComponentFuncTypeId, Output = ComponentFuncType>,
3321
+ {
3322
+ /// Pushes a new anonymous type within this object, returning an identifier
3323
+ /// which can be used to refer to it.
3324
+ fn push_ty<T>(&mut self, ty: T) -> T::Id
3325
+ where
3326
+ T: TypeData;
3327
+
3328
+ /// Apply `map` to the keys of `tmp`, setting `*any_changed = true` if any
3329
+ /// keys were remapped.
3330
+ fn map_map(
3331
+ tmp: &mut IndexMap<ResourceId, Vec<usize>>,
3332
+ any_changed: &mut bool,
3333
+ map: &Remapping,
3334
+ ) {
3335
+ for (id, path) in mem::take(tmp) {
3336
+ let id = match map.resources.get(&id) {
3337
+ Some(id) => {
3338
+ *any_changed = true;
3339
+ *id
3340
+ }
3341
+ None => id,
3342
+ };
3343
+ tmp.insert(id, path);
3344
+ }
3345
+ }
3346
+
3347
+ /// If `any_changed` is true, push `ty`, update `map` to point `id` to the
3348
+ /// new type ID, set `id` equal to the new type ID, and return `true`.
3349
+ /// Otherwise, update `map` to point `id` to itself and return `false`.
3350
+ fn insert_if_any_changed<T>(
3351
+ &mut self,
3352
+ map: &mut Remapping,
3353
+ any_changed: bool,
3354
+ id: &mut T::Id,
3355
+ ty: T,
3356
+ ) -> bool
3357
+ where
3358
+ T: TypeData,
3359
+ T::Id: Into<ComponentAnyTypeId>,
3360
+ {
3361
+ let new = if any_changed { self.push_ty(ty) } else { *id };
3362
+ map.types.insert((*id).into(), new.into());
3363
+ let changed = *id != new;
3364
+ *id = new;
3365
+ changed
3366
+ }
3367
+
3368
+ /// Recursively search for any resource types reachable from `id`, updating
3369
+ /// it and `map` if any are found and remapped, returning `true` iff at last
3370
+ /// one is remapped.
3371
+ fn remap_component_any_type_id(
3372
+ &mut self,
3373
+ id: &mut ComponentAnyTypeId,
3374
+ map: &mut Remapping,
3375
+ ) -> bool {
3376
+ match id {
3377
+ ComponentAnyTypeId::Resource(id) => self.remap_resource_id(id, map),
3378
+ ComponentAnyTypeId::Defined(id) => self.remap_component_defined_type_id(id, map),
3379
+ ComponentAnyTypeId::Func(id) => self.remap_component_func_type_id(id, map),
3380
+ ComponentAnyTypeId::Instance(id) => self.remap_component_instance_type_id(id, map),
3381
+ ComponentAnyTypeId::Component(id) => self.remap_component_type_id(id, map),
3382
+ }
3383
+ }
3384
+
3385
+ /// If `map` indicates `id` should be remapped, update it and return `true`.
3386
+ /// Otherwise, do nothing and return `false`.
3387
+ fn remap_resource_id(&mut self, id: &mut AliasableResourceId, map: &Remapping) -> bool {
3388
+ if let Some(changed) = map.remap_id(id) {
3389
+ return changed;
3390
+ }
3391
+
3392
+ match map.resources.get(&id.resource()) {
3393
+ None => false,
3394
+ Some(new_id) => {
3395
+ *id.resource_mut() = *new_id;
3396
+ true
3397
+ }
3398
+ }
3399
+ }
3400
+
3401
+ /// Recursively search for any resource types reachable from `id`, updating
3402
+ /// it and `map` if any are found and remapped, returning `true` iff at last
3403
+ /// one is remapped.
3404
+ fn remap_component_type_id(&mut self, id: &mut ComponentTypeId, map: &mut Remapping) -> bool {
3405
+ if let Some(changed) = map.remap_id(id) {
3406
+ return changed;
3407
+ }
3408
+
3409
+ let mut any_changed = false;
3410
+ let mut ty = self[*id].clone();
3411
+ for ty in ty.imports.values_mut().chain(ty.exports.values_mut()) {
3412
+ any_changed |= self.remap_component_entity(ty, map);
3413
+ }
3414
+ for (id, _) in ty
3415
+ .imported_resources
3416
+ .iter_mut()
3417
+ .chain(&mut ty.defined_resources)
3418
+ {
3419
+ if let Some(new) = map.resources.get(id) {
3420
+ *id = *new;
3421
+ any_changed = true;
3422
+ }
3423
+ }
3424
+ Self::map_map(&mut ty.explicit_resources, &mut any_changed, map);
3425
+ self.insert_if_any_changed(map, any_changed, id, ty)
3426
+ }
3427
+
3428
+ /// Recursively search for any resource types reachable from `id`, updating
3429
+ /// it and `map` if any are found and remapped, returning `true` iff at last
3430
+ /// one is remapped.
3431
+ fn remap_component_defined_type_id(
3432
+ &mut self,
3433
+ id: &mut ComponentDefinedTypeId,
3434
+ map: &mut Remapping,
3435
+ ) -> bool {
3436
+ if let Some(changed) = map.remap_id(id) {
3437
+ return changed;
3438
+ }
3439
+
3440
+ let mut any_changed = false;
3441
+ let mut tmp = self[*id].clone();
3442
+ match &mut tmp {
3443
+ ComponentDefinedType::Primitive(_)
3444
+ | ComponentDefinedType::Flags(_)
3445
+ | ComponentDefinedType::Enum(_) => {}
3446
+ ComponentDefinedType::Record(r) => {
3447
+ for ty in r.fields.values_mut() {
3448
+ any_changed |= self.remap_valtype(ty, map);
3449
+ }
3450
+ }
3451
+ ComponentDefinedType::Tuple(r) => {
3452
+ for ty in r.types.iter_mut() {
3453
+ any_changed |= self.remap_valtype(ty, map);
3454
+ }
3455
+ }
3456
+ ComponentDefinedType::Variant(r) => {
3457
+ for ty in r.cases.values_mut() {
3458
+ if let Some(ty) = &mut ty.ty {
3459
+ any_changed |= self.remap_valtype(ty, map);
3460
+ }
3461
+ }
3462
+ }
3463
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
3464
+ any_changed |= self.remap_valtype(ty, map);
3465
+ }
3466
+ ComponentDefinedType::Result { ok, err } => {
3467
+ if let Some(ok) = ok {
3468
+ any_changed |= self.remap_valtype(ok, map);
3469
+ }
3470
+ if let Some(err) = err {
3471
+ any_changed |= self.remap_valtype(err, map);
3472
+ }
3473
+ }
3474
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
3475
+ any_changed |= self.remap_resource_id(id, map);
3476
+ }
3477
+ }
3478
+ self.insert_if_any_changed(map, any_changed, id, tmp)
3479
+ }
3480
+
3481
+ /// Recursively search for any resource types reachable from `id`, updating
3482
+ /// it and `map` if any are found and remapped, returning `true` iff at last
3483
+ /// one is remapped.
3484
+ fn remap_component_instance_type_id(
3485
+ &mut self,
3486
+ id: &mut ComponentInstanceTypeId,
3487
+ map: &mut Remapping,
3488
+ ) -> bool {
3489
+ if let Some(changed) = map.remap_id(id) {
3490
+ return changed;
3491
+ }
3492
+
3493
+ let mut any_changed = false;
3494
+ let mut tmp = self[*id].clone();
3495
+ for ty in tmp.exports.values_mut() {
3496
+ any_changed |= self.remap_component_entity(ty, map);
3497
+ }
3498
+ for id in tmp.defined_resources.iter_mut() {
3499
+ if let Some(new) = map.resources.get(id) {
3500
+ *id = *new;
3501
+ any_changed = true;
3502
+ }
3503
+ }
3504
+ Self::map_map(&mut tmp.explicit_resources, &mut any_changed, map);
3505
+ self.insert_if_any_changed(map, any_changed, id, tmp)
3506
+ }
3507
+
3508
+ /// Recursively search for any resource types reachable from `id`, updating
3509
+ /// it and `map` if any are found and remapped, returning `true` iff at last
3510
+ /// one is remapped.
3511
+ fn remap_component_func_type_id(
3512
+ &mut self,
3513
+ id: &mut ComponentFuncTypeId,
3514
+ map: &mut Remapping,
3515
+ ) -> bool {
3516
+ if let Some(changed) = map.remap_id(id) {
3517
+ return changed;
3518
+ }
3519
+
3520
+ let mut any_changed = false;
3521
+ let mut tmp = self[*id].clone();
3522
+ for ty in tmp
3523
+ .params
3524
+ .iter_mut()
3525
+ .map(|(_, ty)| ty)
3526
+ .chain(tmp.results.iter_mut().map(|(_, ty)| ty))
3527
+ {
3528
+ any_changed |= self.remap_valtype(ty, map);
3529
+ }
3530
+ self.insert_if_any_changed(map, any_changed, id, tmp)
3531
+ }
3532
+
3533
+ /// Same as `remap_type_id`, but works with `ComponentEntityType`.
3534
+ fn remap_component_entity(
3535
+ &mut self,
3536
+ ty: &mut ComponentEntityType,
3537
+ map: &mut Remapping,
3538
+ ) -> bool {
3539
+ match ty {
3540
+ ComponentEntityType::Module(_) => {
3541
+ // Can't reference resources.
3542
+ false
3543
+ }
3544
+ ComponentEntityType::Func(id) => self.remap_component_func_type_id(id, map),
3545
+ ComponentEntityType::Instance(id) => self.remap_component_instance_type_id(id, map),
3546
+ ComponentEntityType::Component(id) => self.remap_component_type_id(id, map),
3547
+ ComponentEntityType::Type {
3548
+ referenced,
3549
+ created,
3550
+ } => {
3551
+ let mut changed = self.remap_component_any_type_id(referenced, map);
3552
+ if *referenced == *created {
3553
+ *created = *referenced;
3554
+ } else {
3555
+ changed |= self.remap_component_any_type_id(created, map);
3556
+ }
3557
+ changed
3558
+ }
3559
+ ComponentEntityType::Value(ty) => self.remap_valtype(ty, map),
3560
+ }
3561
+ }
3562
+
3563
+ /// Same as `remap_type_id`, but works with `ComponentValType`.
3564
+ fn remap_valtype(&mut self, ty: &mut ComponentValType, map: &mut Remapping) -> bool {
3565
+ match ty {
3566
+ ComponentValType::Primitive(_) => false,
3567
+ ComponentValType::Type(id) => self.remap_component_defined_type_id(id, map),
3568
+ }
3569
+ }
3570
+ }
3571
+
3572
+ /// Utility for mapping equivalent `ResourceId`s to each other and (when paired with the `Remap` trait)
3573
+ /// non-destructively edit type lists to reflect those mappings.
3574
+ #[derive(Debug, Default)]
3575
+ pub struct Remapping {
3576
+ /// A mapping from old resource ID to new resource ID.
3577
+ pub(crate) resources: Map<ResourceId, ResourceId>,
3578
+
3579
+ /// A mapping filled in during the remapping process which records how a
3580
+ /// type was remapped, if applicable. This avoids remapping multiple
3581
+ /// references to the same type and instead only processing it once.
3582
+ types: Map<ComponentAnyTypeId, ComponentAnyTypeId>,
3583
+ }
3584
+
3585
+ impl Remap for TypeAlloc {
3586
+ fn push_ty<T>(&mut self, ty: T) -> T::Id
3587
+ where
3588
+ T: TypeData,
3589
+ {
3590
+ <TypeList>::push(self, ty)
3591
+ }
3592
+ }
3593
+
3594
+ impl<T> Index<T> for TypeAlloc
3595
+ where
3596
+ T: TypeIdentifier,
3597
+ {
3598
+ type Output = T::Data;
3599
+
3600
+ #[inline]
3601
+ fn index(&self, id: T) -> &T::Data {
3602
+ &self.list[id]
3603
+ }
3604
+ }
3605
+
3606
+ impl Remapping {
3607
+ /// Add a mapping from the specified old resource ID to the new resource ID
3608
+ pub fn add(&mut self, old: ResourceId, new: ResourceId) {
3609
+ self.resources.insert(old, new);
3610
+ }
3611
+
3612
+ /// Clear the type cache while leaving the resource mappings intact.
3613
+ pub fn reset_type_cache(&mut self) {
3614
+ self.types.clear()
3615
+ }
3616
+
3617
+ fn remap_id<T>(&self, id: &mut T) -> Option<bool>
3618
+ where
3619
+ T: Copy + Into<ComponentAnyTypeId> + TryFrom<ComponentAnyTypeId>,
3620
+ T::Error: core::fmt::Debug,
3621
+ {
3622
+ let old: ComponentAnyTypeId = (*id).into();
3623
+ let new = self.types.get(&old)?;
3624
+ if *new == old {
3625
+ Some(false)
3626
+ } else {
3627
+ *id = T::try_from(*new).expect("should never remap across different kinds");
3628
+ Some(true)
3629
+ }
3630
+ }
3631
+ }
3632
+
3633
+ /// Helper structure used to perform subtyping computations.
3634
+ ///
3635
+ /// This type is used whenever a subtype needs to be tested in one direction or
3636
+ /// the other. The methods of this type are the various entry points for
3637
+ /// subtyping.
3638
+ ///
3639
+ /// Internally this contains arenas for two lists of types. The `a` arena is
3640
+ /// intended to be used for lookup of the first argument to all of the methods
3641
+ /// below, and the `b` arena is used for lookup of the second argument.
3642
+ ///
3643
+ /// Arenas here are used specifically for component-based subtyping queries. In
3644
+ /// these situations new types must be created based on substitution mappings,
3645
+ /// but the types all have temporary lifetimes. Everything in these arenas is
3646
+ /// thrown away once the subtyping computation has finished.
3647
+ ///
3648
+ /// Note that this subtyping context also explicitly supports being created
3649
+ /// from to different lists `a` and `b` originally, for testing subtyping
3650
+ /// between two different components for example.
3651
+ pub struct SubtypeCx<'a> {
3652
+ /// Lookup arena for first type argument
3653
+ pub a: SubtypeArena<'a>,
3654
+ /// Lookup arena for second type argument
3655
+ pub b: SubtypeArena<'a>,
3656
+ }
3657
+
3658
+ impl<'a> SubtypeCx<'a> {
3659
+ /// Create a new instance with the specified type lists
3660
+ pub fn new_with_refs(a: TypesRef<'a>, b: TypesRef<'a>) -> SubtypeCx<'a> {
3661
+ Self::new(a.list, b.list)
3662
+ }
3663
+
3664
+ pub(crate) fn new(a: &'a TypeList, b: &'a TypeList) -> SubtypeCx<'a> {
3665
+ SubtypeCx {
3666
+ a: SubtypeArena::new(a),
3667
+ b: SubtypeArena::new(b),
3668
+ }
3669
+ }
3670
+
3671
+ /// Swap the type lists
3672
+ pub fn swap(&mut self) {
3673
+ mem::swap(&mut self.a, &mut self.b);
3674
+ }
3675
+
3676
+ /// Executes the closure `f`, resetting the internal arenas to their
3677
+ /// original size after the closure finishes.
3678
+ ///
3679
+ /// This enables `f` to modify the internal arenas while relying on all
3680
+ /// changes being discarded after the closure finishes.
3681
+ fn with_checkpoint<T>(&mut self, f: impl FnOnce(&mut Self) -> T) -> T {
3682
+ let a = self.a.list.checkpoint();
3683
+ let b = self.b.list.checkpoint();
3684
+ let result = f(self);
3685
+ self.a.list.reset_to_checkpoint(a);
3686
+ self.b.list.reset_to_checkpoint(b);
3687
+ result
3688
+ }
3689
+
3690
+ /// Tests whether `a` is a subtype of `b`.
3691
+ ///
3692
+ /// Errors are reported at the `offset` specified.
3693
+ pub fn component_entity_type(
3694
+ &mut self,
3695
+ a: &ComponentEntityType,
3696
+ b: &ComponentEntityType,
3697
+ offset: usize,
3698
+ ) -> Result<()> {
3699
+ use ComponentEntityType::*;
3700
+
3701
+ match (a, b) {
3702
+ (Module(a), Module(b)) => self.module_type(*a, *b, offset),
3703
+ (Module(_), b) => bail!(offset, "expected {}, found module", b.desc()),
3704
+
3705
+ (Func(a), Func(b)) => self.component_func_type(*a, *b, offset),
3706
+ (Func(_), b) => bail!(offset, "expected {}, found func", b.desc()),
3707
+
3708
+ (Value(a), Value(b)) => self.component_val_type(a, b, offset),
3709
+ (Value(_), b) => bail!(offset, "expected {}, found value", b.desc()),
3710
+
3711
+ (Type { referenced: a, .. }, Type { referenced: b, .. }) => {
3712
+ self.component_any_type_id(*a, *b, offset)
3713
+ }
3714
+ (Type { .. }, b) => bail!(offset, "expected {}, found type", b.desc()),
3715
+
3716
+ (Instance(a), Instance(b)) => self.component_instance_type(*a, *b, offset),
3717
+ (Instance(_), b) => bail!(offset, "expected {}, found instance", b.desc()),
3718
+
3719
+ (Component(a), Component(b)) => self.component_type(*a, *b, offset),
3720
+ (Component(_), b) => bail!(offset, "expected {}, found component", b.desc()),
3721
+ }
3722
+ }
3723
+
3724
+ /// Tests whether `a` is a subtype of `b`.
3725
+ ///
3726
+ /// Errors are reported at the `offset` specified.
3727
+ pub fn component_type(
3728
+ &mut self,
3729
+ a: ComponentTypeId,
3730
+ b: ComponentTypeId,
3731
+ offset: usize,
3732
+ ) -> Result<()> {
3733
+ // Components are ... tricky. They follow the same basic
3734
+ // structure as core wasm modules, but they also have extra
3735
+ // logic to handle resource types. Resources are effectively
3736
+ // abstract types so this is sort of where an ML module system
3737
+ // in the component model becomes a reality.
3738
+ //
3739
+ // This also leverages the `open_instance_type` method below
3740
+ // heavily which internally has its own quite large suite of
3741
+ // logic. More-or-less what's happening here is:
3742
+ //
3743
+ // 1. Pretend that the imports of B are given as values to the
3744
+ // imports of A. If A didn't import anything, for example,
3745
+ // that's great and the subtyping definitely passes there.
3746
+ // This operation produces a mapping of all the resources of
3747
+ // A's imports to resources in B's imports.
3748
+ //
3749
+ // 2. This mapping is applied to all of A's exports. This means
3750
+ // that all exports of A referring to A's imported resources
3751
+ // now instead refer to B's. Note, though that A's exports
3752
+ // still refer to its own defined resources.
3753
+ //
3754
+ // 3. The same `open_instance_type` method used during the
3755
+ // first step is used again, but this time on the exports
3756
+ // in the reverse direction. This performs a similar
3757
+ // operation, though, by creating a mapping from B's
3758
+ // defined resources to A's defined resources. The map
3759
+ // itself is discarded as it's not needed.
3760
+ //
3761
+ // The order that everything passed here is intentional, but
3762
+ // also subtle. I personally think of it as
3763
+ // `open_instance_type` takes a list of things to satisfy a
3764
+ // signature and produces a mapping of resources in the
3765
+ // signature to those provided in the list of things. The
3766
+ // order of operations then goes:
3767
+ //
3768
+ // * Someone thinks they have a component of type B, but they
3769
+ // actually have a component of type A (e.g. due to this
3770
+ // subtype check passing).
3771
+ // * This person provides the imports of B and that must be
3772
+ // sufficient to satisfy the imports of A. This is the first
3773
+ // `open_instance_type` check.
3774
+ // * Now though the resources provided by B are substituted
3775
+ // into A's exports since that's what was provided.
3776
+ // * A's exports are then handed back to the original person,
3777
+ // and these exports must satisfy the signature required by B
3778
+ // since that's what they're expecting.
3779
+ // * This is the second `open_instance_type` which, to get
3780
+ // resource types to line up, will map from A's defined
3781
+ // resources to B's defined resources.
3782
+ //
3783
+ // If all that passes then the resources should all line up
3784
+ // perfectly. Any misalignment is reported as a subtyping
3785
+ // error.
3786
+ let b_imports = self.b[b]
3787
+ .imports
3788
+ .iter()
3789
+ .map(|(name, ty)| (name.clone(), ty.clone()))
3790
+ .collect();
3791
+ self.swap();
3792
+ let mut import_mapping =
3793
+ self.open_instance_type(&b_imports, a, ExternKind::Import, offset)?;
3794
+ self.swap();
3795
+ self.with_checkpoint(|this| {
3796
+ let mut a_exports = this.a[a]
3797
+ .exports
3798
+ .iter()
3799
+ .map(|(name, ty)| (name.clone(), ty.clone()))
3800
+ .collect::<IndexMap<_, _>>();
3801
+ for ty in a_exports.values_mut() {
3802
+ this.a.remap_component_entity(ty, &mut import_mapping);
3803
+ }
3804
+ this.open_instance_type(&a_exports, b, ExternKind::Export, offset)?;
3805
+ Ok(())
3806
+ })
3807
+ }
3808
+
3809
+ /// Tests whether `a` is a subtype of `b`.
3810
+ ///
3811
+ /// Errors are reported at the `offset` specified.
3812
+ pub fn component_instance_type(
3813
+ &mut self,
3814
+ a_id: ComponentInstanceTypeId,
3815
+ b_id: ComponentInstanceTypeId,
3816
+ offset: usize,
3817
+ ) -> Result<()> {
3818
+ // For instance type subtyping, all exports in the other
3819
+ // instance type must be present in this instance type's
3820
+ // exports (i.e. it can export *more* than what this instance
3821
+ // type needs).
3822
+ let a = &self.a[a_id];
3823
+ let b = &self.b[b_id];
3824
+
3825
+ let mut exports = Vec::with_capacity(b.exports.len());
3826
+ for (k, b) in b.exports.iter() {
3827
+ match a.exports.get(k) {
3828
+ Some(a) => exports.push((*a, *b)),
3829
+ None => bail!(offset, "missing expected export `{k}`"),
3830
+ }
3831
+ }
3832
+ for (i, (a, b)) in exports.iter().enumerate() {
3833
+ let err = match self.component_entity_type(a, b, offset) {
3834
+ Ok(()) => continue,
3835
+ Err(e) => e,
3836
+ };
3837
+ // On failure attach the name of this export as context to
3838
+ // the error message to leave a breadcrumb trail.
3839
+ let (name, _) = self.b[b_id].exports.get_index(i).unwrap();
3840
+ return Err(err.with_context(|| format!("type mismatch in instance export `{name}`")));
3841
+ }
3842
+ Ok(())
3843
+ }
3844
+
3845
+ /// Tests whether `a` is a subtype of `b`.
3846
+ ///
3847
+ /// Errors are reported at the `offset` specified.
3848
+ pub fn component_func_type(
3849
+ &mut self,
3850
+ a: ComponentFuncTypeId,
3851
+ b: ComponentFuncTypeId,
3852
+ offset: usize,
3853
+ ) -> Result<()> {
3854
+ let a = &self.a[a];
3855
+ let b = &self.b[b];
3856
+
3857
+ // Note that this intentionally diverges from the upstream
3858
+ // specification in terms of subtyping. This is a full
3859
+ // type-equality check which ensures that the structure of `a`
3860
+ // exactly matches the structure of `b`. The rationale for this
3861
+ // is:
3862
+ //
3863
+ // * Primarily in Wasmtime subtyping based on function types is
3864
+ // not implemented. This includes both subtyping a host
3865
+ // import and additionally handling subtyping as functions
3866
+ // cross component boundaries. The host import subtyping (or
3867
+ // component export subtyping) is not clear how to handle at
3868
+ // all at this time. The subtyping of functions between
3869
+ // components can more easily be handled by extending the
3870
+ // `fact` compiler, but that hasn't been done yet.
3871
+ //
3872
+ // * The upstream specification is currently pretty
3873
+ // intentionally vague precisely what subtyping is allowed.
3874
+ // Implementing a strict check here is intended to be a
3875
+ // conservative starting point for the component model which
3876
+ // can be extended in the future if necessary.
3877
+ //
3878
+ // * The interaction with subtyping on bindings generation, for
3879
+ // example, is a tricky problem that doesn't have a clear
3880
+ // answer at this time. Effectively this is more rationale
3881
+ // for being conservative in the first pass of the component
3882
+ // model.
3883
+ //
3884
+ // So, in conclusion, the test here (and other places that
3885
+ // reference this comment) is for exact type equality with no
3886
+ // differences.
3887
+ if a.params.len() != b.params.len() {
3888
+ bail!(
3889
+ offset,
3890
+ "expected {} parameters, found {}",
3891
+ b.params.len(),
3892
+ a.params.len(),
3893
+ );
3894
+ }
3895
+ if a.results.len() != b.results.len() {
3896
+ bail!(
3897
+ offset,
3898
+ "expected {} results, found {}",
3899
+ b.results.len(),
3900
+ a.results.len(),
3901
+ );
3902
+ }
3903
+ for ((an, a), (bn, b)) in a.params.iter().zip(b.params.iter()) {
3904
+ if an != bn {
3905
+ bail!(offset, "expected parameter named `{bn}`, found `{an}`");
3906
+ }
3907
+ self.component_val_type(a, b, offset)
3908
+ .with_context(|| format!("type mismatch in function parameter `{an}`"))?;
3909
+ }
3910
+ for ((an, a), (bn, b)) in a.results.iter().zip(b.results.iter()) {
3911
+ if an != bn {
3912
+ bail!(offset, "mismatched result names");
3913
+ }
3914
+ self.component_val_type(a, b, offset)
3915
+ .with_context(|| "type mismatch with result type")?;
3916
+ }
3917
+ Ok(())
3918
+ }
3919
+
3920
+ /// Tests whether `a` is a subtype of `b`.
3921
+ ///
3922
+ /// Errors are reported at the `offset` specified.
3923
+ pub fn module_type(
3924
+ &mut self,
3925
+ a: ComponentCoreModuleTypeId,
3926
+ b: ComponentCoreModuleTypeId,
3927
+ offset: usize,
3928
+ ) -> Result<()> {
3929
+ // For module type subtyping, all exports in the other module
3930
+ // type must be present in this module type's exports (i.e. it
3931
+ // can export *more* than what this module type needs).
3932
+ // However, for imports, the check is reversed (i.e. it is okay
3933
+ // to import *less* than what this module type needs).
3934
+ self.swap();
3935
+ let a_imports = &self.b[a].imports;
3936
+ let b_imports = &self.a[b].imports;
3937
+ for (k, a) in a_imports {
3938
+ match b_imports.get(k) {
3939
+ Some(b) => self
3940
+ .entity_type(b, a, offset)
3941
+ .with_context(|| format!("type mismatch in import `{}::{}`", k.0, k.1))?,
3942
+ None => bail!(offset, "missing expected import `{}::{}`", k.0, k.1),
3943
+ }
3944
+ }
3945
+ self.swap();
3946
+ let a = &self.a[a];
3947
+ let b = &self.b[b];
3948
+ for (k, b) in b.exports.iter() {
3949
+ match a.exports.get(k) {
3950
+ Some(a) => self
3951
+ .entity_type(a, b, offset)
3952
+ .with_context(|| format!("type mismatch in export `{k}`"))?,
3953
+ None => bail!(offset, "missing expected export `{k}`"),
3954
+ }
3955
+ }
3956
+ Ok(())
3957
+ }
3958
+
3959
+ /// Tests whether `a` is a subtype of `b`.
3960
+ ///
3961
+ /// Errors are reported at the `offset` specified.
3962
+ pub fn component_any_type_id(
3963
+ &mut self,
3964
+ a: ComponentAnyTypeId,
3965
+ b: ComponentAnyTypeId,
3966
+ offset: usize,
3967
+ ) -> Result<()> {
3968
+ match (a, b) {
3969
+ (ComponentAnyTypeId::Resource(a), ComponentAnyTypeId::Resource(b)) => {
3970
+ if a.resource() == b.resource() {
3971
+ Ok(())
3972
+ } else {
3973
+ bail!(
3974
+ offset,
3975
+ "resource types are not the same ({:?} vs. {:?})",
3976
+ a.resource(),
3977
+ b.resource()
3978
+ )
3979
+ }
3980
+ }
3981
+ (ComponentAnyTypeId::Resource(_), b) => {
3982
+ bail!(offset, "expected {}, found resource", b.desc())
3983
+ }
3984
+ (ComponentAnyTypeId::Defined(a), ComponentAnyTypeId::Defined(b)) => {
3985
+ self.component_defined_type(a, b, offset)
3986
+ }
3987
+ (ComponentAnyTypeId::Defined(_), b) => {
3988
+ bail!(offset, "expected {}, found defined type", b.desc())
3989
+ }
3990
+
3991
+ (ComponentAnyTypeId::Func(a), ComponentAnyTypeId::Func(b)) => {
3992
+ self.component_func_type(a, b, offset)
3993
+ }
3994
+ (ComponentAnyTypeId::Func(_), b) => {
3995
+ bail!(offset, "expected {}, found func type", b.desc())
3996
+ }
3997
+
3998
+ (ComponentAnyTypeId::Instance(a), ComponentAnyTypeId::Instance(b)) => {
3999
+ self.component_instance_type(a, b, offset)
4000
+ }
4001
+ (ComponentAnyTypeId::Instance(_), b) => {
4002
+ bail!(offset, "expected {}, found instance type", b.desc())
4003
+ }
4004
+
4005
+ (ComponentAnyTypeId::Component(a), ComponentAnyTypeId::Component(b)) => {
4006
+ self.component_type(a, b, offset)
4007
+ }
4008
+ (ComponentAnyTypeId::Component(_), b) => {
4009
+ bail!(offset, "expected {}, found component type", b.desc())
4010
+ }
4011
+ }
4012
+ }
4013
+
4014
+ /// The building block for subtyping checks when components are
4015
+ /// instantiated and when components are tested if they're subtypes of each
4016
+ /// other.
4017
+ ///
4018
+ /// This method takes a number of arguments:
4019
+ ///
4020
+ /// * `a` - this is a list of typed items which can be thought of as
4021
+ /// concrete values to test against `b`.
4022
+ /// * `b` - this `TypeId` must point to `Type::Component`.
4023
+ /// * `kind` - indicates whether the `imports` or `exports` of `b` are
4024
+ /// being tested against for the values in `a`.
4025
+ /// * `offset` - the binary offset at which to report errors if one happens.
4026
+ ///
4027
+ /// This will attempt to determine if the items in `a` satisfy the
4028
+ /// signature required by the `kind` items of `b`. For example component
4029
+ /// instantiation will have `a` as the list of arguments provided to
4030
+ /// instantiation, `b` is the component being instantiated, and `kind` is
4031
+ /// `ExternKind::Import`.
4032
+ ///
4033
+ /// This function, if successful, will return a mapping of the resources in
4034
+ /// `b` to the resources in `a` provided. This mapping is guaranteed to
4035
+ /// contain all the resources for `b` (all imported resources for
4036
+ /// `ExternKind::Import` or all defined resources for `ExternKind::Export`).
4037
+ pub fn open_instance_type(
4038
+ &mut self,
4039
+ a: &IndexMap<String, ComponentEntityType>,
4040
+ b: ComponentTypeId,
4041
+ kind: ExternKind,
4042
+ offset: usize,
4043
+ ) -> Result<Remapping> {
4044
+ // First, determine the mapping from resources in `b` to those supplied
4045
+ // by arguments in `a`.
4046
+ //
4047
+ // This loop will iterate over all the appropriate resources in `b`
4048
+ // and find the corresponding resource in `args`. The exact lists
4049
+ // in use here depend on the `kind` provided. This necessarily requires
4050
+ // a sequence of string lookups to find the corresponding items in each
4051
+ // list.
4052
+ //
4053
+ // The path to each resource in `resources` is precomputed as a list of
4054
+ // indexes. The first index is into `b`'s list of `entities`, and gives
4055
+ // the name that `b` assigns to the resource. Each subsequent index,
4056
+ // if present, means that this resource was present through a layer of
4057
+ // an instance type, and the index is into the instance type's exports.
4058
+ // More information about this can be found on
4059
+ // `ComponentState::imported_resources`.
4060
+ //
4061
+ // This loop will follow the list of indices for each resource and, at
4062
+ // the same time, walk through the arguments supplied to instantiating
4063
+ // the `component_type`. This means that within `component_type`
4064
+ // index-based lookups are performed while in `args` name-based
4065
+ // lookups are performed.
4066
+ //
4067
+ // Note that here it's possible that `args` doesn't actually supply the
4068
+ // correct type of import for each item since argument checking has
4069
+ // not proceeded yet. These type errors, however, aren't handled by
4070
+ // this loop and are deferred below to the main subtyping check. That
4071
+ // means that `mapping` won't necessarily have a mapping for all
4072
+ // imported resources into `component_type`, but that should be ok.
4073
+ let component_type = &self.b[b];
4074
+ let entities = match kind {
4075
+ ExternKind::Import => &component_type.imports,
4076
+ ExternKind::Export => &component_type.exports,
4077
+ };
4078
+ let resources = match kind {
4079
+ ExternKind::Import => &component_type.imported_resources,
4080
+ ExternKind::Export => &component_type.defined_resources,
4081
+ };
4082
+ let mut mapping = Remapping::default();
4083
+ 'outer: for (resource, path) in resources.iter() {
4084
+ // Lookup the first path item in `imports` and the corresponding
4085
+ // entry in `args` by name.
4086
+ let (name, ty) = entities.get_index(path[0]).unwrap();
4087
+ let mut ty = *ty;
4088
+ let mut arg = a.get(name);
4089
+
4090
+ // Lookup all the subsequent `path` entries, if any, by index in
4091
+ // `ty` and by name in `arg`. Type errors in `arg` are skipped over
4092
+ // entirely.
4093
+ for i in path.iter().skip(1).copied() {
4094
+ let id = match ty {
4095
+ ComponentEntityType::Instance(id) => id,
4096
+ _ => unreachable!(),
4097
+ };
4098
+ let (name, next_ty) = self.b[id].exports.get_index(i).unwrap();
4099
+ ty = *next_ty;
4100
+ arg = match arg {
4101
+ Some(ComponentEntityType::Instance(id)) => self.a[*id].exports.get(name),
4102
+ _ => continue 'outer,
4103
+ };
4104
+ }
4105
+
4106
+ // Double-check that `ty`, the leaf type of `component_type`, is
4107
+ // indeed the expected resource.
4108
+ if cfg!(debug_assertions) {
4109
+ let id = match ty {
4110
+ ComponentEntityType::Type { created, .. } => match created {
4111
+ ComponentAnyTypeId::Resource(id) => id.resource(),
4112
+ _ => unreachable!(),
4113
+ },
4114
+ _ => unreachable!(),
4115
+ };
4116
+ assert_eq!(id, *resource);
4117
+ }
4118
+
4119
+ // The leaf of `arg` should be a type which is a resource. If not
4120
+ // it's skipped and this'll wind up generating an error later on in
4121
+ // subtype checking below.
4122
+ if let Some(ComponentEntityType::Type { created, .. }) = arg {
4123
+ if let ComponentAnyTypeId::Resource(r) = created {
4124
+ mapping.resources.insert(*resource, r.resource());
4125
+ }
4126
+ }
4127
+ }
4128
+
4129
+ // Now that a mapping from the resources in `b` to the resources in `a`
4130
+ // has been determined it's possible to perform the actual subtype
4131
+ // check.
4132
+ //
4133
+ // This subtype check notably needs to ensure that all resource types
4134
+ // line up. To achieve this the `mapping` previously calculated is used
4135
+ // to perform a substitution on each component entity type.
4136
+ //
4137
+ // The first loop here performs a name lookup to create a list of
4138
+ // values from `a` to expected items in `b`. Once the list is created
4139
+ // the substitution check is performed on each element.
4140
+ let mut to_typecheck = Vec::new();
4141
+ for (name, expected) in entities.iter() {
4142
+ match a.get(name) {
4143
+ Some(arg) => to_typecheck.push((arg.clone(), expected.clone())),
4144
+ None => bail!(offset, "missing {} named `{name}`", kind.desc()),
4145
+ }
4146
+ }
4147
+ let mut type_map = Map::default();
4148
+ for (i, (actual, expected)) in to_typecheck.into_iter().enumerate() {
4149
+ let result = self.with_checkpoint(|this| {
4150
+ let mut expected = expected;
4151
+ this.b.remap_component_entity(&mut expected, &mut mapping);
4152
+ mapping.types.clear();
4153
+ this.component_entity_type(&actual, &expected, offset)
4154
+ });
4155
+ let err = match result {
4156
+ Ok(()) => {
4157
+ // On a successful type-check record a mapping of
4158
+ // type-to-type in `type_map` for any type imports that were
4159
+ // satisfied. This is then used afterwards when performing
4160
+ // type substitution to remap all component-local types to
4161
+ // those that were provided in the imports.
4162
+ self.register_type_renamings(actual, expected, &mut type_map);
4163
+ continue;
4164
+ }
4165
+ Err(e) => e,
4166
+ };
4167
+
4168
+ // If an error happens then attach the name of the entity to the
4169
+ // error message using the `i` iteration counter.
4170
+ let component_type = &self.b[b];
4171
+ let entities = match kind {
4172
+ ExternKind::Import => &component_type.imports,
4173
+ ExternKind::Export => &component_type.exports,
4174
+ };
4175
+ let (name, _) = entities.get_index(i).unwrap();
4176
+ return Err(err.with_context(|| format!("type mismatch for {} `{name}`", kind.desc())));
4177
+ }
4178
+ mapping.types = type_map;
4179
+ Ok(mapping)
4180
+ }
4181
+
4182
+ pub(crate) fn entity_type(&self, a: &EntityType, b: &EntityType, offset: usize) -> Result<()> {
4183
+ macro_rules! limits_match {
4184
+ ($a:expr, $b:expr) => {{
4185
+ let a = $a;
4186
+ let b = $b;
4187
+ a.initial >= b.initial
4188
+ && match b.maximum {
4189
+ Some(b_max) => match a.maximum {
4190
+ Some(a_max) => a_max <= b_max,
4191
+ None => false,
4192
+ },
4193
+ None => true,
4194
+ }
4195
+ }};
4196
+ }
4197
+
4198
+ match (a, b) {
4199
+ (EntityType::Func(a), EntityType::Func(b)) => {
4200
+ self.core_func_type(self.a[*a].unwrap_func(), self.b[*b].unwrap_func(), offset)
4201
+ }
4202
+ (EntityType::Func(_), b) => bail!(offset, "expected {}, found func", b.desc()),
4203
+ (EntityType::Table(a), EntityType::Table(b)) => {
4204
+ if a.element_type != b.element_type {
4205
+ bail!(
4206
+ offset,
4207
+ "expected table element type {}, found {}",
4208
+ b.element_type,
4209
+ a.element_type,
4210
+ )
4211
+ }
4212
+ if limits_match!(a, b) {
4213
+ Ok(())
4214
+ } else {
4215
+ bail!(offset, "mismatch in table limits")
4216
+ }
4217
+ }
4218
+ (EntityType::Table(_), b) => bail!(offset, "expected {}, found table", b.desc()),
4219
+ (EntityType::Memory(a), EntityType::Memory(b)) => {
4220
+ if a.shared != b.shared {
4221
+ bail!(offset, "mismatch in the shared flag for memories")
4222
+ }
4223
+ if a.memory64 != b.memory64 {
4224
+ bail!(offset, "mismatch in index type used for memories")
4225
+ }
4226
+ if limits_match!(a, b) {
4227
+ Ok(())
4228
+ } else {
4229
+ bail!(offset, "mismatch in memory limits")
4230
+ }
4231
+ }
4232
+ (EntityType::Memory(_), b) => bail!(offset, "expected {}, found memory", b.desc()),
4233
+ (EntityType::Global(a), EntityType::Global(b)) => {
4234
+ if a.mutable != b.mutable {
4235
+ bail!(offset, "global types differ in mutability")
4236
+ }
4237
+ if a.content_type == b.content_type {
4238
+ Ok(())
4239
+ } else {
4240
+ bail!(
4241
+ offset,
4242
+ "expected global type {}, found {}",
4243
+ b.content_type,
4244
+ a.content_type,
4245
+ )
4246
+ }
4247
+ }
4248
+ (EntityType::Global(_), b) => bail!(offset, "expected {}, found global", b.desc()),
4249
+ (EntityType::Tag(a), EntityType::Tag(b)) => {
4250
+ self.core_func_type(self.a[*a].unwrap_func(), self.b[*b].unwrap_func(), offset)
4251
+ }
4252
+ (EntityType::Tag(_), b) => bail!(offset, "expected {}, found tag", b.desc()),
4253
+ }
4254
+ }
4255
+
4256
+ fn core_func_type(&self, a: &FuncType, b: &FuncType, offset: usize) -> Result<()> {
4257
+ if a == b {
4258
+ Ok(())
4259
+ } else {
4260
+ bail!(
4261
+ offset,
4262
+ "expected: {}\n\
4263
+ found: {}",
4264
+ b.desc(),
4265
+ a.desc(),
4266
+ )
4267
+ }
4268
+ }
4269
+
4270
+ pub(crate) fn component_val_type(
4271
+ &self,
4272
+ a: &ComponentValType,
4273
+ b: &ComponentValType,
4274
+ offset: usize,
4275
+ ) -> Result<()> {
4276
+ match (a, b) {
4277
+ (ComponentValType::Primitive(a), ComponentValType::Primitive(b)) => {
4278
+ self.primitive_val_type(*a, *b, offset)
4279
+ }
4280
+ (ComponentValType::Type(a), ComponentValType::Type(b)) => {
4281
+ self.component_defined_type(*a, *b, offset)
4282
+ }
4283
+ (ComponentValType::Primitive(a), ComponentValType::Type(b)) => match &self.b[*b] {
4284
+ ComponentDefinedType::Primitive(b) => self.primitive_val_type(*a, *b, offset),
4285
+ b => bail!(offset, "expected {}, found {a}", b.desc()),
4286
+ },
4287
+ (ComponentValType::Type(a), ComponentValType::Primitive(b)) => match &self.a[*a] {
4288
+ ComponentDefinedType::Primitive(a) => self.primitive_val_type(*a, *b, offset),
4289
+ a => bail!(offset, "expected {b}, found {}", a.desc()),
4290
+ },
4291
+ }
4292
+ }
4293
+
4294
+ fn component_defined_type(
4295
+ &self,
4296
+ a: ComponentDefinedTypeId,
4297
+ b: ComponentDefinedTypeId,
4298
+ offset: usize,
4299
+ ) -> Result<()> {
4300
+ use ComponentDefinedType::*;
4301
+
4302
+ // Note that the implementation of subtyping here diverges from the
4303
+ // upstream specification intentionally, see the documentation on
4304
+ // function subtyping for more information.
4305
+ match (&self.a[a], &self.b[b]) {
4306
+ (Primitive(a), Primitive(b)) => self.primitive_val_type(*a, *b, offset),
4307
+ (Primitive(a), b) => bail!(offset, "expected {}, found {a}", b.desc()),
4308
+ (Record(a), Record(b)) => {
4309
+ if a.fields.len() != b.fields.len() {
4310
+ bail!(
4311
+ offset,
4312
+ "expected {} fields, found {}",
4313
+ b.fields.len(),
4314
+ a.fields.len(),
4315
+ );
4316
+ }
4317
+
4318
+ for ((aname, a), (bname, b)) in a.fields.iter().zip(b.fields.iter()) {
4319
+ if aname != bname {
4320
+ bail!(offset, "expected field name `{bname}`, found `{aname}`");
4321
+ }
4322
+ self.component_val_type(a, b, offset)
4323
+ .with_context(|| format!("type mismatch in record field `{aname}`"))?;
4324
+ }
4325
+ Ok(())
4326
+ }
4327
+ (Record(_), b) => bail!(offset, "expected {}, found record", b.desc()),
4328
+ (Variant(a), Variant(b)) => {
4329
+ if a.cases.len() != b.cases.len() {
4330
+ bail!(
4331
+ offset,
4332
+ "expected {} cases, found {}",
4333
+ b.cases.len(),
4334
+ a.cases.len(),
4335
+ );
4336
+ }
4337
+ for ((aname, a), (bname, b)) in a.cases.iter().zip(b.cases.iter()) {
4338
+ if aname != bname {
4339
+ bail!(offset, "expected case named `{bname}`, found `{aname}`");
4340
+ }
4341
+ match (&a.ty, &b.ty) {
4342
+ (Some(a), Some(b)) => self
4343
+ .component_val_type(a, b, offset)
4344
+ .with_context(|| format!("type mismatch in variant case `{aname}`"))?,
4345
+ (None, None) => {}
4346
+ (None, Some(_)) => {
4347
+ bail!(offset, "expected case `{aname}` to have a type, found none")
4348
+ }
4349
+ (Some(_), None) => bail!(offset, "expected case `{aname}` to have no type"),
4350
+ }
4351
+ }
4352
+ Ok(())
4353
+ }
4354
+ (Variant(_), b) => bail!(offset, "expected {}, found variant", b.desc()),
4355
+ (List(a), List(b)) | (Option(a), Option(b)) => self.component_val_type(a, b, offset),
4356
+ (List(_), b) => bail!(offset, "expected {}, found list", b.desc()),
4357
+ (Option(_), b) => bail!(offset, "expected {}, found option", b.desc()),
4358
+ (Tuple(a), Tuple(b)) => {
4359
+ if a.types.len() != b.types.len() {
4360
+ bail!(
4361
+ offset,
4362
+ "expected {} types, found {}",
4363
+ b.types.len(),
4364
+ a.types.len(),
4365
+ );
4366
+ }
4367
+ for (i, (a, b)) in a.types.iter().zip(b.types.iter()).enumerate() {
4368
+ self.component_val_type(a, b, offset)
4369
+ .with_context(|| format!("type mismatch in tuple field {i}"))?;
4370
+ }
4371
+ Ok(())
4372
+ }
4373
+ (Tuple(_), b) => bail!(offset, "expected {}, found tuple", b.desc()),
4374
+ (at @ Flags(a), Flags(b)) | (at @ Enum(a), Enum(b)) => {
4375
+ let desc = match at {
4376
+ Flags(_) => "flags",
4377
+ _ => "enum",
4378
+ };
4379
+ if a.len() == b.len() && a.iter().eq(b.iter()) {
4380
+ Ok(())
4381
+ } else {
4382
+ bail!(offset, "mismatch in {desc} elements")
4383
+ }
4384
+ }
4385
+ (Flags(_), b) => bail!(offset, "expected {}, found flags", b.desc()),
4386
+ (Enum(_), b) => bail!(offset, "expected {}, found enum", b.desc()),
4387
+ (Result { ok: ao, err: ae }, Result { ok: bo, err: be }) => {
4388
+ match (ao, bo) {
4389
+ (None, None) => {}
4390
+ (Some(a), Some(b)) => self
4391
+ .component_val_type(a, b, offset)
4392
+ .with_context(|| "type mismatch in ok variant")?,
4393
+ (None, Some(_)) => bail!(offset, "expected ok type, but found none"),
4394
+ (Some(_), None) => bail!(offset, "expected ok type to not be present"),
4395
+ }
4396
+ match (ae, be) {
4397
+ (None, None) => {}
4398
+ (Some(a), Some(b)) => self
4399
+ .component_val_type(a, b, offset)
4400
+ .with_context(|| "type mismatch in err variant")?,
4401
+ (None, Some(_)) => bail!(offset, "expected err type, but found none"),
4402
+ (Some(_), None) => bail!(offset, "expected err type to not be present"),
4403
+ }
4404
+ Ok(())
4405
+ }
4406
+ (Result { .. }, b) => bail!(offset, "expected {}, found result", b.desc()),
4407
+ (Own(a), Own(b)) | (Borrow(a), Borrow(b)) => {
4408
+ if a.resource() == b.resource() {
4409
+ Ok(())
4410
+ } else {
4411
+ bail!(offset, "resource types are not the same")
4412
+ }
4413
+ }
4414
+ (Own(_), b) => bail!(offset, "expected {}, found own", b.desc()),
4415
+ (Borrow(_), b) => bail!(offset, "expected {}, found borrow", b.desc()),
4416
+ }
4417
+ }
4418
+
4419
+ fn primitive_val_type(
4420
+ &self,
4421
+ a: PrimitiveValType,
4422
+ b: PrimitiveValType,
4423
+ offset: usize,
4424
+ ) -> Result<()> {
4425
+ // Note that this intentionally diverges from the upstream specification
4426
+ // at this time and only considers exact equality for subtyping
4427
+ // relationships.
4428
+ //
4429
+ // More information can be found in the subtyping implementation for
4430
+ // component functions.
4431
+ if a == b {
4432
+ Ok(())
4433
+ } else {
4434
+ bail!(offset, "expected primitive `{b}` found primitive `{a}`")
4435
+ }
4436
+ }
4437
+
4438
+ fn register_type_renamings(
4439
+ &self,
4440
+ actual: ComponentEntityType,
4441
+ expected: ComponentEntityType,
4442
+ type_map: &mut Map<ComponentAnyTypeId, ComponentAnyTypeId>,
4443
+ ) {
4444
+ match (expected, actual) {
4445
+ (
4446
+ ComponentEntityType::Type {
4447
+ created: expected, ..
4448
+ },
4449
+ ComponentEntityType::Type {
4450
+ created: actual, ..
4451
+ },
4452
+ ) => {
4453
+ let prev = type_map.insert(expected, actual);
4454
+ assert!(prev.is_none());
4455
+ }
4456
+ (ComponentEntityType::Instance(expected), ComponentEntityType::Instance(actual)) => {
4457
+ let actual = &self.a[actual];
4458
+ for (name, expected) in self.b[expected].exports.iter() {
4459
+ let actual = actual.exports[name];
4460
+ self.register_type_renamings(actual, *expected, type_map);
4461
+ }
4462
+ }
4463
+ _ => {}
4464
+ }
4465
+ }
4466
+ }
4467
+
4468
+ /// A helper typed used purely during subtyping as part of `SubtypeCx`.
4469
+ ///
4470
+ /// This takes a `types` list as input which is the "base" of the ids that can
4471
+ /// be indexed through this arena. All future types pushed into this, if any,
4472
+ /// are stored in `self.list`.
4473
+ ///
4474
+ /// This is intended to have arena-like behavior where everything pushed onto
4475
+ /// `self.list` is thrown away after a subtyping computation is performed. All
4476
+ /// new types pushed into this arena are purely temporary.
4477
+ pub struct SubtypeArena<'a> {
4478
+ types: &'a TypeList,
4479
+ list: TypeList,
4480
+ }
4481
+
4482
+ impl<'a> SubtypeArena<'a> {
4483
+ fn new(types: &'a TypeList) -> SubtypeArena<'a> {
4484
+ SubtypeArena {
4485
+ types,
4486
+ list: TypeList::default(),
4487
+ }
4488
+ }
4489
+ }
4490
+
4491
+ impl<T> Index<T> for SubtypeArena<'_>
4492
+ where
4493
+ T: TypeIdentifier,
4494
+ {
4495
+ type Output = T::Data;
4496
+
4497
+ fn index(&self, id: T) -> &T::Data {
4498
+ let index = id.index();
4499
+ if index < T::list(self.types).len() {
4500
+ &self.types[id]
4501
+ } else {
4502
+ let temp_index = index - T::list(self.types).len();
4503
+ let temp_index = u32::try_from(temp_index).unwrap();
4504
+ let temp_id = T::from_index(temp_index);
4505
+ &self.list[temp_id]
4506
+ }
4507
+ }
4508
+ }
4509
+
4510
+ impl Remap for SubtypeArena<'_> {
4511
+ fn push_ty<T>(&mut self, ty: T) -> T::Id
4512
+ where
4513
+ T: TypeData,
4514
+ {
4515
+ let index = T::Id::list(&self.list).len() + T::Id::list(self.types).len();
4516
+ let index = u32::try_from(index).unwrap();
4517
+ self.list.push(ty);
4518
+ T::Id::from_index(index)
4519
+ }
4520
+ }
4521
+
4522
+ /// Helper trait for adding contextual information to an error, modeled after
4523
+ /// `anyhow::Context`.
4524
+ pub(crate) trait Context {
4525
+ fn with_context<S>(self, context: impl FnOnce() -> S) -> Self
4526
+ where
4527
+ S: Into<String>;
4528
+ }
4529
+
4530
+ impl<T> Context for Result<T> {
4531
+ fn with_context<S>(self, context: impl FnOnce() -> S) -> Self
4532
+ where
4533
+ S: Into<String>,
4534
+ {
4535
+ match self {
4536
+ Ok(val) => Ok(val),
4537
+ Err(e) => Err(e.with_context(context)),
4538
+ }
4539
+ }
4540
+ }
4541
+
4542
+ impl Context for BinaryReaderError {
4543
+ fn with_context<S>(mut self, context: impl FnOnce() -> S) -> Self
4544
+ where
4545
+ S: Into<String>,
4546
+ {
4547
+ self.add_context(context().into());
4548
+ self
4549
+ }
4550
+ }