wasmtime 37.0.2 → 38.0.4

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 (2030) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +82 -107
  3. data/ext/Cargo.toml +5 -5
  4. data/ext/cargo-vendor/cap-primitives-3.4.5/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cap-primitives-3.4.5/.cargo_vcs_info.json +6 -0
  6. data/ext/cargo-vendor/cap-primitives-3.4.5/Cargo.lock +340 -0
  7. data/ext/cargo-vendor/cap-primitives-3.4.5/Cargo.toml +96 -0
  8. data/ext/cargo-vendor/cap-primitives-3.4.5/Cargo.toml.orig +47 -0
  9. data/ext/cargo-vendor/cap-primitives-3.4.5/src/fs/via_parent/open_parent.rs +126 -0
  10. data/ext/cargo-vendor/cap-primitives-3.4.5/src/rustix/linux/fs/stat_impl.rs +56 -0
  11. data/ext/cargo-vendor/cap-std-3.4.5/.cargo-checksum.json +1 -0
  12. data/ext/cargo-vendor/cap-std-3.4.5/.cargo_vcs_info.json +6 -0
  13. data/ext/cargo-vendor/cap-std-3.4.5/Cargo.lock +313 -0
  14. data/ext/cargo-vendor/cap-std-3.4.5/Cargo.toml +77 -0
  15. data/ext/cargo-vendor/cap-std-3.4.5/Cargo.toml.orig +32 -0
  16. data/ext/cargo-vendor/cap-std-3.4.5/src/net/tcp_listener.rs +248 -0
  17. data/ext/cargo-vendor/cap-std-3.4.5/src/os/unix/net/unix_listener.rs +156 -0
  18. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/.cargo-checksum.json +1 -0
  19. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/.cargo_vcs_info.json +6 -0
  20. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/Cargo.lock +133 -0
  21. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/Cargo.toml +98 -0
  22. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/Cargo.toml.orig +25 -0
  23. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/src/rex.rs +236 -0
  24. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/.cargo-checksum.json +1 -0
  25. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/.cargo_vcs_info.json +6 -0
  26. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/Cargo.lock +16 -0
  27. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/Cargo.toml +73 -0
  28. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/Cargo.toml.orig +13 -0
  29. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/src/generate/inst.rs +322 -0
  30. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/src/generate.rs +110 -0
  31. data/ext/cargo-vendor/cranelift-bforest-0.125.4/.cargo-checksum.json +1 -0
  32. data/ext/cargo-vendor/cranelift-bforest-0.125.4/.cargo_vcs_info.json +6 -0
  33. data/ext/cargo-vendor/cranelift-bforest-0.125.4/Cargo.lock +25 -0
  34. data/ext/cargo-vendor/cranelift-bforest-0.125.4/Cargo.toml +79 -0
  35. data/ext/cargo-vendor/cranelift-bforest-0.125.4/Cargo.toml.orig +19 -0
  36. data/ext/cargo-vendor/cranelift-bitset-0.125.4/.cargo-checksum.json +1 -0
  37. data/ext/cargo-vendor/cranelift-bitset-0.125.4/.cargo_vcs_info.json +6 -0
  38. data/ext/cargo-vendor/cranelift-bitset-0.125.4/Cargo.lock +73 -0
  39. data/ext/cargo-vendor/cranelift-bitset-0.125.4/Cargo.toml +94 -0
  40. data/ext/cargo-vendor/cranelift-bitset-0.125.4/Cargo.toml.orig +22 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.125.4/.cargo-checksum.json +1 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.125.4/.cargo_vcs_info.json +6 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.125.4/Cargo.lock +1352 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.125.4/Cargo.toml +252 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.125.4/Cargo.toml.orig +130 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/inline.rs +1546 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/ir/instructions.rs +1540 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/abi.rs +1619 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/inst/args.rs +726 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/inst/emit.rs +3678 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/inst/mod.rs +3106 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/inst.isle +5205 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/lower.isle +3273 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/call_conv.rs +145 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/pulley_shared/inst/emit.rs +699 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/pulley_shared/inst/mod.rs +936 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/pulley_shared/inst.isle +794 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/pulley_shared/lower.isle +1838 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/inst/emit.rs +2877 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/inst/mod.rs +1933 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/inst.isle +3264 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/lower.isle +3140 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/mod.rs +300 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/abi.rs +1526 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/inst/emit.rs +3551 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/inst/mod.rs +3542 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/inst.isle +4946 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/lower.isle +4075 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/abi.rs +1336 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/inst/args.rs +1063 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/inst/emit.rs +2188 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/inst/mod.rs +1662 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/inst.isle +4099 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/lower/isle.rs +1250 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/lower.isle +5061 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/mod.rs +272 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/pcc.rs +324 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/lib.rs +123 -0
  79. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/machinst/abi.rs +2572 -0
  80. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/machinst/blockorder.rs +485 -0
  81. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/machinst/isle.rs +839 -0
  82. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/machinst/lower.rs +1777 -0
  83. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/arithmetic.isle +343 -0
  84. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/bitops.isle +231 -0
  85. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/icmp.isle +304 -0
  86. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/selects.isle +104 -0
  87. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/shifts.isle +314 -0
  88. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/prelude_lower.isle +1204 -0
  89. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/settings.rs +568 -0
  90. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/verifier/mod.rs +2258 -0
  91. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/write.rs +724 -0
  92. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/.cargo-checksum.json +1 -0
  93. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/.cargo_vcs_info.json +6 -0
  94. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/Cargo.lock +110 -0
  95. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/Cargo.toml +90 -0
  96. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/Cargo.toml.orig +26 -0
  97. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/formats.rs +158 -0
  98. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/instructions.rs +504 -0
  99. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/mod.rs +61 -0
  100. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/operands.rs +173 -0
  101. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/settings.rs +336 -0
  102. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/gen_asm.rs +740 -0
  103. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/gen_inst.rs +1387 -0
  104. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/gen_isle.rs +1226 -0
  105. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/gen_settings.rs +423 -0
  106. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/isa/riscv64.rs +190 -0
  107. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/isa/x86.rs +428 -0
  108. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/shared/entities.rs +142 -0
  109. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/shared/formats.rs +230 -0
  110. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/shared/instructions.rs +3905 -0
  111. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/shared/settings.rs +376 -0
  112. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/.cargo-checksum.json +1 -0
  113. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/.cargo_vcs_info.json +6 -0
  114. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/Cargo.lock +7 -0
  115. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/Cargo.toml +34 -0
  116. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/Cargo.toml.orig +14 -0
  117. data/ext/cargo-vendor/cranelift-control-0.125.4/.cargo-checksum.json +1 -0
  118. data/ext/cargo-vendor/cranelift-control-0.125.4/.cargo_vcs_info.json +6 -0
  119. data/ext/cargo-vendor/cranelift-control-0.125.4/Cargo.lock +16 -0
  120. data/ext/cargo-vendor/cranelift-control-0.125.4/Cargo.toml +45 -0
  121. data/ext/cargo-vendor/cranelift-control-0.125.4/Cargo.toml.orig +25 -0
  122. data/ext/cargo-vendor/cranelift-entity-0.125.4/.cargo-checksum.json +1 -0
  123. data/ext/cargo-vendor/cranelift-entity-0.125.4/.cargo_vcs_info.json +6 -0
  124. data/ext/cargo-vendor/cranelift-entity-0.125.4/Cargo.lock +77 -0
  125. data/ext/cargo-vendor/cranelift-entity-0.125.4/Cargo.toml +95 -0
  126. data/ext/cargo-vendor/cranelift-entity-0.125.4/Cargo.toml.orig +24 -0
  127. data/ext/cargo-vendor/cranelift-entity-0.125.4/src/primary.rs +570 -0
  128. data/ext/cargo-vendor/cranelift-frontend-0.125.4/.cargo-checksum.json +1 -0
  129. data/ext/cargo-vendor/cranelift-frontend-0.125.4/.cargo_vcs_info.json +6 -0
  130. data/ext/cargo-vendor/cranelift-frontend-0.125.4/Cargo.lock +531 -0
  131. data/ext/cargo-vendor/cranelift-frontend-0.125.4/Cargo.toml +117 -0
  132. data/ext/cargo-vendor/cranelift-frontend-0.125.4/Cargo.toml.orig +32 -0
  133. data/ext/cargo-vendor/cranelift-frontend-0.125.4/src/frontend.rs +2030 -0
  134. data/ext/cargo-vendor/cranelift-isle-0.125.4/.cargo-checksum.json +1 -0
  135. data/ext/cargo-vendor/cranelift-isle-0.125.4/.cargo_vcs_info.json +6 -0
  136. data/ext/cargo-vendor/cranelift-isle-0.125.4/Cargo.lock +322 -0
  137. data/ext/cargo-vendor/cranelift-isle-0.125.4/Cargo.toml +89 -0
  138. data/ext/cargo-vendor/cranelift-isle-0.125.4/Cargo.toml.orig +26 -0
  139. data/ext/cargo-vendor/cranelift-native-0.125.4/.cargo-checksum.json +1 -0
  140. data/ext/cargo-vendor/cranelift-native-0.125.4/.cargo_vcs_info.json +6 -0
  141. data/ext/cargo-vendor/cranelift-native-0.125.4/Cargo.lock +305 -0
  142. data/ext/cargo-vendor/cranelift-native-0.125.4/Cargo.toml +54 -0
  143. data/ext/cargo-vendor/cranelift-native-0.125.4/Cargo.toml.orig +24 -0
  144. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/.cargo-checksum.json +1 -0
  145. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/.cargo_vcs_info.json +6 -0
  146. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/Cargo.lock +7 -0
  147. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/Cargo.toml +70 -0
  148. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/Cargo.toml.orig +14 -0
  149. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/.cargo-checksum.json +1 -0
  150. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/.cargo_vcs_info.json +6 -0
  151. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/Cargo.lock +2181 -0
  152. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/Cargo.toml +79 -0
  153. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/Cargo.toml.orig +27 -0
  154. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/.cargo-checksum.json +1 -0
  155. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/.cargo_vcs_info.json +6 -0
  156. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/Cargo.lock +138 -0
  157. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/Cargo.toml +56 -0
  158. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/Cargo.toml.orig +21 -0
  159. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/README.md +31 -0
  160. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/category.rs +86 -0
  161. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/category_color.rs +41 -0
  162. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/counters.rs +156 -0
  163. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/cpu_delta.rs +60 -0
  164. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/fast_hash_map.rs +3 -0
  165. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/frame.rs +75 -0
  166. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/frame_table.rs +146 -0
  167. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/func_table.rs +110 -0
  168. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/global_lib_table.rs +119 -0
  169. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/lib.rs +81 -0
  170. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/lib_mappings.rs +161 -0
  171. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/library_info.rs +121 -0
  172. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/marker_table.rs +251 -0
  173. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/markers.rs +831 -0
  174. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/native_symbols.rs +71 -0
  175. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/process.rs +121 -0
  176. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/profile.rs +1169 -0
  177. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/reference_timestamp.rs +44 -0
  178. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/resource_table.rs +62 -0
  179. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/sample_table.rs +335 -0
  180. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/serialization_helpers.rs +41 -0
  181. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/stack_table.rs +79 -0
  182. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/string_table.rs +66 -0
  183. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/thread.rs +263 -0
  184. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/thread_string_table.rs +50 -0
  185. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/timestamp.rs +68 -0
  186. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/tests/integration_tests/main.rs +1540 -0
  187. data/ext/cargo-vendor/pulley-interpreter-38.0.4/.cargo-checksum.json +1 -0
  188. data/ext/cargo-vendor/pulley-interpreter-38.0.4/.cargo_vcs_info.json +6 -0
  189. data/ext/cargo-vendor/pulley-interpreter-38.0.4/Cargo.lock +426 -0
  190. data/ext/cargo-vendor/pulley-interpreter-38.0.4/Cargo.toml +144 -0
  191. data/ext/cargo-vendor/pulley-interpreter-38.0.4/src/lib.rs +1423 -0
  192. data/ext/cargo-vendor/pulley-macros-38.0.4/.cargo-checksum.json +1 -0
  193. data/ext/cargo-vendor/pulley-macros-38.0.4/.cargo_vcs_info.json +6 -0
  194. data/ext/cargo-vendor/pulley-macros-38.0.4/Cargo.lock +47 -0
  195. data/ext/cargo-vendor/pulley-macros-38.0.4/Cargo.toml +42 -0
  196. data/ext/cargo-vendor/wasmtime-38.0.4/.cargo-checksum.json +1 -0
  197. data/ext/cargo-vendor/wasmtime-38.0.4/.cargo_vcs_info.json +6 -0
  198. data/ext/cargo-vendor/wasmtime-38.0.4/Cargo.lock +2231 -0
  199. data/ext/cargo-vendor/wasmtime-38.0.4/Cargo.toml +552 -0
  200. data/ext/cargo-vendor/wasmtime-38.0.4/Cargo.toml.orig +410 -0
  201. data/ext/cargo-vendor/wasmtime-38.0.4/build.rs +100 -0
  202. data/ext/cargo-vendor/wasmtime-38.0.4/src/compile.rs +1052 -0
  203. data/ext/cargo-vendor/wasmtime-38.0.4/src/config.rs +3776 -0
  204. data/ext/cargo-vendor/wasmtime-38.0.4/src/engine/serialization.rs +801 -0
  205. data/ext/cargo-vendor/wasmtime-38.0.4/src/engine.rs +963 -0
  206. data/ext/cargo-vendor/wasmtime-38.0.4/src/lib.rs +440 -0
  207. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/component.rs +913 -0
  208. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/concurrent/futures_and_streams.rs +4326 -0
  209. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/concurrent.rs +4687 -0
  210. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/func/host.rs +957 -0
  211. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/func/typed.rs +2888 -0
  212. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/func.rs +977 -0
  213. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/instance.rs +1030 -0
  214. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/mod.rs +758 -0
  215. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/coredump.rs +356 -0
  216. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/func.rs +2666 -0
  217. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/instantiate.rs +285 -0
  218. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/memory.rs +1118 -0
  219. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/module.rs +1231 -0
  220. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/profiling.rs +350 -0
  221. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/store.rs +2785 -0
  222. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/trampoline/memory.rs +275 -0
  223. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/trampoline/table.rs +51 -0
  224. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/trampoline/tag.rs +55 -0
  225. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/trap.rs +634 -0
  226. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/component/libcalls.rs +1363 -0
  227. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/component.rs +1042 -0
  228. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/helpers.c +50 -0
  229. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/instance.rs +1864 -0
  230. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/interpreter.rs +506 -0
  231. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/interpreter_disabled.rs +63 -0
  232. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/stack_switching/stack/unix/x86_64.rs +86 -0
  233. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/stack_switching/stack/unix.rs +350 -0
  234. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/stack_switching.rs +691 -0
  235. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/custom/capi.rs +185 -0
  236. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/custom/traphandlers.rs +46 -0
  237. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/miri/traphandlers.rs +6 -0
  238. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/unix/machports.rs +513 -0
  239. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/unix/signals.rs +558 -0
  240. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/unix/traphandlers.rs +59 -0
  241. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/windows/traphandlers.rs +11 -0
  242. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/windows/vectored_exceptions.rs +289 -0
  243. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/throw.rs +128 -0
  244. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/traphandlers.rs +1369 -0
  245. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/vmcontext.rs +1727 -0
  246. data/ext/cargo-vendor/wasmtime-environ-38.0.4/.cargo-checksum.json +1 -0
  247. data/ext/cargo-vendor/wasmtime-environ-38.0.4/.cargo_vcs_info.json +6 -0
  248. data/ext/cargo-vendor/wasmtime-environ-38.0.4/Cargo.lock +681 -0
  249. data/ext/cargo-vendor/wasmtime-environ-38.0.4/Cargo.toml +241 -0
  250. data/ext/cargo-vendor/wasmtime-environ-38.0.4/Cargo.toml.orig +82 -0
  251. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/address_map.rs +138 -0
  252. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/builtin.rs +458 -0
  253. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/compile/mod.rs +487 -0
  254. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/compile/module_artifacts.rs +310 -0
  255. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/compile/module_environ.rs +1313 -0
  256. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/artifacts.rs +30 -0
  257. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/compiler.rs +22 -0
  258. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/dfg.rs +1235 -0
  259. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/info.rs +1186 -0
  260. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/translate/inline.rs +1867 -0
  261. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component.rs +213 -0
  262. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/hostcall.rs +83 -0
  263. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/key.rs +452 -0
  264. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/lib.rs +82 -0
  265. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/module.rs +796 -0
  266. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/module_artifacts.rs +812 -0
  267. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/trap_encoding.rs +251 -0
  268. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/vmoffsets.rs +1177 -0
  269. data/ext/cargo-vendor/wasmtime-internal-cache-38.0.4/.cargo-checksum.json +1 -0
  270. data/ext/cargo-vendor/wasmtime-internal-cache-38.0.4/.cargo_vcs_info.json +6 -0
  271. data/ext/cargo-vendor/wasmtime-internal-cache-38.0.4/Cargo.lock +840 -0
  272. data/ext/cargo-vendor/wasmtime-internal-cache-38.0.4/Cargo.toml +128 -0
  273. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/.cargo-checksum.json +1 -0
  274. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/.cargo_vcs_info.json +6 -0
  275. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/Cargo.lock +285 -0
  276. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/Cargo.toml +146 -0
  277. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/codegen.rs +787 -0
  278. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path1_async.rs +206 -0
  279. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path1_concurrent.rs +206 -0
  280. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path1_tracing_async.rs +206 -0
  281. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path2_async.rs +206 -0
  282. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path2_concurrent.rs +206 -0
  283. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path2_tracing_async.rs +206 -0
  284. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/worlds-with-types_async.rs +272 -0
  285. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/worlds-with-types_concurrent.rs +272 -0
  286. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/worlds-with-types_tracing_async.rs +280 -0
  287. data/ext/cargo-vendor/wasmtime-internal-component-util-38.0.4/.cargo-checksum.json +1 -0
  288. data/ext/cargo-vendor/wasmtime-internal-component-util-38.0.4/.cargo_vcs_info.json +6 -0
  289. data/ext/cargo-vendor/wasmtime-internal-component-util-38.0.4/Cargo.lock +7 -0
  290. data/ext/cargo-vendor/wasmtime-internal-component-util-38.0.4/Cargo.toml +38 -0
  291. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/.cargo-checksum.json +1 -0
  292. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/.cargo_vcs_info.json +6 -0
  293. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/Cargo.lock +711 -0
  294. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/Cargo.toml +187 -0
  295. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/compiler/component.rs +1721 -0
  296. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/compiler.rs +1541 -0
  297. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/func_environ/stack_switching/instructions.rs +1917 -0
  298. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/func_environ.rs +4313 -0
  299. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/lib.rs +449 -0
  300. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/.cargo-checksum.json +1 -0
  301. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/.cargo_vcs_info.json +6 -0
  302. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/Cargo.lock +343 -0
  303. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/Cargo.toml +107 -0
  304. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/Cargo.toml.orig +41 -0
  305. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/build.rs +35 -0
  306. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/lib.rs +431 -0
  307. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/aarch64.rs +189 -0
  308. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/arm.rs +95 -0
  309. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/riscv64.rs +166 -0
  310. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/s390x.rs +117 -0
  311. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/x86.rs +118 -0
  312. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/x86_64.rs +168 -0
  313. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch.rs +73 -0
  314. data/ext/cargo-vendor/wasmtime-internal-jit-debug-38.0.4/.cargo-checksum.json +1 -0
  315. data/ext/cargo-vendor/wasmtime-internal-jit-debug-38.0.4/.cargo_vcs_info.json +6 -0
  316. data/ext/cargo-vendor/wasmtime-internal-jit-debug-38.0.4/Cargo.lock +203 -0
  317. data/ext/cargo-vendor/wasmtime-internal-jit-debug-38.0.4/Cargo.toml +110 -0
  318. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-38.0.4/.cargo-checksum.json +1 -0
  319. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-38.0.4/.cargo_vcs_info.json +6 -0
  320. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-38.0.4/Cargo.lock +104 -0
  321. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-38.0.4/Cargo.toml +91 -0
  322. data/ext/cargo-vendor/wasmtime-internal-math-38.0.4/.cargo-checksum.json +1 -0
  323. data/ext/cargo-vendor/wasmtime-internal-math-38.0.4/.cargo_vcs_info.json +6 -0
  324. data/ext/cargo-vendor/wasmtime-internal-math-38.0.4/Cargo.lock +16 -0
  325. data/ext/cargo-vendor/wasmtime-internal-math-38.0.4/Cargo.toml +78 -0
  326. data/ext/cargo-vendor/wasmtime-internal-slab-38.0.4/.cargo-checksum.json +1 -0
  327. data/ext/cargo-vendor/wasmtime-internal-slab-38.0.4/.cargo_vcs_info.json +6 -0
  328. data/ext/cargo-vendor/wasmtime-internal-slab-38.0.4/Cargo.lock +7 -0
  329. data/ext/cargo-vendor/wasmtime-internal-slab-38.0.4/Cargo.toml +70 -0
  330. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/.cargo-checksum.json +1 -0
  331. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/.cargo_vcs_info.json +6 -0
  332. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/Cargo.lock +328 -0
  333. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/Cargo.toml +106 -0
  334. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/src/stackwalk.rs +261 -0
  335. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-38.0.4/.cargo-checksum.json +1 -0
  336. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-38.0.4/.cargo_vcs_info.json +6 -0
  337. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-38.0.4/Cargo.lock +47 -0
  338. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-38.0.4/Cargo.toml +43 -0
  339. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/.cargo-checksum.json +1 -0
  340. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/.cargo_vcs_info.json +6 -0
  341. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/Cargo.lock +649 -0
  342. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/Cargo.toml +132 -0
  343. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/src/compiler.rs +401 -0
  344. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/.cargo-checksum.json +1 -0
  345. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/.cargo_vcs_info.json +6 -0
  346. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/Cargo.lock +193 -0
  347. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/Cargo.toml +90 -0
  348. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/src/config.rs +164 -0
  349. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/src/lib.rs +3530 -0
  350. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/.cargo-checksum.json +1 -0
  351. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/.cargo_vcs_info.json +6 -0
  352. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/Cargo.lock +2501 -0
  353. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/Cargo.toml +262 -0
  354. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/src/lib.rs +48 -0
  355. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/src/sockets/tcp.rs +819 -0
  356. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/src/view.rs +95 -0
  357. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/tests/all/p3/mod.rs +154 -0
  358. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/tests/all/store.rs +86 -0
  359. data/ext/cargo-vendor/wasmtime-wasi-io-38.0.4/.cargo-checksum.json +1 -0
  360. data/ext/cargo-vendor/wasmtime-wasi-io-38.0.4/.cargo_vcs_info.json +6 -0
  361. data/ext/cargo-vendor/wasmtime-wasi-io-38.0.4/Cargo.lock +1200 -0
  362. data/ext/cargo-vendor/wasmtime-wasi-io-38.0.4/Cargo.toml +105 -0
  363. data/ext/cargo-vendor/wiggle-38.0.4/.cargo-checksum.json +1 -0
  364. data/ext/cargo-vendor/wiggle-38.0.4/.cargo_vcs_info.json +6 -0
  365. data/ext/cargo-vendor/wiggle-38.0.4/Cargo.lock +1157 -0
  366. data/ext/cargo-vendor/wiggle-38.0.4/Cargo.toml +139 -0
  367. data/ext/cargo-vendor/wiggle-generate-38.0.4/.cargo-checksum.json +1 -0
  368. data/ext/cargo-vendor/wiggle-generate-38.0.4/.cargo_vcs_info.json +6 -0
  369. data/ext/cargo-vendor/wiggle-generate-38.0.4/Cargo.lock +115 -0
  370. data/ext/cargo-vendor/wiggle-generate-38.0.4/Cargo.toml +102 -0
  371. data/ext/cargo-vendor/wiggle-macro-38.0.4/.cargo-checksum.json +1 -0
  372. data/ext/cargo-vendor/wiggle-macro-38.0.4/.cargo_vcs_info.json +6 -0
  373. data/ext/cargo-vendor/wiggle-macro-38.0.4/Cargo.lock +127 -0
  374. data/ext/cargo-vendor/wiggle-macro-38.0.4/Cargo.toml +98 -0
  375. data/ext/cargo-vendor/winch-codegen-38.0.4/.cargo-checksum.json +1 -0
  376. data/ext/cargo-vendor/winch-codegen-38.0.4/.cargo_vcs_info.json +6 -0
  377. data/ext/cargo-vendor/winch-codegen-38.0.4/Cargo.lock +620 -0
  378. data/ext/cargo-vendor/winch-codegen-38.0.4/Cargo.toml +133 -0
  379. data/ext/cargo-vendor/winch-codegen-38.0.4/src/codegen/env.rs +415 -0
  380. data/lib/wasmtime/version.rb +1 -1
  381. metadata +1627 -1652
  382. data/ext/cargo-vendor/byteorder-1.5.0/.cargo-checksum.json +0 -1
  383. data/ext/cargo-vendor/byteorder-1.5.0/.cargo_vcs_info.json +0 -6
  384. data/ext/cargo-vendor/byteorder-1.5.0/.github/workflows/ci.yml +0 -183
  385. data/ext/cargo-vendor/byteorder-1.5.0/CHANGELOG.md +0 -143
  386. data/ext/cargo-vendor/byteorder-1.5.0/COPYING +0 -3
  387. data/ext/cargo-vendor/byteorder-1.5.0/Cargo.toml +0 -54
  388. data/ext/cargo-vendor/byteorder-1.5.0/Cargo.toml.orig +0 -34
  389. data/ext/cargo-vendor/byteorder-1.5.0/LICENSE-MIT +0 -21
  390. data/ext/cargo-vendor/byteorder-1.5.0/README.md +0 -77
  391. data/ext/cargo-vendor/byteorder-1.5.0/UNLICENSE +0 -24
  392. data/ext/cargo-vendor/byteorder-1.5.0/benches/bench.rs +0 -326
  393. data/ext/cargo-vendor/byteorder-1.5.0/rustfmt.toml +0 -2
  394. data/ext/cargo-vendor/byteorder-1.5.0/src/io.rs +0 -1592
  395. data/ext/cargo-vendor/byteorder-1.5.0/src/lib.rs +0 -3975
  396. data/ext/cargo-vendor/cap-primitives-3.4.4/.cargo-checksum.json +0 -1
  397. data/ext/cargo-vendor/cap-primitives-3.4.4/.cargo_vcs_info.json +0 -6
  398. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.lock +0 -260
  399. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.toml +0 -96
  400. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.toml.orig +0 -47
  401. data/ext/cargo-vendor/cap-primitives-3.4.4/src/fs/via_parent/open_parent.rs +0 -126
  402. data/ext/cargo-vendor/cap-primitives-3.4.4/src/rustix/linux/fs/stat_impl.rs +0 -55
  403. data/ext/cargo-vendor/cap-std-3.4.4/.cargo-checksum.json +0 -1
  404. data/ext/cargo-vendor/cap-std-3.4.4/.cargo_vcs_info.json +0 -6
  405. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.lock +0 -233
  406. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.toml +0 -77
  407. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.toml.orig +0 -32
  408. data/ext/cargo-vendor/cap-std-3.4.4/src/net/tcp_listener.rs +0 -248
  409. data/ext/cargo-vendor/cap-std-3.4.4/src/os/unix/net/unix_listener.rs +0 -156
  410. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/.cargo-checksum.json +0 -1
  411. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/.cargo_vcs_info.json +0 -6
  412. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/Cargo.lock +0 -133
  413. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/Cargo.toml +0 -98
  414. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/Cargo.toml.orig +0 -25
  415. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/src/rex.rs +0 -236
  416. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/.cargo-checksum.json +0 -1
  417. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/.cargo_vcs_info.json +0 -6
  418. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/Cargo.lock +0 -16
  419. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/Cargo.toml +0 -73
  420. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/Cargo.toml.orig +0 -13
  421. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/src/generate/inst.rs +0 -307
  422. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/src/generate.rs +0 -150
  423. data/ext/cargo-vendor/cranelift-bforest-0.124.2/.cargo-checksum.json +0 -1
  424. data/ext/cargo-vendor/cranelift-bforest-0.124.2/.cargo_vcs_info.json +0 -6
  425. data/ext/cargo-vendor/cranelift-bforest-0.124.2/Cargo.lock +0 -25
  426. data/ext/cargo-vendor/cranelift-bforest-0.124.2/Cargo.toml +0 -79
  427. data/ext/cargo-vendor/cranelift-bforest-0.124.2/Cargo.toml.orig +0 -19
  428. data/ext/cargo-vendor/cranelift-bitset-0.124.2/.cargo-checksum.json +0 -1
  429. data/ext/cargo-vendor/cranelift-bitset-0.124.2/.cargo_vcs_info.json +0 -6
  430. data/ext/cargo-vendor/cranelift-bitset-0.124.2/Cargo.lock +0 -73
  431. data/ext/cargo-vendor/cranelift-bitset-0.124.2/Cargo.toml +0 -94
  432. data/ext/cargo-vendor/cranelift-bitset-0.124.2/Cargo.toml.orig +0 -22
  433. data/ext/cargo-vendor/cranelift-codegen-0.124.2/.cargo-checksum.json +0 -1
  434. data/ext/cargo-vendor/cranelift-codegen-0.124.2/.cargo_vcs_info.json +0 -6
  435. data/ext/cargo-vendor/cranelift-codegen-0.124.2/Cargo.lock +0 -1352
  436. data/ext/cargo-vendor/cranelift-codegen-0.124.2/Cargo.toml +0 -252
  437. data/ext/cargo-vendor/cranelift-codegen-0.124.2/Cargo.toml.orig +0 -130
  438. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/inline.rs +0 -1542
  439. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/ir/instructions.rs +0 -1515
  440. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/abi.rs +0 -1616
  441. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/inst/args.rs +0 -711
  442. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/inst/emit.rs +0 -3666
  443. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/inst/mod.rs +0 -3098
  444. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/inst.isle +0 -5184
  445. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/lower.isle +0 -3240
  446. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/call_conv.rs +0 -145
  447. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/pulley_shared/inst/emit.rs +0 -693
  448. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/pulley_shared/inst/mod.rs +0 -927
  449. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/pulley_shared/inst.isle +0 -783
  450. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/pulley_shared/lower.isle +0 -1831
  451. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/inst/emit.rs +0 -2856
  452. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/inst/mod.rs +0 -1925
  453. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/inst.isle +0 -3252
  454. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/lower.isle +0 -3133
  455. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/mod.rs +0 -294
  456. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/abi.rs +0 -1526
  457. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/inst/emit.rs +0 -3543
  458. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/inst/mod.rs +0 -3533
  459. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/inst.isle +0 -4934
  460. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/lower.isle +0 -4069
  461. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/abi.rs +0 -1334
  462. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/inst/args.rs +0 -1048
  463. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/inst/emit.rs +0 -2183
  464. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/inst/mod.rs +0 -1652
  465. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/inst.isle +0 -4074
  466. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/lower/isle.rs +0 -1245
  467. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/lower.isle +0 -5055
  468. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/mod.rs +0 -262
  469. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/pcc.rs +0 -322
  470. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/lib.rs +0 -123
  471. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/machinst/abi.rs +0 -2567
  472. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/machinst/blockorder.rs +0 -471
  473. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/machinst/isle.rs +0 -815
  474. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/machinst/lower.rs +0 -1763
  475. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/arithmetic.isle +0 -333
  476. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/bitops.isle +0 -204
  477. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/icmp.isle +0 -300
  478. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/selects.isle +0 -100
  479. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/shifts.isle +0 -307
  480. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/prelude_lower.isle +0 -1196
  481. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/settings.rs +0 -572
  482. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/verifier/mod.rs +0 -2205
  483. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/write.rs +0 -723
  484. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/.cargo-checksum.json +0 -1
  485. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/.cargo_vcs_info.json +0 -6
  486. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/Cargo.lock +0 -110
  487. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/Cargo.toml +0 -90
  488. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/Cargo.toml.orig +0 -26
  489. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/formats.rs +0 -144
  490. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/instructions.rs +0 -494
  491. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/mod.rs +0 -72
  492. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/operands.rs +0 -169
  493. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/settings.rs +0 -429
  494. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/gen_asm.rs +0 -740
  495. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/gen_inst.rs +0 -1311
  496. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/gen_isle.rs +0 -1199
  497. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/gen_settings.rs +0 -452
  498. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/isa/riscv64.rs +0 -195
  499. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/isa/x86.rs +0 -448
  500. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/shared/entities.rs +0 -131
  501. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/shared/formats.rs +0 -224
  502. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/shared/instructions.rs +0 -3873
  503. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/shared/settings.rs +0 -411
  504. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/.cargo-checksum.json +0 -1
  505. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/.cargo_vcs_info.json +0 -6
  506. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/Cargo.lock +0 -7
  507. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/Cargo.toml +0 -34
  508. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/Cargo.toml.orig +0 -14
  509. data/ext/cargo-vendor/cranelift-control-0.124.2/.cargo-checksum.json +0 -1
  510. data/ext/cargo-vendor/cranelift-control-0.124.2/.cargo_vcs_info.json +0 -6
  511. data/ext/cargo-vendor/cranelift-control-0.124.2/Cargo.lock +0 -16
  512. data/ext/cargo-vendor/cranelift-control-0.124.2/Cargo.toml +0 -45
  513. data/ext/cargo-vendor/cranelift-control-0.124.2/Cargo.toml.orig +0 -25
  514. data/ext/cargo-vendor/cranelift-entity-0.124.2/.cargo-checksum.json +0 -1
  515. data/ext/cargo-vendor/cranelift-entity-0.124.2/.cargo_vcs_info.json +0 -6
  516. data/ext/cargo-vendor/cranelift-entity-0.124.2/Cargo.lock +0 -77
  517. data/ext/cargo-vendor/cranelift-entity-0.124.2/Cargo.toml +0 -95
  518. data/ext/cargo-vendor/cranelift-entity-0.124.2/Cargo.toml.orig +0 -24
  519. data/ext/cargo-vendor/cranelift-entity-0.124.2/src/primary.rs +0 -548
  520. data/ext/cargo-vendor/cranelift-frontend-0.124.2/.cargo-checksum.json +0 -1
  521. data/ext/cargo-vendor/cranelift-frontend-0.124.2/.cargo_vcs_info.json +0 -6
  522. data/ext/cargo-vendor/cranelift-frontend-0.124.2/Cargo.lock +0 -531
  523. data/ext/cargo-vendor/cranelift-frontend-0.124.2/Cargo.toml +0 -117
  524. data/ext/cargo-vendor/cranelift-frontend-0.124.2/Cargo.toml.orig +0 -32
  525. data/ext/cargo-vendor/cranelift-frontend-0.124.2/src/frontend.rs +0 -2028
  526. data/ext/cargo-vendor/cranelift-isle-0.124.2/.cargo-checksum.json +0 -1
  527. data/ext/cargo-vendor/cranelift-isle-0.124.2/.cargo_vcs_info.json +0 -6
  528. data/ext/cargo-vendor/cranelift-isle-0.124.2/Cargo.lock +0 -322
  529. data/ext/cargo-vendor/cranelift-isle-0.124.2/Cargo.toml +0 -89
  530. data/ext/cargo-vendor/cranelift-isle-0.124.2/Cargo.toml.orig +0 -26
  531. data/ext/cargo-vendor/cranelift-native-0.124.2/.cargo-checksum.json +0 -1
  532. data/ext/cargo-vendor/cranelift-native-0.124.2/.cargo_vcs_info.json +0 -6
  533. data/ext/cargo-vendor/cranelift-native-0.124.2/Cargo.lock +0 -305
  534. data/ext/cargo-vendor/cranelift-native-0.124.2/Cargo.toml +0 -54
  535. data/ext/cargo-vendor/cranelift-native-0.124.2/Cargo.toml.orig +0 -24
  536. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/.cargo-checksum.json +0 -1
  537. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/.cargo_vcs_info.json +0 -6
  538. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/Cargo.lock +0 -7
  539. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/Cargo.toml +0 -70
  540. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/Cargo.toml.orig +0 -14
  541. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/.cargo-checksum.json +0 -1
  542. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/.cargo_vcs_info.json +0 -6
  543. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/Cargo.lock +0 -2192
  544. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/Cargo.toml +0 -79
  545. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/Cargo.toml.orig +0 -27
  546. data/ext/cargo-vendor/fxhash-0.2.1/.cargo-checksum.json +0 -1
  547. data/ext/cargo-vendor/fxhash-0.2.1/Cargo.toml +0 -38
  548. data/ext/cargo-vendor/fxhash-0.2.1/Cargo.toml.orig +0 -26
  549. data/ext/cargo-vendor/fxhash-0.2.1/README.md +0 -62
  550. data/ext/cargo-vendor/fxhash-0.2.1/bench.rs +0 -78
  551. data/ext/cargo-vendor/fxhash-0.2.1/lib.rs +0 -324
  552. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/.cargo-checksum.json +0 -1
  553. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/.cargo_vcs_info.json +0 -6
  554. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/Cargo.toml +0 -41
  555. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/Cargo.toml.orig +0 -20
  556. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/README.md +0 -27
  557. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/category.rs +0 -98
  558. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/category_color.rs +0 -41
  559. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/counters.rs +0 -130
  560. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/cpu_delta.rs +0 -59
  561. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/fast_hash_map.rs +0 -5
  562. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/frame.rs +0 -54
  563. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/frame_table.rs +0 -166
  564. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/func_table.rs +0 -110
  565. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/global_lib_table.rs +0 -76
  566. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/lib.rs +0 -74
  567. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/lib_mappings.rs +0 -140
  568. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/library_info.rs +0 -120
  569. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/marker_table.rs +0 -78
  570. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/markers.rs +0 -224
  571. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/native_symbols.rs +0 -73
  572. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/process.rs +0 -117
  573. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/profile.rs +0 -718
  574. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/reference_timestamp.rs +0 -43
  575. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/resource_table.rs +0 -63
  576. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/sample_table.rs +0 -50
  577. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/serialization_helpers.rs +0 -30
  578. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/stack_table.rs +0 -80
  579. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/string_table.rs +0 -66
  580. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/thread.rs +0 -225
  581. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/thread_string_table.rs +0 -50
  582. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/timestamp.rs +0 -29
  583. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/tests/integration_tests/main.rs +0 -1270
  584. data/ext/cargo-vendor/pulley-interpreter-37.0.2/.cargo-checksum.json +0 -1
  585. data/ext/cargo-vendor/pulley-interpreter-37.0.2/.cargo_vcs_info.json +0 -6
  586. data/ext/cargo-vendor/pulley-interpreter-37.0.2/Cargo.lock +0 -426
  587. data/ext/cargo-vendor/pulley-interpreter-37.0.2/Cargo.toml +0 -144
  588. data/ext/cargo-vendor/pulley-interpreter-37.0.2/src/lib.rs +0 -1423
  589. data/ext/cargo-vendor/pulley-macros-37.0.2/.cargo-checksum.json +0 -1
  590. data/ext/cargo-vendor/pulley-macros-37.0.2/.cargo_vcs_info.json +0 -6
  591. data/ext/cargo-vendor/pulley-macros-37.0.2/Cargo.lock +0 -47
  592. data/ext/cargo-vendor/pulley-macros-37.0.2/Cargo.toml +0 -42
  593. data/ext/cargo-vendor/wasmtime-37.0.2/.cargo-checksum.json +0 -1
  594. data/ext/cargo-vendor/wasmtime-37.0.2/.cargo_vcs_info.json +0 -6
  595. data/ext/cargo-vendor/wasmtime-37.0.2/Cargo.lock +0 -2250
  596. data/ext/cargo-vendor/wasmtime-37.0.2/Cargo.toml +0 -558
  597. data/ext/cargo-vendor/wasmtime-37.0.2/Cargo.toml.orig +0 -412
  598. data/ext/cargo-vendor/wasmtime-37.0.2/build.rs +0 -99
  599. data/ext/cargo-vendor/wasmtime-37.0.2/src/compile.rs +0 -1271
  600. data/ext/cargo-vendor/wasmtime-37.0.2/src/config.rs +0 -3792
  601. data/ext/cargo-vendor/wasmtime-37.0.2/src/engine/serialization.rs +0 -801
  602. data/ext/cargo-vendor/wasmtime-37.0.2/src/engine.rs +0 -976
  603. data/ext/cargo-vendor/wasmtime-37.0.2/src/lib.rs +0 -440
  604. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/component.rs +0 -898
  605. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/concurrent/futures_and_streams.rs +0 -4239
  606. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/concurrent.rs +0 -4585
  607. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/func/host.rs +0 -957
  608. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/func/typed.rs +0 -2888
  609. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/func.rs +0 -972
  610. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/instance.rs +0 -1024
  611. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/mod.rs +0 -758
  612. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/coredump.rs +0 -350
  613. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/func.rs +0 -2680
  614. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/instantiate.rs +0 -300
  615. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/memory.rs +0 -1115
  616. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/module.rs +0 -1224
  617. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/profiling.rs +0 -338
  618. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/store.rs +0 -2782
  619. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/trampoline/memory.rs +0 -277
  620. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/trampoline/table.rs +0 -50
  621. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/trampoline/tag.rs +0 -54
  622. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/trap.rs +0 -634
  623. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/component/libcalls.rs +0 -1257
  624. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/component.rs +0 -1022
  625. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/helpers.c +0 -121
  626. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/instance.rs +0 -1862
  627. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/interpreter.rs +0 -619
  628. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/interpreter_disabled.rs +0 -70
  629. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/stack_switching/stack/unix/x86_64.rs +0 -83
  630. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/stack_switching/stack/unix.rs +0 -353
  631. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/stack_switching.rs +0 -691
  632. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/custom/capi.rs +0 -219
  633. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/custom/traphandlers.rs +0 -69
  634. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/miri/traphandlers.rs +0 -34
  635. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/unix/machports.rs +0 -515
  636. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/unix/signals.rs +0 -566
  637. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/unix/traphandlers.rs +0 -79
  638. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/windows/traphandlers.rs +0 -31
  639. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/windows/vectored_exceptions.rs +0 -125
  640. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/throw.rs +0 -123
  641. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/traphandlers.rs +0 -1438
  642. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/vmcontext.rs +0 -1705
  643. data/ext/cargo-vendor/wasmtime-environ-37.0.2/.cargo-checksum.json +0 -1
  644. data/ext/cargo-vendor/wasmtime-environ-37.0.2/.cargo_vcs_info.json +0 -6
  645. data/ext/cargo-vendor/wasmtime-environ-37.0.2/Cargo.lock +0 -650
  646. data/ext/cargo-vendor/wasmtime-environ-37.0.2/Cargo.toml +0 -234
  647. data/ext/cargo-vendor/wasmtime-environ-37.0.2/Cargo.toml.orig +0 -80
  648. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/address_map.rs +0 -126
  649. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/builtin.rs +0 -451
  650. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/compile/key.rs +0 -221
  651. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/compile/mod.rs +0 -490
  652. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/compile/module_artifacts.rs +0 -318
  653. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/compile/module_environ.rs +0 -1312
  654. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/artifacts.rs +0 -68
  655. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/compiler.rs +0 -21
  656. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/dfg.rs +0 -1100
  657. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/info.rs +0 -1124
  658. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/translate/inline.rs +0 -1792
  659. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component.rs +0 -213
  660. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/hostcall.rs +0 -82
  661. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/lib.rs +0 -80
  662. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/module.rs +0 -760
  663. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/module_artifacts.rs +0 -119
  664. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/trap_encoding.rs +0 -244
  665. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/vmoffsets.rs +0 -1167
  666. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/.cargo-checksum.json +0 -1
  667. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/.cargo_vcs_info.json +0 -6
  668. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/Cargo.lock +0 -16
  669. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/Cargo.toml +0 -35
  670. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/Cargo.toml.orig +0 -14
  671. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/src/lib.rs +0 -90
  672. data/ext/cargo-vendor/wasmtime-internal-cache-37.0.2/.cargo-checksum.json +0 -1
  673. data/ext/cargo-vendor/wasmtime-internal-cache-37.0.2/.cargo_vcs_info.json +0 -6
  674. data/ext/cargo-vendor/wasmtime-internal-cache-37.0.2/Cargo.lock +0 -840
  675. data/ext/cargo-vendor/wasmtime-internal-cache-37.0.2/Cargo.toml +0 -128
  676. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/.cargo-checksum.json +0 -1
  677. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/.cargo_vcs_info.json +0 -6
  678. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/Cargo.lock +0 -285
  679. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/Cargo.toml +0 -146
  680. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/codegen.rs +0 -731
  681. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path1_async.rs +0 -206
  682. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path1_concurrent.rs +0 -206
  683. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path1_tracing_async.rs +0 -206
  684. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path2_async.rs +0 -206
  685. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path2_concurrent.rs +0 -206
  686. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path2_tracing_async.rs +0 -206
  687. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/worlds-with-types_async.rs +0 -272
  688. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/worlds-with-types_concurrent.rs +0 -272
  689. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/worlds-with-types_tracing_async.rs +0 -280
  690. data/ext/cargo-vendor/wasmtime-internal-component-util-37.0.2/.cargo-checksum.json +0 -1
  691. data/ext/cargo-vendor/wasmtime-internal-component-util-37.0.2/.cargo_vcs_info.json +0 -6
  692. data/ext/cargo-vendor/wasmtime-internal-component-util-37.0.2/Cargo.lock +0 -7
  693. data/ext/cargo-vendor/wasmtime-internal-component-util-37.0.2/Cargo.toml +0 -38
  694. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/.cargo-checksum.json +0 -1
  695. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/.cargo_vcs_info.json +0 -6
  696. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/Cargo.lock +0 -711
  697. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/Cargo.toml +0 -187
  698. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/compiler/component.rs +0 -1623
  699. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/compiler.rs +0 -1476
  700. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/func_environ/stack_switching/instructions.rs +0 -1917
  701. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/func_environ.rs +0 -4313
  702. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/lib.rs +0 -449
  703. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/.cargo-checksum.json +0 -1
  704. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/.cargo_vcs_info.json +0 -6
  705. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/Cargo.lock +0 -353
  706. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/Cargo.toml +0 -111
  707. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/Cargo.toml.orig +0 -42
  708. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/build.rs +0 -39
  709. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/lib.rs +0 -434
  710. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/aarch64.rs +0 -184
  711. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/arm.rs +0 -86
  712. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/riscv64.rs +0 -158
  713. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/s390x.S +0 -123
  714. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/x86.rs +0 -109
  715. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/x86_64.rs +0 -160
  716. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch.rs +0 -80
  717. data/ext/cargo-vendor/wasmtime-internal-jit-debug-37.0.2/.cargo-checksum.json +0 -1
  718. data/ext/cargo-vendor/wasmtime-internal-jit-debug-37.0.2/.cargo_vcs_info.json +0 -6
  719. data/ext/cargo-vendor/wasmtime-internal-jit-debug-37.0.2/Cargo.lock +0 -203
  720. data/ext/cargo-vendor/wasmtime-internal-jit-debug-37.0.2/Cargo.toml +0 -110
  721. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-37.0.2/.cargo-checksum.json +0 -1
  722. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-37.0.2/.cargo_vcs_info.json +0 -6
  723. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-37.0.2/Cargo.lock +0 -104
  724. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-37.0.2/Cargo.toml +0 -91
  725. data/ext/cargo-vendor/wasmtime-internal-math-37.0.2/.cargo-checksum.json +0 -1
  726. data/ext/cargo-vendor/wasmtime-internal-math-37.0.2/.cargo_vcs_info.json +0 -6
  727. data/ext/cargo-vendor/wasmtime-internal-math-37.0.2/Cargo.lock +0 -16
  728. data/ext/cargo-vendor/wasmtime-internal-math-37.0.2/Cargo.toml +0 -78
  729. data/ext/cargo-vendor/wasmtime-internal-slab-37.0.2/.cargo-checksum.json +0 -1
  730. data/ext/cargo-vendor/wasmtime-internal-slab-37.0.2/.cargo_vcs_info.json +0 -6
  731. data/ext/cargo-vendor/wasmtime-internal-slab-37.0.2/Cargo.lock +0 -7
  732. data/ext/cargo-vendor/wasmtime-internal-slab-37.0.2/Cargo.toml +0 -70
  733. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/.cargo-checksum.json +0 -1
  734. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/.cargo_vcs_info.json +0 -6
  735. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/Cargo.lock +0 -328
  736. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/Cargo.toml +0 -106
  737. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/src/stackwalk.rs +0 -219
  738. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-37.0.2/.cargo-checksum.json +0 -1
  739. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-37.0.2/.cargo_vcs_info.json +0 -6
  740. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-37.0.2/Cargo.lock +0 -47
  741. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-37.0.2/Cargo.toml +0 -43
  742. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/.cargo-checksum.json +0 -1
  743. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/.cargo_vcs_info.json +0 -6
  744. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/Cargo.lock +0 -649
  745. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/Cargo.toml +0 -132
  746. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/src/compiler.rs +0 -402
  747. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/.cargo-checksum.json +0 -1
  748. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/.cargo_vcs_info.json +0 -6
  749. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/Cargo.lock +0 -193
  750. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/Cargo.toml +0 -90
  751. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/src/config.rs +0 -164
  752. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/src/lib.rs +0 -3527
  753. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/.cargo-checksum.json +0 -1
  754. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/.cargo_vcs_info.json +0 -6
  755. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/Cargo.lock +0 -2512
  756. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/Cargo.toml +0 -262
  757. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/src/lib.rs +0 -48
  758. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/src/sockets/tcp.rs +0 -819
  759. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/src/view.rs +0 -95
  760. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/tests/all/p3/mod.rs +0 -144
  761. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/tests/all/store.rs +0 -81
  762. data/ext/cargo-vendor/wasmtime-wasi-io-37.0.2/.cargo-checksum.json +0 -1
  763. data/ext/cargo-vendor/wasmtime-wasi-io-37.0.2/.cargo_vcs_info.json +0 -6
  764. data/ext/cargo-vendor/wasmtime-wasi-io-37.0.2/Cargo.lock +0 -1211
  765. data/ext/cargo-vendor/wasmtime-wasi-io-37.0.2/Cargo.toml +0 -105
  766. data/ext/cargo-vendor/wiggle-37.0.2/.cargo-checksum.json +0 -1
  767. data/ext/cargo-vendor/wiggle-37.0.2/.cargo_vcs_info.json +0 -6
  768. data/ext/cargo-vendor/wiggle-37.0.2/Cargo.lock +0 -1168
  769. data/ext/cargo-vendor/wiggle-37.0.2/Cargo.toml +0 -139
  770. data/ext/cargo-vendor/wiggle-generate-37.0.2/.cargo-checksum.json +0 -1
  771. data/ext/cargo-vendor/wiggle-generate-37.0.2/.cargo_vcs_info.json +0 -6
  772. data/ext/cargo-vendor/wiggle-generate-37.0.2/Cargo.lock +0 -115
  773. data/ext/cargo-vendor/wiggle-generate-37.0.2/Cargo.toml +0 -102
  774. data/ext/cargo-vendor/wiggle-macro-37.0.2/.cargo-checksum.json +0 -1
  775. data/ext/cargo-vendor/wiggle-macro-37.0.2/.cargo_vcs_info.json +0 -6
  776. data/ext/cargo-vendor/wiggle-macro-37.0.2/Cargo.lock +0 -127
  777. data/ext/cargo-vendor/wiggle-macro-37.0.2/Cargo.toml +0 -98
  778. data/ext/cargo-vendor/winch-codegen-37.0.2/.cargo-checksum.json +0 -1
  779. data/ext/cargo-vendor/winch-codegen-37.0.2/.cargo_vcs_info.json +0 -6
  780. data/ext/cargo-vendor/winch-codegen-37.0.2/Cargo.lock +0 -620
  781. data/ext/cargo-vendor/winch-codegen-37.0.2/Cargo.toml +0 -133
  782. data/ext/cargo-vendor/winch-codegen-37.0.2/src/codegen/env.rs +0 -415
  783. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/COPYRIGHT +0 -0
  784. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/LICENSE-APACHE +0 -0
  785. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  786. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/LICENSE-MIT +0 -0
  787. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/README.md +0 -0
  788. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/build.rs +0 -0
  789. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/access.rs +0 -0
  790. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/assert_same_file.rs +0 -0
  791. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/canonicalize.rs +0 -0
  792. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/copy.rs +0 -0
  793. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/create_dir.rs +0 -0
  794. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/dir_builder.rs +0 -0
  795. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/dir_entry.rs +0 -0
  796. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/dir_options.rs +0 -0
  797. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/errors.rs +0 -0
  798. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/file.rs +0 -0
  799. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/file_path_by_searching.rs +0 -0
  800. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/file_type.rs +0 -0
  801. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/follow_symlinks.rs +0 -0
  802. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/hard_link.rs +0 -0
  803. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/is_file_read_write.rs +0 -0
  804. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/canonical_path.rs +0 -0
  805. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/canonicalize.rs +0 -0
  806. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/cow_component.rs +0 -0
  807. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/mod.rs +0 -0
  808. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/open.rs +0 -0
  809. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/open_entry.rs +0 -0
  810. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/read_link_one.rs +0 -0
  811. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/maybe_owned_file.rs +0 -0
  812. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/metadata.rs +0 -0
  813. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/mod.rs +0 -0
  814. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open.rs +0 -0
  815. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open_ambient.rs +0 -0
  816. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open_dir.rs +0 -0
  817. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open_options.rs +0 -0
  818. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open_unchecked_error.rs +0 -0
  819. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/permissions.rs +0 -0
  820. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/read_dir.rs +0 -0
  821. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/read_link.rs +0 -0
  822. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/remove_dir.rs +0 -0
  823. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/remove_dir_all.rs +0 -0
  824. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/remove_file.rs +0 -0
  825. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/remove_open_dir.rs +0 -0
  826. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/rename.rs +0 -0
  827. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/reopen.rs +0 -0
  828. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/set_permissions.rs +0 -0
  829. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/set_times.rs +0 -0
  830. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/stat.rs +0 -0
  831. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/symlink.rs +0 -0
  832. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/system_time_spec.rs +0 -0
  833. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/access.rs +0 -0
  834. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/create_dir.rs +0 -0
  835. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/hard_link.rs +0 -0
  836. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/mod.rs +0 -0
  837. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/read_link.rs +0 -0
  838. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/remove_dir.rs +0 -0
  839. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/remove_file.rs +0 -0
  840. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/rename.rs +0 -0
  841. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/set_permissions.rs +0 -0
  842. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/set_symlink_permissions.rs +0 -0
  843. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/set_times_nofollow.rs +0 -0
  844. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/symlink.rs +0 -0
  845. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/lib.rs +0 -0
  846. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/net/mod.rs +0 -0
  847. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/net/pool.rs +0 -0
  848. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/darwin/fs/file_path.rs +0 -0
  849. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/darwin/fs/mod.rs +0 -0
  850. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/darwin/mod.rs +0 -0
  851. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/check.rs +0 -0
  852. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/mod.rs +0 -0
  853. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/open_entry_impl.rs +0 -0
  854. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/open_impl.rs +0 -0
  855. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/remove_dir_impl.rs +0 -0
  856. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/remove_file_impl.rs +0 -0
  857. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/set_permissions_impl.rs +0 -0
  858. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/set_times_impl.rs +0 -0
  859. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/stat_impl.rs +0 -0
  860. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/mod.rs +0 -0
  861. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/access_unchecked.rs +0 -0
  862. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/copy_impl.rs +0 -0
  863. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/create_dir_unchecked.rs +0 -0
  864. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/cvt.rs +0 -0
  865. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/dir_entry_inner.rs +0 -0
  866. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/dir_options_ext.rs +0 -0
  867. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/dir_utils.rs +0 -0
  868. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/errors.rs +0 -0
  869. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/file_path.rs +0 -0
  870. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/file_type_ext.rs +0 -0
  871. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/hard_link_unchecked.rs +0 -0
  872. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/is_file_read_write_impl.rs +0 -0
  873. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/is_root_dir.rs +0 -0
  874. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/is_same_file.rs +0 -0
  875. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/metadata_ext.rs +0 -0
  876. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/mod.rs +0 -0
  877. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/oflags.rs +0 -0
  878. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/open_options_ext.rs +0 -0
  879. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/open_unchecked.rs +0 -0
  880. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/permissions_ext.rs +0 -0
  881. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/read_dir_inner.rs +0 -0
  882. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/read_link_unchecked.rs +0 -0
  883. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/remove_dir_all_impl.rs +0 -0
  884. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/remove_dir_unchecked.rs +0 -0
  885. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/remove_file_unchecked.rs +0 -0
  886. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/remove_open_dir_by_searching.rs +0 -0
  887. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/rename_unchecked.rs +0 -0
  888. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/reopen_impl.rs +0 -0
  889. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/set_permissions_impl.rs +0 -0
  890. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/set_symlink_permissions_unchecked.rs +0 -0
  891. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/set_times_impl.rs +0 -0
  892. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/stat_unchecked.rs +0 -0
  893. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/symlink_unchecked.rs +0 -0
  894. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/times.rs +0 -0
  895. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/canonicalize_impl.rs +0 -0
  896. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/file_metadata.rs +0 -0
  897. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/file_path.rs +0 -0
  898. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/mod.rs +0 -0
  899. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/open_entry_impl.rs +0 -0
  900. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/open_impl.rs +0 -0
  901. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/procfs.rs +0 -0
  902. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/set_permissions_impl.rs +0 -0
  903. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/set_times_impl.rs +0 -0
  904. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/mod.rs +0 -0
  905. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/mod.rs +0 -0
  906. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/instant.rs +0 -0
  907. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/mod.rs +0 -0
  908. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/monotonic_clock.rs +0 -0
  909. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/system_clock.rs +0 -0
  910. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/system_time.rs +0 -0
  911. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/access_unchecked.rs +0 -0
  912. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/copy.rs +0 -0
  913. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/create_dir_unchecked.rs +0 -0
  914. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/create_file_at_w.rs +0 -0
  915. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/dir_entry_inner.rs +0 -0
  916. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/dir_options_ext.rs +0 -0
  917. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/dir_utils.rs +0 -0
  918. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/errors.rs +0 -0
  919. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/file_type_ext.rs +0 -0
  920. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/get_path.rs +0 -0
  921. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/hard_link_unchecked.rs +0 -0
  922. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/is_file_read_write_impl.rs +0 -0
  923. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/is_same_file.rs +0 -0
  924. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/metadata_ext.rs +0 -0
  925. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/mod.rs +0 -0
  926. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/oflags.rs +0 -0
  927. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/open_impl.rs +0 -0
  928. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/open_options_ext.rs +0 -0
  929. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/open_unchecked.rs +0 -0
  930. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/read_dir_inner.rs +0 -0
  931. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/read_link_impl.rs +0 -0
  932. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/read_link_unchecked.rs +0 -0
  933. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/remove_dir_all_impl.rs +0 -0
  934. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/remove_dir_unchecked.rs +0 -0
  935. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/remove_file_unchecked.rs +0 -0
  936. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/remove_open_dir_impl.rs +0 -0
  937. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/rename_unchecked.rs +0 -0
  938. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/reopen_impl.rs +0 -0
  939. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/set_permissions_unchecked.rs +0 -0
  940. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/set_symlink_permissions_unchecked.rs +0 -0
  941. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/set_times_impl.rs +0 -0
  942. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/stat_unchecked.rs +0 -0
  943. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/symlink_unchecked.rs +0 -0
  944. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/mod.rs +0 -0
  945. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/COPYRIGHT +0 -0
  946. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/LICENSE-APACHE +0 -0
  947. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  948. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/LICENSE-MIT +0 -0
  949. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/README.md +0 -0
  950. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/build.rs +0 -0
  951. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/dir.rs +0 -0
  952. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/dir_entry.rs +0 -0
  953. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/file.rs +0 -0
  954. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/mod.rs +0 -0
  955. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/read_dir.rs +0 -0
  956. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/dir.rs +0 -0
  957. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/dir_entry.rs +0 -0
  958. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/file.rs +0 -0
  959. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/mod.rs +0 -0
  960. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/read_dir.rs +0 -0
  961. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/lib.rs +0 -0
  962. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/incoming.rs +0 -0
  963. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/mod.rs +0 -0
  964. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/pool.rs +0 -0
  965. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/tcp_stream.rs +0 -0
  966. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/udp_socket.rs +0 -0
  967. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/mod.rs +0 -0
  968. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/mod.rs +0 -0
  969. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/net/incoming.rs +0 -0
  970. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/net/mod.rs +0 -0
  971. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/net/unix_datagram.rs +0 -0
  972. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/net/unix_stream.rs +0 -0
  973. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/time/mod.rs +0 -0
  974. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/README.md +0 -0
  975. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/build.rs +0 -0
  976. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/api.rs +0 -0
  977. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/custom.rs +0 -0
  978. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/evex.rs +0 -0
  979. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/features.rs +0 -0
  980. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/fixed.rs +0 -0
  981. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/fuzz.rs +0 -0
  982. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/gpr.rs +0 -0
  983. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/imm.rs +0 -0
  984. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/inst.rs +0 -0
  985. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/lib.rs +0 -0
  986. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/main.rs +0 -0
  987. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/mem.rs +0 -0
  988. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/vex.rs +0 -0
  989. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/xmm.rs +0 -0
  990. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/README.md +0 -0
  991. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl/custom.rs +0 -0
  992. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl/encoding.rs +0 -0
  993. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl/features.rs +0 -0
  994. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl/format.rs +0 -0
  995. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl.rs +0 -0
  996. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/generate/features.rs +0 -0
  997. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/generate/format.rs +0 -0
  998. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/generate/operand.rs +0 -0
  999. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/abs.rs +0 -0
  1000. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/add.rs +0 -0
  1001. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/align.rs +0 -0
  1002. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/and.rs +0 -0
  1003. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/atomic.rs +0 -0
  1004. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/avg.rs +0 -0
  1005. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/bitmanip.rs +0 -0
  1006. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/cmov.rs +0 -0
  1007. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/cmp.rs +0 -0
  1008. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/cvt.rs +0 -0
  1009. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/div.rs +0 -0
  1010. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/fma.rs +0 -0
  1011. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/jmp.rs +0 -0
  1012. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/lanes.rs +0 -0
  1013. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/max.rs +0 -0
  1014. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/min.rs +0 -0
  1015. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/misc.rs +0 -0
  1016. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/mov.rs +0 -0
  1017. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/mul.rs +0 -0
  1018. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/neg.rs +0 -0
  1019. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/nop.rs +0 -0
  1020. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/or.rs +0 -0
  1021. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/pack.rs +0 -0
  1022. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/pma.rs +0 -0
  1023. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/recip.rs +0 -0
  1024. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/round.rs +0 -0
  1025. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/setcc.rs +0 -0
  1026. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/shift.rs +0 -0
  1027. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/sqrt.rs +0 -0
  1028. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/stack.rs +0 -0
  1029. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/sub.rs +0 -0
  1030. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/unpack.rs +0 -0
  1031. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/xor.rs +0 -0
  1032. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions.rs +0 -0
  1033. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/lib.rs +0 -0
  1034. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/main.rs +0 -0
  1035. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/LICENSE +0 -0
  1036. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/README.md +0 -0
  1037. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/lib.rs +0 -0
  1038. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/map.rs +0 -0
  1039. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/node.rs +0 -0
  1040. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/path.rs +0 -0
  1041. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/pool.rs +0 -0
  1042. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/set.rs +0 -0
  1043. /data/ext/cargo-vendor/{cranelift-bitset-0.124.2 → cranelift-bitset-0.125.4}/src/compound.rs +0 -0
  1044. /data/ext/cargo-vendor/{cranelift-bitset-0.124.2 → cranelift-bitset-0.125.4}/src/lib.rs +0 -0
  1045. /data/ext/cargo-vendor/{cranelift-bitset-0.124.2 → cranelift-bitset-0.125.4}/src/scalar.rs +0 -0
  1046. /data/ext/cargo-vendor/{cranelift-bitset-0.124.2 → cranelift-bitset-0.125.4}/tests/bitset.rs +0 -0
  1047. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/LICENSE +0 -0
  1048. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/README.md +0 -0
  1049. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/build.rs +0 -0
  1050. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/alias_analysis.rs +0 -0
  1051. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/binemit/mod.rs +0 -0
  1052. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/cfg_printer.rs +0 -0
  1053. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/constant_hash.rs +0 -0
  1054. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/context.rs +0 -0
  1055. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ctxhash.rs +0 -0
  1056. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/cursor.rs +0 -0
  1057. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/data_value.rs +0 -0
  1058. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/dbg.rs +0 -0
  1059. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/dominator_tree/simple.rs +0 -0
  1060. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/dominator_tree.rs +0 -0
  1061. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/egraph/cost.rs +0 -0
  1062. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/egraph/elaborate.rs +0 -0
  1063. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/egraph.rs +0 -0
  1064. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/flowgraph.rs +0 -0
  1065. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/incremental_cache.rs +0 -0
  1066. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/inst_predicates.rs +0 -0
  1067. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/inst_specs.isle +0 -0
  1068. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/atomic_rmw_op.rs +0 -0
  1069. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/builder.rs +0 -0
  1070. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/condcodes.rs +0 -0
  1071. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/constant.rs +0 -0
  1072. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/dfg.rs +0 -0
  1073. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/dynamic_type.rs +0 -0
  1074. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/entities.rs +0 -0
  1075. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/exception_table.rs +0 -0
  1076. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/extfunc.rs +0 -0
  1077. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/extname.rs +0 -0
  1078. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/function.rs +0 -0
  1079. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/globalvalue.rs +0 -0
  1080. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/immediates.rs +0 -0
  1081. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/jumptable.rs +0 -0
  1082. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/known_symbol.rs +0 -0
  1083. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/layout.rs +0 -0
  1084. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/libcall.rs +0 -0
  1085. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/memflags.rs +0 -0
  1086. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/memtype.rs +0 -0
  1087. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/mod.rs +0 -0
  1088. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/pcc.rs +0 -0
  1089. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/progpoint.rs +0 -0
  1090. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/sourceloc.rs +0 -0
  1091. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/stackslot.rs +0 -0
  1092. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/trapcode.rs +0 -0
  1093. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/types.rs +0 -0
  1094. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/user_stack_maps.rs +0 -0
  1095. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  1096. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/imms.rs +0 -0
  1097. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/regs.rs +0 -0
  1098. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  1099. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/unwind.rs +0 -0
  1100. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst_neon.isle +0 -0
  1101. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1102. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/lower/isle.rs +0 -0
  1103. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/lower.rs +0 -0
  1104. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1105. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/mod.rs +0 -0
  1106. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/pcc.rs +0 -0
  1107. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/settings.rs +0 -0
  1108. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/mod.rs +0 -0
  1109. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley32.rs +0 -0
  1110. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley64.rs +0 -0
  1111. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/abi.rs +0 -0
  1112. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/inst/args.rs +0 -0
  1113. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/inst/regs.rs +0 -0
  1114. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/lower/isle/generated_code.rs +0 -0
  1115. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/lower/isle.rs +0 -0
  1116. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/lower.rs +0 -0
  1117. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/mod.rs +0 -0
  1118. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/settings.rs +0 -0
  1119. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/abi.rs +0 -0
  1120. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/args.rs +0 -0
  1121. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  1122. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/encode.rs +0 -0
  1123. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/imms.rs +0 -0
  1124. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/regs.rs +0 -0
  1125. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  1126. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/unwind.rs +0 -0
  1127. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/vector.rs +0 -0
  1128. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst_vector.isle +0 -0
  1129. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1130. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/lower/isle.rs +0 -0
  1131. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/lower.rs +0 -0
  1132. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/settings.rs +0 -0
  1133. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/args.rs +0 -0
  1134. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/emit_tests.rs +0 -0
  1135. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/imms.rs +0 -0
  1136. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/regs.rs +0 -0
  1137. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1138. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/unwind.rs +0 -0
  1139. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1140. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/lower/isle.rs +0 -0
  1141. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/lower.rs +0 -0
  1142. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/mod.rs +0 -0
  1143. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/settings.rs +0 -0
  1144. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/unwind/systemv.rs +0 -0
  1145. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/unwind/winarm64.rs +0 -0
  1146. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/unwind/winx64.rs +0 -0
  1147. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/unwind.rs +0 -0
  1148. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/winch.rs +0 -0
  1149. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/emit_state.rs +0 -0
  1150. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/emit_tests.rs +0 -0
  1151. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/external.rs +0 -0
  1152. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/regs.rs +0 -0
  1153. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/stack_switch.rs +0 -0
  1154. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1155. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1156. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/unwind.rs +0 -0
  1157. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1158. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/lower.rs +0 -0
  1159. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/settings.rs +0 -0
  1160. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isle_prelude.rs +0 -0
  1161. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/legalizer/branch_to_trap.rs +0 -0
  1162. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/legalizer/globalvalue.rs +0 -0
  1163. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/legalizer/mod.rs +0 -0
  1164. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/loop_analysis.rs +0 -0
  1165. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/buffer.rs +0 -0
  1166. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/compile.rs +0 -0
  1167. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/helpers.rs +0 -0
  1168. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/inst_common.rs +0 -0
  1169. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/mod.rs +0 -0
  1170. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/pcc.rs +0 -0
  1171. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/reg.rs +0 -0
  1172. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/valueregs.rs +0 -0
  1173. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/vcode.rs +0 -0
  1174. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/nan_canonicalization.rs +0 -0
  1175. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/README.md +0 -0
  1176. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/cprop.isle +0 -0
  1177. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/div_const.rs +0 -0
  1178. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/extends.isle +0 -0
  1179. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/generated_code.rs +0 -0
  1180. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/remat.isle +0 -0
  1181. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/skeleton.isle +0 -0
  1182. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/spaceship.isle +0 -0
  1183. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/spectre.isle +0 -0
  1184. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/vector.isle +0 -0
  1185. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts.rs +0 -0
  1186. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/prelude.isle +0 -0
  1187. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/prelude_opt.isle +0 -0
  1188. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/print_errors.rs +0 -0
  1189. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ranges.rs +0 -0
  1190. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/remove_constant_phis.rs +0 -0
  1191. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/result.rs +0 -0
  1192. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/scoped_hash_map.rs +0 -0
  1193. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/souper_harvest.rs +0 -0
  1194. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/take_and_replace.rs +0 -0
  1195. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/timing.rs +0 -0
  1196. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/traversals.rs +0 -0
  1197. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/unreachable_code.rs +0 -0
  1198. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/value_label.rs +0 -0
  1199. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/LICENSE +0 -0
  1200. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/README.md +0 -0
  1201. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/cdsl/isa.rs +0 -0
  1202. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/cdsl/types.rs +0 -0
  1203. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/cdsl/typevar.rs +0 -0
  1204. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/constant_hash.rs +0 -0
  1205. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/gen_types.rs +0 -0
  1206. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isa/arm64.rs +0 -0
  1207. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isa/mod.rs +0 -0
  1208. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isa/pulley.rs +0 -0
  1209. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isa/s390x.rs +0 -0
  1210. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isle.rs +0 -0
  1211. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/lib.rs +0 -0
  1212. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/pulley.rs +0 -0
  1213. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/shared/immediates.rs +0 -0
  1214. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/shared/mod.rs +0 -0
  1215. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/shared/types.rs +0 -0
  1216. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/unique_table.rs +0 -0
  1217. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/LICENSE +0 -0
  1218. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/README.md +0 -0
  1219. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/src/constant_hash.rs +0 -0
  1220. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/src/constants.rs +0 -0
  1221. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/src/lib.rs +0 -0
  1222. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/LICENSE +0 -0
  1223. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/README.md +0 -0
  1224. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/src/chaos.rs +0 -0
  1225. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/src/lib.rs +0 -0
  1226. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/src/zero_sized.rs +0 -0
  1227. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/LICENSE +0 -0
  1228. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/README.md +0 -0
  1229. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/boxed_slice.rs +0 -0
  1230. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/iter.rs +0 -0
  1231. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/keys.rs +0 -0
  1232. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/lib.rs +0 -0
  1233. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/list.rs +0 -0
  1234. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/map.rs +0 -0
  1235. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/packed_option.rs +0 -0
  1236. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/set.rs +0 -0
  1237. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/sparse.rs +0 -0
  1238. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/LICENSE +0 -0
  1239. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/README.md +0 -0
  1240. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/frontend/safepoints.rs +0 -0
  1241. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/lib.rs +0 -0
  1242. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/ssa.rs +0 -0
  1243. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/switch.rs +0 -0
  1244. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/variable.rs +0 -0
  1245. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/README.md +0 -0
  1246. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/build.rs +0 -0
  1247. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/bad_converters.isle +0 -0
  1248. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1249. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1250. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/error1.isle +0 -0
  1251. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/extra_parens.isle +0 -0
  1252. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/impure_expression.isle +0 -0
  1253. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/impure_rhs.isle +0 -0
  1254. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1255. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/multi_prio.isle +0 -0
  1256. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/borrows.isle +0 -0
  1257. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/borrows_main.rs +0 -0
  1258. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/iflets.isle +0 -0
  1259. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/iflets_main.rs +0 -0
  1260. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/multi_constructor.isle +0 -0
  1261. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/multi_constructor_main.rs +0 -0
  1262. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/multi_extractor.isle +0 -0
  1263. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/multi_extractor_main.rs +0 -0
  1264. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/test.isle +0 -0
  1265. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/test_main.rs +0 -0
  1266. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/bound_var.isle +0 -0
  1267. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/construct_and_extract.isle +0 -0
  1268. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/conversions.isle +0 -0
  1269. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/conversions_extern.isle +0 -0
  1270. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/let.isle +0 -0
  1271. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/nodebug.isle +0 -0
  1272. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1273. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/test2.isle +0 -0
  1274. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/test3.isle +0 -0
  1275. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/test4.isle +0 -0
  1276. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/tutorial.isle +0 -0
  1277. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/veri_spec.isle +0 -0
  1278. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/run/iconst.isle +0 -0
  1279. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/run/iconst_main.rs +0 -0
  1280. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/run/let_shadowing.isle +0 -0
  1281. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/run/let_shadowing_main.rs +0 -0
  1282. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/ast.rs +0 -0
  1283. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/codegen.rs +0 -0
  1284. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/compile.rs +0 -0
  1285. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/disjointsets.rs +0 -0
  1286. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/error.rs +0 -0
  1287. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/files.rs +0 -0
  1288. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/lexer.rs +0 -0
  1289. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/lib.rs +0 -0
  1290. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/log.rs +0 -0
  1291. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/overlap.rs +0 -0
  1292. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/parser.rs +0 -0
  1293. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/printer.rs +0 -0
  1294. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/sema.rs +0 -0
  1295. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/serialize.rs +0 -0
  1296. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/stablemapset.rs +0 -0
  1297. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/trie_again.rs +0 -0
  1298. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/tests/run_tests.rs +0 -0
  1299. /data/ext/cargo-vendor/{cranelift-native-0.124.2 → cranelift-native-0.125.4}/LICENSE +0 -0
  1300. /data/ext/cargo-vendor/{cranelift-native-0.124.2 → cranelift-native-0.125.4}/README.md +0 -0
  1301. /data/ext/cargo-vendor/{cranelift-native-0.124.2 → cranelift-native-0.125.4}/src/lib.rs +0 -0
  1302. /data/ext/cargo-vendor/{cranelift-native-0.124.2 → cranelift-native-0.125.4}/src/riscv.rs +0 -0
  1303. /data/ext/cargo-vendor/{cranelift-srcgen-0.124.2 → cranelift-srcgen-0.125.4}/src/error.rs +0 -0
  1304. /data/ext/cargo-vendor/{cranelift-srcgen-0.124.2 → cranelift-srcgen-0.125.4}/src/lib.rs +0 -0
  1305. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/README.md +0 -0
  1306. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/src/clocks.rs +0 -0
  1307. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/src/lib.rs +0 -0
  1308. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/src/scheduling.rs +0 -0
  1309. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/tests/clocks.rs +0 -0
  1310. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/tests/common/mod.rs +0 -0
  1311. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/tests/random.rs +0 -0
  1312. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/tests/scheduler.rs +0 -0
  1313. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/CONTRIBUTING.md +0 -0
  1314. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/Cargo.toml.orig +0 -0
  1315. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/README.md +0 -0
  1316. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/examples/profiler-html.rs +0 -0
  1317. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/decode.rs +0 -0
  1318. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/disas.rs +0 -0
  1319. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/encode.rs +0 -0
  1320. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/imms.rs +0 -0
  1321. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/interp/debug.rs +0 -0
  1322. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/interp/match_loop.rs +0 -0
  1323. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/interp/tail_loop.rs +0 -0
  1324. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/interp.rs +0 -0
  1325. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/op.rs +0 -0
  1326. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/opcode.rs +0 -0
  1327. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/profile.rs +0 -0
  1328. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/profile_disabled.rs +0 -0
  1329. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/regs.rs +0 -0
  1330. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/tests/all/disas.rs +0 -0
  1331. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/tests/all/interp.rs +0 -0
  1332. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/tests/all/main.rs +0 -0
  1333. /data/ext/cargo-vendor/{pulley-macros-37.0.2 → pulley-macros-38.0.4}/Cargo.toml.orig +0 -0
  1334. /data/ext/cargo-vendor/{pulley-macros-37.0.2 → pulley-macros-38.0.4}/src/interp_disable_if_cfg.rs +0 -0
  1335. /data/ext/cargo-vendor/{pulley-macros-37.0.2 → pulley-macros-38.0.4}/src/lib.rs +0 -0
  1336. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/LICENSE +0 -0
  1337. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/README.md +0 -0
  1338. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/proptest-regressions/runtime/vm/instance/allocator/pooling/memory_pool.txt +0 -0
  1339. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/call_graph.rs +0 -0
  1340. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/code_builder.rs +0 -0
  1341. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/runtime.rs +0 -0
  1342. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/scc.rs +0 -0
  1343. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/stratify.rs +0 -0
  1344. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent/jitdump.rs +0 -0
  1345. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent/perfmap.rs +0 -0
  1346. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent/pulley.rs +0 -0
  1347. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent/vtune.rs +0 -0
  1348. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent.rs +0 -0
  1349. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/code.rs +0 -0
  1350. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/code_memory.rs +0 -0
  1351. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_0_hello_world.rs +0 -0
  1352. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_1_world_imports.rs +0 -0
  1353. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_2_world_exports.rs +0 -0
  1354. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_3_interface_imports.rs +0 -0
  1355. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_4_imported_resources.rs +0 -0
  1356. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_5_all_world_export_kinds.rs +0 -0
  1357. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_6_exported_resources.rs +0 -0
  1358. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_7_async.rs +0 -0
  1359. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_8_store_in_imports.rs +0 -0
  1360. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/mod.rs +0 -0
  1361. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/abort.rs +0 -0
  1362. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/error_contexts.rs +0 -0
  1363. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/futures_and_streams/buffers.rs +0 -0
  1364. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/table.rs +0 -0
  1365. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/tls.rs +0 -0
  1366. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent_disabled.rs +0 -0
  1367. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/func/options.rs +0 -0
  1368. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/has_data.rs +0 -0
  1369. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/linker.rs +0 -0
  1370. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/matching.rs +0 -0
  1371. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/resource_table.rs +0 -0
  1372. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/resources.rs +0 -0
  1373. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/storage.rs +0 -0
  1374. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/store.rs +0 -0
  1375. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/types.rs +0 -0
  1376. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/values.rs +0 -0
  1377. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/debug.rs +0 -0
  1378. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/exception.rs +0 -0
  1379. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/externals/global.rs +0 -0
  1380. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/externals/table.rs +0 -0
  1381. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/externals/tag.rs +0 -0
  1382. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/externals.rs +0 -0
  1383. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/fiber.rs +0 -0
  1384. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/func/typed.rs +0 -0
  1385. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/anyref.rs +0 -0
  1386. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/arrayref.rs +0 -0
  1387. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/eqref.rs +0 -0
  1388. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/exnref.rs +0 -0
  1389. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/externref.rs +0 -0
  1390. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/i31.rs +0 -0
  1391. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/rooting.rs +0 -0
  1392. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/structref.rs +0 -0
  1393. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled.rs +0 -0
  1394. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/anyref.rs +0 -0
  1395. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/arrayref.rs +0 -0
  1396. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/eqref.rs +0 -0
  1397. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/exnref.rs +0 -0
  1398. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/externref.rs +0 -0
  1399. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/i31.rs +0 -0
  1400. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/rooting.rs +0 -0
  1401. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/structref.rs +0 -0
  1402. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled.rs +0 -0
  1403. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/noextern.rs +0 -0
  1404. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/none_ref.rs +0 -0
  1405. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc.rs +0 -0
  1406. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/instance.rs +0 -0
  1407. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/limits.rs +0 -0
  1408. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/linker.rs +0 -0
  1409. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/module/registry.rs +0 -0
  1410. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/resources.rs +0 -0
  1411. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/stack.rs +0 -0
  1412. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/async_.rs +0 -0
  1413. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/context.rs +0 -0
  1414. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/data.rs +0 -0
  1415. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/func_refs.rs +0 -0
  1416. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/gc.rs +0 -0
  1417. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/token.rs +0 -0
  1418. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/trampoline/func.rs +0 -0
  1419. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/trampoline/global.rs +0 -0
  1420. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/trampoline.rs +0 -0
  1421. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/type_registry.rs +0 -0
  1422. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/types/matching.rs +0 -0
  1423. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/types.rs +0 -0
  1424. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/uninhabited.rs +0 -0
  1425. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/unix.rs +0 -0
  1426. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/v128.rs +0 -0
  1427. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/values.rs +0 -0
  1428. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/always_mut.rs +0 -0
  1429. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/async_yield.rs +0 -0
  1430. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/byte_count.rs +0 -0
  1431. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/component/handle_table.rs +0 -0
  1432. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/component/resources.rs +0 -0
  1433. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/const_expr.rs +0 -0
  1434. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/cow.rs +0 -0
  1435. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/cow_disabled.rs +0 -0
  1436. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/debug_builtins.rs +0 -0
  1437. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/export.rs +0 -0
  1438. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/disabled.rs +0 -0
  1439. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/arrayref.rs +0 -0
  1440. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/data.rs +0 -0
  1441. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/drc.rs +0 -0
  1442. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/exnref.rs +0 -0
  1443. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/externref.rs +0 -0
  1444. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/free_list.rs +0 -0
  1445. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/null.rs +0 -0
  1446. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/structref.rs +0 -0
  1447. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled.rs +0 -0
  1448. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/func_ref.rs +0 -0
  1449. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/gc_ref.rs +0 -0
  1450. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/gc_runtime.rs +0 -0
  1451. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/host_data.rs +0 -0
  1452. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/i31.rs +0 -0
  1453. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc.rs +0 -0
  1454. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/imports.rs +0 -0
  1455. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/on_demand.rs +0 -0
  1456. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +0 -0
  1457. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +0 -0
  1458. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +0 -0
  1459. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +0 -0
  1460. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +0 -0
  1461. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/metrics.rs +0 -0
  1462. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/table_pool.rs +0 -0
  1463. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +0 -0
  1464. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling.rs +0 -0
  1465. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator.rs +0 -0
  1466. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/libcalls.rs +0 -0
  1467. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/malloc.rs +0 -0
  1468. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/mmap.rs +0 -0
  1469. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/shared_memory.rs +0 -0
  1470. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/shared_memory_disabled.rs +0 -0
  1471. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/static_.rs +0 -0
  1472. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory.rs +0 -0
  1473. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mmap.rs +0 -0
  1474. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mmap_vec.rs +0 -0
  1475. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/module_id.rs +0 -0
  1476. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/disabled.rs +0 -0
  1477. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/enabled.rs +0 -0
  1478. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/mod.rs +0 -0
  1479. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/pkru.rs +0 -0
  1480. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/sys.rs +0 -0
  1481. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/pagemap_disabled.rs +0 -0
  1482. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/parking_spot.rs +0 -0
  1483. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/provenance.rs +0 -0
  1484. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/send_sync_ptr.rs +0 -0
  1485. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/send_sync_unsafe_cell.rs +0 -0
  1486. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/stack_switching/stack/dummy.rs +0 -0
  1487. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/stack_switching/stack.rs +0 -0
  1488. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/store_box.rs +0 -0
  1489. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/custom/mmap.rs +0 -0
  1490. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/custom/mod.rs +0 -0
  1491. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/custom/unwind.rs +0 -0
  1492. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/custom/vm.rs +0 -0
  1493. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/miri/mmap.rs +0 -0
  1494. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/miri/mod.rs +0 -0
  1495. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/miri/unwind.rs +0 -0
  1496. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/miri/vm.rs +0 -0
  1497. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/mod.rs +0 -0
  1498. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/mmap.rs +0 -0
  1499. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/mod.rs +0 -0
  1500. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/pagemap.rs +0 -0
  1501. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/unwind.rs +0 -0
  1502. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/vm.rs +0 -0
  1503. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/windows/mmap.rs +0 -0
  1504. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/windows/mod.rs +0 -0
  1505. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/windows/unwind64.rs +0 -0
  1506. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/windows/vm.rs +0 -0
  1507. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/table.rs +0 -0
  1508. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/traphandlers/backtrace.rs +0 -0
  1509. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/traphandlers/coredump_disabled.rs +0 -0
  1510. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/traphandlers/coredump_enabled.rs +0 -0
  1511. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/traphandlers/signals.rs +0 -0
  1512. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/vmcontext/vm_host_func_context.rs +0 -0
  1513. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm.rs +0 -0
  1514. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/wave/component.rs +0 -0
  1515. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/wave/core.rs +0 -0
  1516. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/wave.rs +0 -0
  1517. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/windows.rs +0 -0
  1518. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime.rs +0 -0
  1519. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/sync_nostd.rs +0 -0
  1520. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/sync_std.rs +0 -0
  1521. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/custom_signal_handler.rs +0 -0
  1522. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/engine_across_forks.rs +0 -0
  1523. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/host_segfault.rs +0 -0
  1524. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/pooling_alloc_near_oom.rs +0 -0
  1525. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/unload-engine.rs +0 -0
  1526. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/LICENSE +0 -0
  1527. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/examples/factc.rs +0 -0
  1528. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/compile/address_map.rs +0 -0
  1529. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/compile/module_types.rs +0 -0
  1530. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/compile/stack_maps.rs +0 -0
  1531. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/compile/trap_encoding.rs +0 -0
  1532. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/names.rs +0 -0
  1533. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/translate/adapt.rs +0 -0
  1534. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/translate.rs +0 -0
  1535. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/types.rs +0 -0
  1536. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/types_builder/resources.rs +0 -0
  1537. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/types_builder.rs +0 -0
  1538. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/vmcomponent_offsets.rs +0 -0
  1539. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/demangling.rs +0 -0
  1540. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/error.rs +0 -0
  1541. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/ext.rs +0 -0
  1542. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/core_types.rs +0 -0
  1543. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/signature.rs +0 -0
  1544. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/trampoline.rs +0 -0
  1545. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/transcode.rs +0 -0
  1546. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/traps.rs +0 -0
  1547. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact.rs +0 -0
  1548. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/gc/drc.rs +0 -0
  1549. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/gc/null.rs +0 -0
  1550. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/gc.rs +0 -0
  1551. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/module_types.rs +0 -0
  1552. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/obj.rs +0 -0
  1553. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/prelude.rs +0 -0
  1554. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/ref_bits.rs +0 -0
  1555. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/scopevec.rs +0 -0
  1556. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/stack_map.rs +0 -0
  1557. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/stack_switching.rs +0 -0
  1558. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/tunables.rs +0 -0
  1559. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/types.rs +0 -0
  1560. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/Cargo.toml.orig +0 -0
  1561. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/LICENSE +0 -0
  1562. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/build.rs +0 -0
  1563. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/config/tests.rs +0 -0
  1564. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/config.rs +0 -0
  1565. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/lib.rs +0 -0
  1566. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/tests.rs +0 -0
  1567. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/worker/tests/system_time_stub.rs +0 -0
  1568. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/worker/tests.rs +0 -0
  1569. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/worker.rs +0 -0
  1570. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/tests/cache_write_default_config.rs +0 -0
  1571. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/Cargo.toml.orig +0 -0
  1572. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/build.rs +0 -0
  1573. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/src/bindgen.rs +0 -0
  1574. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/src/component.rs +0 -0
  1575. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/src/lib.rs +0 -0
  1576. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/char.wit +0 -0
  1577. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/conventions.wit +0 -0
  1578. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/dead-code.wit +0 -0
  1579. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/direct-import.wit +0 -0
  1580. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/empty.wit +0 -0
  1581. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/flags.wit +0 -0
  1582. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/floats.wit +0 -0
  1583. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/function-new.wit +0 -0
  1584. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/host-world.wit +0 -0
  1585. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/integers.wit +0 -0
  1586. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/lists.wit +0 -0
  1587. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/many-arguments.wit +0 -0
  1588. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1589. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1590. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/multiversion/root.wit +0 -0
  1591. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/path1/world.wit +0 -0
  1592. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/path2/world.wit +0 -0
  1593. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/records.wit +0 -0
  1594. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/rename.wit +0 -0
  1595. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/resources-export.wit +0 -0
  1596. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/resources-import.wit +0 -0
  1597. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/share-types.wit +0 -0
  1598. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/simple-functions.wit +0 -0
  1599. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/simple-lists.wit +0 -0
  1600. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/simple-wasi.wit +0 -0
  1601. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/small-anonymous.wit +0 -0
  1602. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/smoke-default.wit +0 -0
  1603. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/smoke-export.wit +0 -0
  1604. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/smoke.wit +0 -0
  1605. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/strings.wit +0 -0
  1606. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/unstable-features.wit +0 -0
  1607. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/unversioned-foo.wit +0 -0
  1608. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/use-paths.wit +0 -0
  1609. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/variants.wit +0 -0
  1610. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/wat.wit +0 -0
  1611. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/worlds-with-types.wit +0 -0
  1612. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen_no_std.rs +0 -0
  1613. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/char.rs +0 -0
  1614. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/char_async.rs +0 -0
  1615. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/char_concurrent.rs +0 -0
  1616. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/char_tracing_async.rs +0 -0
  1617. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/conventions.rs +0 -0
  1618. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/conventions_async.rs +0 -0
  1619. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/conventions_concurrent.rs +0 -0
  1620. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/conventions_tracing_async.rs +0 -0
  1621. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/dead-code.rs +0 -0
  1622. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/dead-code_async.rs +0 -0
  1623. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/dead-code_concurrent.rs +0 -0
  1624. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/dead-code_tracing_async.rs +0 -0
  1625. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/direct-import.rs +0 -0
  1626. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/direct-import_async.rs +0 -0
  1627. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/direct-import_concurrent.rs +0 -0
  1628. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/direct-import_tracing_async.rs +0 -0
  1629. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/empty.rs +0 -0
  1630. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/empty_async.rs +0 -0
  1631. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/empty_concurrent.rs +0 -0
  1632. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/empty_tracing_async.rs +0 -0
  1633. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/flags.rs +0 -0
  1634. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/flags_async.rs +0 -0
  1635. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/flags_concurrent.rs +0 -0
  1636. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/flags_tracing_async.rs +0 -0
  1637. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/floats.rs +0 -0
  1638. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/floats_async.rs +0 -0
  1639. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/floats_concurrent.rs +0 -0
  1640. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/floats_tracing_async.rs +0 -0
  1641. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/function-new.rs +0 -0
  1642. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/function-new_async.rs +0 -0
  1643. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/function-new_concurrent.rs +0 -0
  1644. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/function-new_tracing_async.rs +0 -0
  1645. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/host-world.rs +0 -0
  1646. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/host-world_async.rs +0 -0
  1647. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/host-world_concurrent.rs +0 -0
  1648. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/host-world_tracing_async.rs +0 -0
  1649. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/integers.rs +0 -0
  1650. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/integers_async.rs +0 -0
  1651. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/integers_concurrent.rs +0 -0
  1652. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/integers_tracing_async.rs +0 -0
  1653. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/lists.rs +0 -0
  1654. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/lists_async.rs +0 -0
  1655. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/lists_concurrent.rs +0 -0
  1656. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/lists_tracing_async.rs +0 -0
  1657. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/many-arguments.rs +0 -0
  1658. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/many-arguments_async.rs +0 -0
  1659. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/many-arguments_concurrent.rs +0 -0
  1660. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/many-arguments_tracing_async.rs +0 -0
  1661. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multi-return.rs +0 -0
  1662. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multiversion.rs +0 -0
  1663. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multiversion_async.rs +0 -0
  1664. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multiversion_concurrent.rs +0 -0
  1665. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multiversion_tracing_async.rs +0 -0
  1666. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/path1.rs +0 -0
  1667. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/path2.rs +0 -0
  1668. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/records.rs +0 -0
  1669. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/records_async.rs +0 -0
  1670. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/records_concurrent.rs +0 -0
  1671. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/records_tracing_async.rs +0 -0
  1672. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/rename.rs +0 -0
  1673. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/rename_async.rs +0 -0
  1674. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/rename_concurrent.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/rename_tracing_async.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-export.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-export_async.rs +0 -0
  1678. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-export_concurrent.rs +0 -0
  1679. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-export_tracing_async.rs +0 -0
  1680. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-import.rs +0 -0
  1681. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-import_async.rs +0 -0
  1682. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-import_concurrent.rs +0 -0
  1683. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-import_tracing_async.rs +0 -0
  1684. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/share-types.rs +0 -0
  1685. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/share-types_async.rs +0 -0
  1686. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/share-types_concurrent.rs +0 -0
  1687. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/share-types_tracing_async.rs +0 -0
  1688. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-functions.rs +0 -0
  1689. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-functions_async.rs +0 -0
  1690. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-functions_concurrent.rs +0 -0
  1691. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-functions_tracing_async.rs +0 -0
  1692. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-lists.rs +0 -0
  1693. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-lists_async.rs +0 -0
  1694. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-lists_concurrent.rs +0 -0
  1695. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-lists_tracing_async.rs +0 -0
  1696. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-wasi.rs +0 -0
  1697. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-wasi_async.rs +0 -0
  1698. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-wasi_concurrent.rs +0 -0
  1699. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-wasi_tracing_async.rs +0 -0
  1700. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/small-anonymous.rs +0 -0
  1701. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/small-anonymous_async.rs +0 -0
  1702. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/small-anonymous_concurrent.rs +0 -0
  1703. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/small-anonymous_tracing_async.rs +0 -0
  1704. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-default.rs +0 -0
  1705. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-default_async.rs +0 -0
  1706. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-default_concurrent.rs +0 -0
  1707. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-default_tracing_async.rs +0 -0
  1708. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-export.rs +0 -0
  1709. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-export_async.rs +0 -0
  1710. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-export_concurrent.rs +0 -0
  1711. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-export_tracing_async.rs +0 -0
  1712. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke.rs +0 -0
  1713. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke_async.rs +0 -0
  1714. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke_concurrent.rs +0 -0
  1715. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke_tracing_async.rs +0 -0
  1716. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/strings.rs +0 -0
  1717. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/strings_async.rs +0 -0
  1718. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/strings_concurrent.rs +0 -0
  1719. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/strings_tracing_async.rs +0 -0
  1720. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unstable-features.rs +0 -0
  1721. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unstable-features_async.rs +0 -0
  1722. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unstable-features_concurrent.rs +0 -0
  1723. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unstable-features_tracing_async.rs +0 -0
  1724. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unversioned-foo.rs +0 -0
  1725. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unversioned-foo_async.rs +0 -0
  1726. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unversioned-foo_concurrent.rs +0 -0
  1727. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unversioned-foo_tracing_async.rs +0 -0
  1728. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/use-paths.rs +0 -0
  1729. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/use-paths_async.rs +0 -0
  1730. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/use-paths_concurrent.rs +0 -0
  1731. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/use-paths_tracing_async.rs +0 -0
  1732. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/variants.rs +0 -0
  1733. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/variants_async.rs +0 -0
  1734. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/variants_concurrent.rs +0 -0
  1735. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/variants_tracing_async.rs +0 -0
  1736. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/wat.rs +0 -0
  1737. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/wat_async.rs +0 -0
  1738. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/wat_concurrent.rs +0 -0
  1739. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/wat_tracing_async.rs +0 -0
  1740. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/worlds-with-types.rs +0 -0
  1741. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded.rs +0 -0
  1742. /data/ext/cargo-vendor/{wasmtime-internal-component-util-37.0.2 → wasmtime-internal-component-util-38.0.4}/Cargo.toml.orig +0 -0
  1743. /data/ext/cargo-vendor/{wasmtime-internal-component-util-37.0.2 → wasmtime-internal-component-util-38.0.4}/src/lib.rs +0 -0
  1744. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/Cargo.toml.orig +0 -0
  1745. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/LICENSE +0 -0
  1746. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/SECURITY.md +0 -0
  1747. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/bounds_checks.rs +0 -0
  1748. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/builder.rs +0 -0
  1749. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/compiled_function.rs +0 -0
  1750. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/gc.rs +0 -0
  1751. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/address_transform.rs +0 -0
  1752. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/attr.rs +0 -0
  1753. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/debug_transform_logging.rs +0 -0
  1754. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/expression.rs +0 -0
  1755. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/line_program.rs +0 -0
  1756. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/mod.rs +0 -0
  1757. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/range_info_builder.rs +0 -0
  1758. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/refs.rs +0 -0
  1759. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/simulate.rs +0 -0
  1760. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/synthetic.rs +0 -0
  1761. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/unit.rs +0 -0
  1762. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/utils.rs +0 -0
  1763. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/write_debuginfo.rs +0 -0
  1764. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug.rs +0 -0
  1765. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc/disabled.rs +0 -0
  1766. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc/enabled/drc.rs +0 -0
  1767. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc/enabled/null.rs +0 -0
  1768. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc/enabled.rs +0 -0
  1769. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc.rs +0 -0
  1770. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/stack_switching/control_effect.rs +0 -0
  1771. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/stack_switching/fatpointer.rs +0 -0
  1772. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/stack_switching/mod.rs +0 -0
  1773. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/isa_builder.rs +0 -0
  1774. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/obj.rs +0 -0
  1775. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/code_translator.rs +0 -0
  1776. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/environ/mod.rs +0 -0
  1777. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/environ/spec.rs +0 -0
  1778. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/func_translator.rs +0 -0
  1779. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/heap.rs +0 -0
  1780. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/mod.rs +0 -0
  1781. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/stack.rs +0 -0
  1782. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/table.rs +0 -0
  1783. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/translation_utils.rs +0 -0
  1784. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/LICENSE +0 -0
  1785. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/miri.rs +0 -0
  1786. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/nostd.rs +0 -0
  1787. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/unix.rs +0 -0
  1788. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/windows.c +0 -0
  1789. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/windows.rs +0 -0
  1790. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/Cargo.toml.orig +0 -0
  1791. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/README.md +0 -0
  1792. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/build.rs +0 -0
  1793. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/gdbjit.c +0 -0
  1794. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/src/gdb_jit_int.rs +0 -0
  1795. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/src/lib.rs +0 -0
  1796. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/src/perf_jitdump.rs +0 -0
  1797. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/Cargo.toml.orig +0 -0
  1798. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/src/lib.rs +0 -0
  1799. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/src/libc.rs +0 -0
  1800. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/src/miri.rs +0 -0
  1801. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/src/win.rs +0 -0
  1802. /data/ext/cargo-vendor/{wasmtime-internal-math-37.0.2 → wasmtime-internal-math-38.0.4}/Cargo.toml.orig +0 -0
  1803. /data/ext/cargo-vendor/{wasmtime-internal-math-37.0.2 → wasmtime-internal-math-38.0.4}/src/lib.rs +0 -0
  1804. /data/ext/cargo-vendor/{wasmtime-internal-slab-37.0.2 → wasmtime-internal-slab-38.0.4}/Cargo.toml.orig +0 -0
  1805. /data/ext/cargo-vendor/{wasmtime-internal-slab-37.0.2 → wasmtime-internal-slab-38.0.4}/src/lib.rs +0 -0
  1806. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/Cargo.toml.orig +0 -0
  1807. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/LICENSE +0 -0
  1808. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/README.md +0 -0
  1809. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/build.rs +0 -0
  1810. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/aarch64.rs +0 -0
  1811. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/mod.rs +0 -0
  1812. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/riscv64.rs +0 -0
  1813. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/s390x.rs +0 -0
  1814. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/x86.rs +0 -0
  1815. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/exception_table.rs +0 -0
  1816. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/lib.rs +0 -0
  1817. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/throw.rs +0 -0
  1818. /data/ext/cargo-vendor/{wasmtime-internal-versioned-export-macros-37.0.2 → wasmtime-internal-versioned-export-macros-38.0.4}/Cargo.toml.orig +0 -0
  1819. /data/ext/cargo-vendor/{wasmtime-internal-versioned-export-macros-37.0.2 → wasmtime-internal-versioned-export-macros-38.0.4}/src/lib.rs +0 -0
  1820. /data/ext/cargo-vendor/{wasmtime-internal-winch-37.0.2 → wasmtime-internal-winch-38.0.4}/Cargo.toml.orig +0 -0
  1821. /data/ext/cargo-vendor/{wasmtime-internal-winch-37.0.2 → wasmtime-internal-winch-38.0.4}/LICENSE +0 -0
  1822. /data/ext/cargo-vendor/{wasmtime-internal-winch-37.0.2 → wasmtime-internal-winch-38.0.4}/src/builder.rs +0 -0
  1823. /data/ext/cargo-vendor/{wasmtime-internal-winch-37.0.2 → wasmtime-internal-winch-38.0.4}/src/lib.rs +0 -0
  1824. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-37.0.2 → wasmtime-internal-wit-bindgen-38.0.4}/Cargo.toml.orig +0 -0
  1825. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-37.0.2 → wasmtime-internal-wit-bindgen-38.0.4}/src/rust.rs +0 -0
  1826. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-37.0.2 → wasmtime-internal-wit-bindgen-38.0.4}/src/source.rs +0 -0
  1827. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-37.0.2 → wasmtime-internal-wit-bindgen-38.0.4}/src/types.rs +0 -0
  1828. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/Cargo.toml.orig +0 -0
  1829. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/LICENSE +0 -0
  1830. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/README.md +0 -0
  1831. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/empty.rs +0 -0
  1832. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/file.rs +0 -0
  1833. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/locked_async.rs +0 -0
  1834. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/mem.rs +0 -0
  1835. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/stdout.rs +0 -0
  1836. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/worker_thread_stdin.rs +0 -0
  1837. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli.rs +0 -0
  1838. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/clocks.rs +0 -0
  1839. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/ctx.rs +0 -0
  1840. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/error.rs +0 -0
  1841. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/filesystem.rs +0 -0
  1842. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p0.rs +0 -0
  1843. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p1.rs +0 -0
  1844. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/bindings.rs +0 -0
  1845. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/filesystem.rs +0 -0
  1846. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/clocks.rs +0 -0
  1847. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/env.rs +0 -0
  1848. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/exit.rs +0 -0
  1849. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/filesystem/sync.rs +0 -0
  1850. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/filesystem.rs +0 -0
  1851. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/instance_network.rs +0 -0
  1852. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/io.rs +0 -0
  1853. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/mod.rs +0 -0
  1854. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/network.rs +0 -0
  1855. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/random.rs +0 -0
  1856. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/tcp.rs +0 -0
  1857. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/tcp_create_socket.rs +0 -0
  1858. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/udp.rs +0 -0
  1859. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/udp_create_socket.rs +0 -0
  1860. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/ip_name_lookup.rs +0 -0
  1861. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/mod.rs +0 -0
  1862. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/network.rs +0 -0
  1863. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/pipe.rs +0 -0
  1864. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/poll.rs +0 -0
  1865. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/stdio.rs +0 -0
  1866. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/tcp.rs +0 -0
  1867. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/udp.rs +0 -0
  1868. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/command.wit +0 -0
  1869. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/environment.wit +0 -0
  1870. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/exit.wit +0 -0
  1871. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/imports.wit +0 -0
  1872. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/run.wit +0 -0
  1873. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/stdio.wit +0 -0
  1874. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/terminal.wit +0 -0
  1875. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/clocks/monotonic-clock.wit +0 -0
  1876. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/clocks/timezone.wit +0 -0
  1877. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/clocks/wall-clock.wit +0 -0
  1878. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/clocks/world.wit +0 -0
  1879. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/filesystem/preopens.wit +0 -0
  1880. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/filesystem/types.wit +0 -0
  1881. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/filesystem/world.wit +0 -0
  1882. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/io/error.wit +0 -0
  1883. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/io/poll.wit +0 -0
  1884. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/io/streams.wit +0 -0
  1885. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/io/world.wit +0 -0
  1886. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/random/insecure-seed.wit +0 -0
  1887. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/random/insecure.wit +0 -0
  1888. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/random/random.wit +0 -0
  1889. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/random/world.wit +0 -0
  1890. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/instance-network.wit +0 -0
  1891. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1892. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/network.wit +0 -0
  1893. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1894. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/tcp.wit +0 -0
  1895. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/udp-create-socket.wit +0 -0
  1896. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/udp.wit +0 -0
  1897. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/world.wit +0 -0
  1898. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/test.wit +0 -0
  1899. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/world.wit +0 -0
  1900. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/write_stream.rs +0 -0
  1901. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/bindings.rs +0 -0
  1902. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/cli/host.rs +0 -0
  1903. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/cli/mod.rs +0 -0
  1904. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/clocks/host.rs +0 -0
  1905. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/clocks/mod.rs +0 -0
  1906. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/filesystem/host.rs +0 -0
  1907. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/filesystem/mod.rs +0 -0
  1908. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/mod.rs +0 -0
  1909. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/random/host.rs +0 -0
  1910. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/random/mod.rs +0 -0
  1911. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/conv.rs +0 -0
  1912. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/ip_name_lookup.rs +0 -0
  1913. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/mod.rs +0 -0
  1914. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/types/mod.rs +0 -0
  1915. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/types/tcp.rs +0 -0
  1916. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/types/udp.rs +0 -0
  1917. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/mod.rs +0 -0
  1918. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/command.wit +0 -0
  1919. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/environment.wit +0 -0
  1920. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/exit.wit +0 -0
  1921. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/imports.wit +0 -0
  1922. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/run.wit +0 -0
  1923. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/stdio.wit +0 -0
  1924. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/terminal.wit +0 -0
  1925. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/monotonic-clock.wit +0 -0
  1926. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/timezone.wit +0 -0
  1927. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/types.wit +0 -0
  1928. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/wall-clock.wit +0 -0
  1929. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/world.wit +0 -0
  1930. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/filesystem/preopens.wit +0 -0
  1931. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/filesystem/types.wit +0 -0
  1932. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/filesystem/world.wit +0 -0
  1933. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/random/insecure-seed.wit +0 -0
  1934. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/random/insecure.wit +0 -0
  1935. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/random/random.wit +0 -0
  1936. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/random/world.wit +0 -0
  1937. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1938. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/sockets/types.wit +0 -0
  1939. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/sockets/world.wit +0 -0
  1940. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/package.wit +0 -0
  1941. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/random.rs +0 -0
  1942. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/runtime.rs +0 -0
  1943. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/sockets/mod.rs +0 -0
  1944. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/sockets/udp.rs +0 -0
  1945. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/sockets/util.rs +0 -0
  1946. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/main.rs +0 -0
  1947. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p1.rs +0 -0
  1948. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p2/api.rs +0 -0
  1949. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p2/async_.rs +0 -0
  1950. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p2/mod.rs +0 -0
  1951. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p2/sync.rs +0 -0
  1952. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/process_stdin.rs +0 -0
  1953. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/witx/p0/typenames.witx +0 -0
  1954. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/witx/p0/wasi_unstable.witx +0 -0
  1955. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/witx/p1/typenames.witx +0 -0
  1956. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/witx/p1/wasi_snapshot_preview1.witx +0 -0
  1957. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/Cargo.toml.orig +0 -0
  1958. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/bindings.rs +0 -0
  1959. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/impls.rs +0 -0
  1960. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/lib.rs +0 -0
  1961. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/poll.rs +0 -0
  1962. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/streams.rs +0 -0
  1963. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/deps/io/error.wit +0 -0
  1964. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/deps/io/poll.wit +0 -0
  1965. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/deps/io/streams.wit +0 -0
  1966. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/deps/io/world.wit +0 -0
  1967. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/world.wit +0 -0
  1968. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/Cargo.toml.orig +0 -0
  1969. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/LICENSE +0 -0
  1970. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/README.md +0 -0
  1971. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/src/error.rs +0 -0
  1972. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/src/guest_type.rs +0 -0
  1973. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/src/lib.rs +0 -0
  1974. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/src/region.rs +0 -0
  1975. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/Cargo.toml.orig +0 -0
  1976. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/LICENSE +0 -0
  1977. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/README.md +0 -0
  1978. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/codegen_settings.rs +0 -0
  1979. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/config.rs +0 -0
  1980. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/funcs.rs +0 -0
  1981. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/lib.rs +0 -0
  1982. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/lifetimes.rs +0 -0
  1983. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/module_trait.rs +0 -0
  1984. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/names.rs +0 -0
  1985. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/error.rs +0 -0
  1986. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/flags.rs +0 -0
  1987. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/handle.rs +0 -0
  1988. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/mod.rs +0 -0
  1989. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/record.rs +0 -0
  1990. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/variant.rs +0 -0
  1991. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/wasmtime.rs +0 -0
  1992. /data/ext/cargo-vendor/{wiggle-macro-37.0.2 → wiggle-macro-38.0.4}/Cargo.toml.orig +0 -0
  1993. /data/ext/cargo-vendor/{wiggle-macro-37.0.2 → wiggle-macro-38.0.4}/LICENSE +0 -0
  1994. /data/ext/cargo-vendor/{wiggle-macro-37.0.2 → wiggle-macro-38.0.4}/build.rs +0 -0
  1995. /data/ext/cargo-vendor/{wiggle-macro-37.0.2 → wiggle-macro-38.0.4}/src/lib.rs +0 -0
  1996. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/Cargo.toml.orig +0 -0
  1997. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/LICENSE +0 -0
  1998. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/build.rs +0 -0
  1999. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/abi/local.rs +0 -0
  2000. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/abi/mod.rs +0 -0
  2001. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/bounds.rs +0 -0
  2002. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/builtin.rs +0 -0
  2003. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/call.rs +0 -0
  2004. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/context.rs +0 -0
  2005. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/control.rs +0 -0
  2006. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/error.rs +0 -0
  2007. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/mod.rs +0 -0
  2008. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/phase.rs +0 -0
  2009. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/constant_pool.rs +0 -0
  2010. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/frame/mod.rs +0 -0
  2011. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/abi.rs +0 -0
  2012. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/address.rs +0 -0
  2013. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/asm.rs +0 -0
  2014. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/masm.rs +0 -0
  2015. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/mod.rs +0 -0
  2016. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/regs.rs +0 -0
  2017. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/mod.rs +0 -0
  2018. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/reg.rs +0 -0
  2019. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/abi.rs +0 -0
  2020. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/address.rs +0 -0
  2021. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/asm.rs +0 -0
  2022. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/masm.rs +0 -0
  2023. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/mod.rs +0 -0
  2024. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/regs.rs +0 -0
  2025. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/lib.rs +0 -0
  2026. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/masm.rs +0 -0
  2027. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/regalloc.rs +0 -0
  2028. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/regset.rs +0 -0
  2029. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/stack.rs +0 -0
  2030. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/visitor.rs +0 -0
@@ -0,0 +1,4326 @@
1
+ use super::table::{TableDebug, TableId};
2
+ use super::{Event, GlobalErrorContextRefCount, Waitable, WaitableCommon};
3
+ use crate::component::concurrent::{ConcurrentState, WorkItem, tls};
4
+ use crate::component::func::{self, LiftContext, LowerContext, Options};
5
+ use crate::component::matching::InstanceType;
6
+ use crate::component::values::{ErrorContextAny, FutureAny, StreamAny};
7
+ use crate::component::{AsAccessor, Instance, Lower, Val, WasmList, WasmStr};
8
+ use crate::store::{StoreOpaque, StoreToken};
9
+ use crate::vm::component::{ComponentInstance, HandleTable, TransmitLocalState};
10
+ use crate::vm::{AlwaysMut, VMStore};
11
+ use crate::{AsContextMut, StoreContextMut, ValRaw};
12
+ use anyhow::{Context as _, Error, Result, anyhow, bail};
13
+ use buffers::{Extender, SliceBuffer, UntypedWriteBuffer};
14
+ use core::fmt;
15
+ use core::future;
16
+ use core::iter;
17
+ use core::marker::PhantomData;
18
+ use core::mem::{self, MaybeUninit};
19
+ use core::pin::Pin;
20
+ use core::task::{Context, Poll, Waker, ready};
21
+ use futures::channel::oneshot;
22
+ use futures::{FutureExt as _, stream};
23
+ use std::any::{Any, TypeId};
24
+ use std::boxed::Box;
25
+ use std::io::Cursor;
26
+ use std::string::{String, ToString};
27
+ use std::sync::{Arc, Mutex};
28
+ use std::vec::Vec;
29
+ use wasmtime_environ::component::{
30
+ CanonicalAbiInfo, ComponentTypes, InterfaceType, OptionsIndex, RuntimeComponentInstanceIndex,
31
+ TypeComponentGlobalErrorContextTableIndex, TypeComponentLocalErrorContextTableIndex,
32
+ TypeFutureTableIndex, TypeStreamTableIndex,
33
+ };
34
+
35
+ pub use buffers::{ReadBuffer, VecBuffer, WriteBuffer};
36
+
37
+ mod buffers;
38
+
39
+ /// Enum for distinguishing between a stream or future in functions that handle
40
+ /// both.
41
+ #[derive(Copy, Clone, Debug)]
42
+ pub enum TransmitKind {
43
+ Stream,
44
+ Future,
45
+ }
46
+
47
+ /// Represents `{stream,future}.{read,write}` results.
48
+ #[derive(Copy, Clone, Debug, PartialEq)]
49
+ pub enum ReturnCode {
50
+ Blocked,
51
+ Completed(u32),
52
+ Dropped(u32),
53
+ Cancelled(u32),
54
+ }
55
+
56
+ impl ReturnCode {
57
+ /// Pack `self` into a single 32-bit integer that may be returned to the
58
+ /// guest.
59
+ ///
60
+ /// This corresponds to `pack_copy_result` in the Component Model spec.
61
+ pub fn encode(&self) -> u32 {
62
+ const BLOCKED: u32 = 0xffff_ffff;
63
+ const COMPLETED: u32 = 0x0;
64
+ const DROPPED: u32 = 0x1;
65
+ const CANCELLED: u32 = 0x2;
66
+ match self {
67
+ ReturnCode::Blocked => BLOCKED,
68
+ ReturnCode::Completed(n) => {
69
+ debug_assert!(*n < (1 << 28));
70
+ (n << 4) | COMPLETED
71
+ }
72
+ ReturnCode::Dropped(n) => {
73
+ debug_assert!(*n < (1 << 28));
74
+ (n << 4) | DROPPED
75
+ }
76
+ ReturnCode::Cancelled(n) => {
77
+ debug_assert!(*n < (1 << 28));
78
+ (n << 4) | CANCELLED
79
+ }
80
+ }
81
+ }
82
+
83
+ /// Returns `Self::Completed` with the specified count (or zero if
84
+ /// `matches!(kind, TransmitKind::Future)`)
85
+ fn completed(kind: TransmitKind, count: u32) -> Self {
86
+ Self::Completed(if let TransmitKind::Future = kind {
87
+ 0
88
+ } else {
89
+ count
90
+ })
91
+ }
92
+ }
93
+
94
+ /// Represents a stream or future type index.
95
+ ///
96
+ /// This is useful as a parameter type for functions which operate on either a
97
+ /// future or a stream.
98
+ #[derive(Copy, Clone, Debug)]
99
+ pub enum TransmitIndex {
100
+ Stream(TypeStreamTableIndex),
101
+ Future(TypeFutureTableIndex),
102
+ }
103
+
104
+ impl TransmitIndex {
105
+ pub fn kind(&self) -> TransmitKind {
106
+ match self {
107
+ TransmitIndex::Stream(_) => TransmitKind::Stream,
108
+ TransmitIndex::Future(_) => TransmitKind::Future,
109
+ }
110
+ }
111
+ }
112
+
113
+ /// Retrieve the payload type of the specified stream or future, or `None` if it
114
+ /// has no payload type.
115
+ fn payload(ty: TransmitIndex, types: &Arc<ComponentTypes>) -> Option<InterfaceType> {
116
+ match ty {
117
+ TransmitIndex::Future(ty) => types[types[ty].ty].payload,
118
+ TransmitIndex::Stream(ty) => types[types[ty].ty].payload,
119
+ }
120
+ }
121
+
122
+ /// Retrieve the host rep and state for the specified guest-visible waitable
123
+ /// handle.
124
+ fn get_mut_by_index_from(
125
+ handle_table: &mut HandleTable,
126
+ ty: TransmitIndex,
127
+ index: u32,
128
+ ) -> Result<(u32, &mut TransmitLocalState)> {
129
+ match ty {
130
+ TransmitIndex::Stream(ty) => handle_table.stream_rep(ty, index),
131
+ TransmitIndex::Future(ty) => handle_table.future_rep(ty, index),
132
+ }
133
+ }
134
+
135
+ fn lower<T: func::Lower + Send + 'static, B: WriteBuffer<T>, U: 'static>(
136
+ mut store: StoreContextMut<U>,
137
+ instance: Instance,
138
+ options: &Options,
139
+ ty: TransmitIndex,
140
+ address: usize,
141
+ count: usize,
142
+ buffer: &mut B,
143
+ ) -> Result<()> {
144
+ let types = instance.id().get(store.0).component().types().clone();
145
+ let count = buffer.remaining().len().min(count);
146
+
147
+ let lower = &mut if T::MAY_REQUIRE_REALLOC {
148
+ LowerContext::new
149
+ } else {
150
+ LowerContext::new_without_realloc
151
+ }(store.as_context_mut(), options, &types, instance);
152
+
153
+ if address % usize::try_from(T::ALIGN32)? != 0 {
154
+ bail!("read pointer not aligned");
155
+ }
156
+ lower
157
+ .as_slice_mut()
158
+ .get_mut(address..)
159
+ .and_then(|b| b.get_mut(..T::SIZE32 * count))
160
+ .ok_or_else(|| anyhow::anyhow!("read pointer out of bounds of memory"))?;
161
+
162
+ if let Some(ty) = payload(ty, &types) {
163
+ T::linear_store_list_to_memory(lower, ty, address, &buffer.remaining()[..count])?;
164
+ }
165
+
166
+ buffer.skip(count);
167
+
168
+ Ok(())
169
+ }
170
+
171
+ fn lift<T: func::Lift + Send + 'static, B: ReadBuffer<T>, U>(
172
+ lift: &mut LiftContext<'_>,
173
+ ty: Option<InterfaceType>,
174
+ buffer: &mut B,
175
+ address: usize,
176
+ count: usize,
177
+ ) -> Result<()> {
178
+ let count = count.min(buffer.remaining_capacity());
179
+ if T::IS_RUST_UNIT_TYPE {
180
+ // SAFETY: `T::IS_RUST_UNIT_TYPE` is only true for `()`, a
181
+ // zero-sized type, so `MaybeUninit::uninit().assume_init()`
182
+ // is a valid way to populate the zero-sized buffer.
183
+ buffer.extend(
184
+ iter::repeat_with(|| unsafe { MaybeUninit::uninit().assume_init() }).take(count),
185
+ )
186
+ } else {
187
+ let ty = ty.unwrap();
188
+ if address % usize::try_from(T::ALIGN32)? != 0 {
189
+ bail!("write pointer not aligned");
190
+ }
191
+ lift.memory()
192
+ .get(address..)
193
+ .and_then(|b| b.get(..T::SIZE32 * count))
194
+ .ok_or_else(|| anyhow::anyhow!("write pointer out of bounds of memory"))?;
195
+
196
+ let list = &WasmList::new(address, count, lift, ty)?;
197
+ T::linear_lift_into_from_memory(lift, list, &mut Extender(buffer))?
198
+ }
199
+ Ok(())
200
+ }
201
+
202
+ /// Represents the state associated with an error context
203
+ #[derive(Debug, PartialEq, Eq, PartialOrd)]
204
+ pub(super) struct ErrorContextState {
205
+ /// Debug message associated with the error context
206
+ pub(crate) debug_msg: String,
207
+ }
208
+
209
+ /// Represents the size and alignment for a "flat" Component Model type,
210
+ /// i.e. one containing no pointers or handles.
211
+ #[derive(Debug, Clone, Copy, PartialEq, Eq)]
212
+ pub(super) struct FlatAbi {
213
+ pub(super) size: u32,
214
+ pub(super) align: u32,
215
+ }
216
+
217
+ /// Represents the buffer for a host- or guest-initiated stream read.
218
+ pub struct Destination<'a, T, B> {
219
+ instance: Instance,
220
+ id: TableId<TransmitState>,
221
+ buffer: &'a mut B,
222
+ host_buffer: Option<&'a mut Cursor<Vec<u8>>>,
223
+ _phantom: PhantomData<fn() -> T>,
224
+ }
225
+
226
+ impl<'a, T, B> Destination<'a, T, B> {
227
+ /// Reborrow `self` so it can be used again later.
228
+ pub fn reborrow(&mut self) -> Destination<'_, T, B> {
229
+ Destination {
230
+ instance: self.instance,
231
+ id: self.id,
232
+ buffer: &mut *self.buffer,
233
+ host_buffer: self.host_buffer.as_deref_mut(),
234
+ _phantom: PhantomData,
235
+ }
236
+ }
237
+
238
+ /// Take the buffer out of `self`, leaving a default-initialized one in its
239
+ /// place.
240
+ ///
241
+ /// This can be useful for reusing the previously-stored buffer's capacity
242
+ /// instead of allocating a fresh one.
243
+ pub fn take_buffer(&mut self) -> B
244
+ where
245
+ B: Default,
246
+ {
247
+ mem::take(self.buffer)
248
+ }
249
+
250
+ /// Store the specified buffer in `self`.
251
+ ///
252
+ /// Any items contained in the buffer will be delivered to the reader after
253
+ /// the `StreamProducer::poll_produce` call to which this `Destination` was
254
+ /// passed returns (unless overwritten by another call to `set_buffer`).
255
+ ///
256
+ /// If items are stored via this buffer _and_ written via a
257
+ /// `DirectDestination` view of `self`, then the items in the buffer will be
258
+ /// delivered after the ones written using `DirectDestination`.
259
+ pub fn set_buffer(&mut self, buffer: B) {
260
+ *self.buffer = buffer;
261
+ }
262
+
263
+ /// Return the remaining number of items the current read has capacity to
264
+ /// accept, if known.
265
+ ///
266
+ /// This will return `Some(_)` if the reader is a guest; it will return
267
+ /// `None` if the reader is the host.
268
+ ///
269
+ /// Note that, if this returns `None(0)`, the producer must still attempt to
270
+ /// produce at least one item if the value of `finish` passed to
271
+ /// `StreamProducer::poll_produce` is false. In that case, the reader is
272
+ /// effectively asking when the producer will be able to produce items
273
+ /// without blocking (or reach a terminal state such as end-of-stream),
274
+ /// meaning the next non-zero read must complete without blocking.
275
+ pub fn remaining(&self, mut store: impl AsContextMut) -> Option<usize> {
276
+ let transmit = self
277
+ .instance
278
+ .concurrent_state_mut(store.as_context_mut().0)
279
+ .get_mut(self.id)
280
+ .unwrap();
281
+
282
+ if let &ReadState::GuestReady { count, .. } = &transmit.read {
283
+ let &WriteState::HostReady { guest_offset, .. } = &transmit.write else {
284
+ unreachable!()
285
+ };
286
+
287
+ Some(count - guest_offset)
288
+ } else {
289
+ None
290
+ }
291
+ }
292
+ }
293
+
294
+ impl<'a, B> Destination<'a, u8, B> {
295
+ /// Return a `DirectDestination` view of `self`.
296
+ ///
297
+ /// If the reader is a guest, this will provide direct access to the guest's
298
+ /// read buffer. If the reader is a host, this will provide access to a
299
+ /// buffer which will be delivered to the host before any items stored using
300
+ /// `Destination::set_buffer`.
301
+ ///
302
+ /// `capacity` will only be used if the reader is a host, in which case it
303
+ /// will update the length of the buffer, possibly zero-initializing the new
304
+ /// elements if the new length is larger than the old length.
305
+ pub fn as_direct<D>(
306
+ mut self,
307
+ store: StoreContextMut<'a, D>,
308
+ capacity: usize,
309
+ ) -> DirectDestination<'a, D> {
310
+ if let Some(buffer) = self.host_buffer.as_deref_mut() {
311
+ buffer.set_position(0);
312
+ if buffer.get_mut().is_empty() {
313
+ buffer.get_mut().resize(capacity, 0);
314
+ }
315
+ }
316
+
317
+ DirectDestination {
318
+ instance: self.instance,
319
+ id: self.id,
320
+ host_buffer: self.host_buffer,
321
+ store,
322
+ }
323
+ }
324
+ }
325
+
326
+ /// Represents a read from a `stream<u8>`, providing direct access to the
327
+ /// writer's buffer.
328
+ pub struct DirectDestination<'a, D: 'static> {
329
+ instance: Instance,
330
+ id: TableId<TransmitState>,
331
+ host_buffer: Option<&'a mut Cursor<Vec<u8>>>,
332
+ store: StoreContextMut<'a, D>,
333
+ }
334
+
335
+ impl<D: 'static> DirectDestination<'_, D> {
336
+ /// Provide direct access to the writer's buffer.
337
+ pub fn remaining(&mut self) -> &mut [u8] {
338
+ if let Some(buffer) = self.host_buffer.as_deref_mut() {
339
+ buffer.get_mut()
340
+ } else {
341
+ let transmit = self
342
+ .instance
343
+ .concurrent_state_mut(self.store.as_context_mut().0)
344
+ .get_mut(self.id)
345
+ .unwrap();
346
+
347
+ let &ReadState::GuestReady {
348
+ address,
349
+ count,
350
+ options,
351
+ ..
352
+ } = &transmit.read
353
+ else {
354
+ unreachable!();
355
+ };
356
+
357
+ let &WriteState::HostReady { guest_offset, .. } = &transmit.write else {
358
+ unreachable!()
359
+ };
360
+
361
+ options
362
+ .memory_mut(self.store.0)
363
+ .get_mut((address + guest_offset)..)
364
+ .and_then(|b| b.get_mut(..(count - guest_offset)))
365
+ .unwrap()
366
+ }
367
+ }
368
+
369
+ /// Mark the specified number of bytes as written to the writer's buffer.
370
+ ///
371
+ /// This will panic if the count is larger than the size of the
372
+ /// buffer returned by `Self::remaining`.
373
+ pub fn mark_written(&mut self, count: usize) {
374
+ if let Some(buffer) = self.host_buffer.as_deref_mut() {
375
+ buffer.set_position(
376
+ buffer
377
+ .position()
378
+ .checked_add(u64::try_from(count).unwrap())
379
+ .unwrap(),
380
+ );
381
+ } else {
382
+ let transmit = self
383
+ .instance
384
+ .concurrent_state_mut(self.store.as_context_mut().0)
385
+ .get_mut(self.id)
386
+ .unwrap();
387
+
388
+ let ReadState::GuestReady {
389
+ count: read_count, ..
390
+ } = &transmit.read
391
+ else {
392
+ unreachable!();
393
+ };
394
+
395
+ let WriteState::HostReady { guest_offset, .. } = &mut transmit.write else {
396
+ unreachable!()
397
+ };
398
+
399
+ if *guest_offset + count > *read_count {
400
+ panic!(
401
+ "write count ({count}) must be less than or equal to read count ({read_count})"
402
+ )
403
+ } else {
404
+ *guest_offset += count;
405
+ }
406
+ }
407
+ }
408
+ }
409
+
410
+ /// Represents the state of a `Stream{Producer,Consumer}`.
411
+ #[derive(Copy, Clone, Debug)]
412
+ pub enum StreamResult {
413
+ /// The operation completed normally, and the producer or consumer may be
414
+ /// able to produce or consume more items, respectively.
415
+ Completed,
416
+ /// The operation was interrupted (i.e. it wrapped up early after receiving
417
+ /// a `finish` parameter value of true in a call to `poll_produce` or
418
+ /// `poll_consume`), and the producer or consumer may be able to produce or
419
+ /// consume more items, respectively.
420
+ Cancelled,
421
+ /// The operation completed normally, but the producer or consumer will
422
+ /// _not_ able to produce or consume more items, respectively.
423
+ Dropped,
424
+ }
425
+
426
+ /// Represents the host-owned write end of a stream.
427
+ pub trait StreamProducer<D>: Send + 'static {
428
+ /// The payload type of this stream.
429
+ type Item;
430
+
431
+ /// The `WriteBuffer` type to use when delivering items.
432
+ type Buffer: WriteBuffer<Self::Item> + Default;
433
+
434
+ /// Handle a host- or guest-initiated read by delivering zero or more items
435
+ /// to the specified destination.
436
+ ///
437
+ /// This will be called whenever the reader starts a read.
438
+ ///
439
+ /// If the implementation is able to produce one or more items immediately,
440
+ /// it should write them to `destination` and return either
441
+ /// `Poll::Ready(Ok(StreamResult::Completed))` if it expects to produce more
442
+ /// items, or `Poll::Ready(Ok(StreamResult::Dropped))` if it cannot produce
443
+ /// any more items.
444
+ ///
445
+ /// If the implementation is unable to produce any items immediately, but
446
+ /// expects to do so later, and `finish` is _false_, it should store the
447
+ /// waker from `cx` for later and return `Poll::Pending` without writing
448
+ /// anything to `destination`. Later, it should alert the waker when either
449
+ /// the items arrive, the stream has ended, or an error occurs.
450
+ ///
451
+ /// If the implementation is unable to produce any items immediately, but
452
+ /// expects to do so later, and `finish` is _true_, it should, if possible,
453
+ /// return `Poll::Ready(Ok(StreamResult::Cancelled))` immediately without
454
+ /// writing anything to `destination`. However, that might not be possible
455
+ /// if an earlier call to `poll_produce` kicked off an asynchronous
456
+ /// operation which needs to be completed (and possibly interrupted)
457
+ /// gracefully, in which case the implementation may return `Poll::Pending`
458
+ /// and later alert the waker as described above. In other words, when
459
+ /// `finish` is true, the implementation should prioritize returning a
460
+ /// result to the reader (even if no items can be produced) rather than wait
461
+ /// indefinitely for at least one item to arrive.
462
+ ///
463
+ /// In all of the above cases, the implementation may alternatively choose
464
+ /// to return `Err(_)` to indicate an unrecoverable error. This will cause
465
+ /// the guest (if any) to trap and render the component instance (if any)
466
+ /// unusable. The implementation should report errors that _are_
467
+ /// recoverable by other means (e.g. by writing to a `future`) and return
468
+ /// `Poll::Ready(Ok(StreamResult::Dropped))`.
469
+ ///
470
+ /// Note that the implementation should never return `Poll::Pending` after
471
+ /// writing one or more items to `destination`; if it does, the caller will
472
+ /// trap as if `Err(_)` was returned. Conversely, it should only return
473
+ /// `Poll::Ready(Ok(StreamResult::Cancelled))` without writing any items to
474
+ /// `destination` if called with `finish` set to true. If it does so when
475
+ /// `finish` is false, the caller will trap. Additionally, it should only
476
+ /// return `Poll::Ready(Ok(StreamResult::Completed))` after writing at least
477
+ /// one item to `destination` if it has capacity to accept that item;
478
+ /// otherwise, the caller will trap.
479
+ ///
480
+ /// If more items are written to `destination` than the reader has immediate
481
+ /// capacity to accept, they will be retained in memory by the caller and
482
+ /// used to satisfy future reads, in which case `poll_produce` will only be
483
+ /// called again once all those items have been delivered.
484
+ ///
485
+ /// If this function is called with zero capacity
486
+ /// (i.e. `Destination::remaining` returns `Some(0)`), the implementation
487
+ /// should either:
488
+ ///
489
+ /// - Return `Poll::Ready(Ok(StreamResult::Completed))` without writing
490
+ /// anything if it expects to be able to produce items immediately
491
+ /// (i.e. without first returning `Poll::Pending`) the next time
492
+ /// `poll_produce` is called with non-zero capacity _or_ if that cannot be
493
+ /// reliably determined.
494
+ ///
495
+ /// - Return `Poll::Pending` if the next call to `poll_produce` with
496
+ /// non-zero capacity is likely to also return `Poll::Pending`.
497
+ ///
498
+ /// - Return `Poll::Ready(Ok(StreamResult::Completed))` after calling
499
+ /// `Destination::set_buffer` with one more more items. Note, however, that
500
+ /// this creates the hazard that the items will never be received by the
501
+ /// guest if it decides not to do another non-zero-length read before
502
+ /// closing the stream. Moreover, if `Self::Item` is e.g. a `Resource<_>`,
503
+ /// they may end up leaking in that scenario.
504
+ fn poll_produce<'a>(
505
+ self: Pin<&mut Self>,
506
+ cx: &mut Context<'_>,
507
+ store: StoreContextMut<'a, D>,
508
+ destination: Destination<'a, Self::Item, Self::Buffer>,
509
+ finish: bool,
510
+ ) -> Poll<Result<StreamResult>>;
511
+
512
+ /// Attempt to convert the specified object into a `Box<dyn Any>` which may
513
+ /// be downcast to the specified type.
514
+ ///
515
+ /// The implementation must ensure that, if it returns `Ok(_)`, a downcast
516
+ /// to the specified type is guaranteed to succeed.
517
+ fn try_into(me: Pin<Box<Self>>, _ty: TypeId) -> Result<Box<dyn Any>, Pin<Box<Self>>> {
518
+ Err(me)
519
+ }
520
+ }
521
+
522
+ impl<T, D> StreamProducer<D> for iter::Empty<T>
523
+ where
524
+ T: Send + Sync + 'static,
525
+ {
526
+ type Item = T;
527
+ type Buffer = Option<Self::Item>;
528
+
529
+ fn poll_produce<'a>(
530
+ self: Pin<&mut Self>,
531
+ _: &mut Context<'_>,
532
+ _: StoreContextMut<'a, D>,
533
+ _: Destination<'a, Self::Item, Self::Buffer>,
534
+ _: bool,
535
+ ) -> Poll<Result<StreamResult>> {
536
+ Poll::Ready(Ok(StreamResult::Dropped))
537
+ }
538
+ }
539
+
540
+ impl<T, D> StreamProducer<D> for stream::Empty<T>
541
+ where
542
+ T: Send + Sync + 'static,
543
+ {
544
+ type Item = T;
545
+ type Buffer = Option<Self::Item>;
546
+
547
+ fn poll_produce<'a>(
548
+ self: Pin<&mut Self>,
549
+ _: &mut Context<'_>,
550
+ _: StoreContextMut<'a, D>,
551
+ _: Destination<'a, Self::Item, Self::Buffer>,
552
+ _: bool,
553
+ ) -> Poll<Result<StreamResult>> {
554
+ Poll::Ready(Ok(StreamResult::Dropped))
555
+ }
556
+ }
557
+
558
+ impl<T, D> StreamProducer<D> for Vec<T>
559
+ where
560
+ T: Unpin + Send + Sync + 'static,
561
+ {
562
+ type Item = T;
563
+ type Buffer = VecBuffer<T>;
564
+
565
+ fn poll_produce<'a>(
566
+ self: Pin<&mut Self>,
567
+ _: &mut Context<'_>,
568
+ _: StoreContextMut<'a, D>,
569
+ mut dst: Destination<'a, Self::Item, Self::Buffer>,
570
+ _: bool,
571
+ ) -> Poll<Result<StreamResult>> {
572
+ dst.set_buffer(mem::take(self.get_mut()).into());
573
+ Poll::Ready(Ok(StreamResult::Dropped))
574
+ }
575
+ }
576
+
577
+ impl<T, D> StreamProducer<D> for Box<[T]>
578
+ where
579
+ T: Unpin + Send + Sync + 'static,
580
+ {
581
+ type Item = T;
582
+ type Buffer = VecBuffer<T>;
583
+
584
+ fn poll_produce<'a>(
585
+ self: Pin<&mut Self>,
586
+ _: &mut Context<'_>,
587
+ _: StoreContextMut<'a, D>,
588
+ mut dst: Destination<'a, Self::Item, Self::Buffer>,
589
+ _: bool,
590
+ ) -> Poll<Result<StreamResult>> {
591
+ dst.set_buffer(mem::take(self.get_mut()).into_vec().into());
592
+ Poll::Ready(Ok(StreamResult::Dropped))
593
+ }
594
+ }
595
+
596
+ #[cfg(feature = "component-model-async-bytes")]
597
+ impl<D> StreamProducer<D> for bytes::Bytes {
598
+ type Item = u8;
599
+ type Buffer = Cursor<Self>;
600
+
601
+ fn poll_produce<'a>(
602
+ mut self: Pin<&mut Self>,
603
+ _: &mut Context<'_>,
604
+ mut store: StoreContextMut<'a, D>,
605
+ mut dst: Destination<'a, Self::Item, Self::Buffer>,
606
+ _: bool,
607
+ ) -> Poll<Result<StreamResult>> {
608
+ let cap = dst.remaining(&mut store);
609
+ let Some(cap) = cap.and_then(core::num::NonZeroUsize::new) else {
610
+ // on 0-length or host reads, buffer the bytes
611
+ dst.set_buffer(Cursor::new(mem::take(self.get_mut())));
612
+ return Poll::Ready(Ok(StreamResult::Dropped));
613
+ };
614
+ let cap = cap.into();
615
+ // data does not fit in destination, fill it and buffer the rest
616
+ dst.set_buffer(Cursor::new(self.split_off(cap)));
617
+ let mut dst = dst.as_direct(store, cap);
618
+ dst.remaining().copy_from_slice(&self);
619
+ dst.mark_written(cap);
620
+ Poll::Ready(Ok(StreamResult::Dropped))
621
+ }
622
+ }
623
+
624
+ #[cfg(feature = "component-model-async-bytes")]
625
+ impl<D> StreamProducer<D> for bytes::BytesMut {
626
+ type Item = u8;
627
+ type Buffer = Cursor<Self>;
628
+
629
+ fn poll_produce<'a>(
630
+ mut self: Pin<&mut Self>,
631
+ _: &mut Context<'_>,
632
+ mut store: StoreContextMut<'a, D>,
633
+ mut dst: Destination<'a, Self::Item, Self::Buffer>,
634
+ _: bool,
635
+ ) -> Poll<Result<StreamResult>> {
636
+ let cap = dst.remaining(&mut store);
637
+ let Some(cap) = cap.and_then(core::num::NonZeroUsize::new) else {
638
+ // on 0-length or host reads, buffer the bytes
639
+ dst.set_buffer(Cursor::new(mem::take(self.get_mut())));
640
+ return Poll::Ready(Ok(StreamResult::Dropped));
641
+ };
642
+ let cap = cap.into();
643
+ // data does not fit in destination, fill it and buffer the rest
644
+ dst.set_buffer(Cursor::new(self.split_off(cap)));
645
+ let mut dst = dst.as_direct(store, cap);
646
+ dst.remaining().copy_from_slice(&self);
647
+ dst.mark_written(cap);
648
+ Poll::Ready(Ok(StreamResult::Dropped))
649
+ }
650
+ }
651
+
652
+ /// Represents the buffer for a host- or guest-initiated stream write.
653
+ pub struct Source<'a, T> {
654
+ instance: Instance,
655
+ id: TableId<TransmitState>,
656
+ host_buffer: Option<&'a mut dyn WriteBuffer<T>>,
657
+ }
658
+
659
+ impl<'a, T> Source<'a, T> {
660
+ /// Reborrow `self` so it can be used again later.
661
+ pub fn reborrow(&mut self) -> Source<'_, T> {
662
+ Source {
663
+ instance: self.instance,
664
+ id: self.id,
665
+ host_buffer: self.host_buffer.as_deref_mut(),
666
+ }
667
+ }
668
+
669
+ /// Accept zero or more items from the writer.
670
+ pub fn read<B, S: AsContextMut>(&mut self, mut store: S, buffer: &mut B) -> Result<()>
671
+ where
672
+ T: func::Lift + 'static,
673
+ B: ReadBuffer<T>,
674
+ {
675
+ if let Some(input) = &mut self.host_buffer {
676
+ let count = input.remaining().len().min(buffer.remaining_capacity());
677
+ buffer.move_from(*input, count);
678
+ } else {
679
+ let store = store.as_context_mut();
680
+ let transmit = self
681
+ .instance
682
+ .concurrent_state_mut(store.0)
683
+ .get_mut(self.id)?;
684
+
685
+ let &ReadState::HostReady { guest_offset, .. } = &transmit.read else {
686
+ unreachable!();
687
+ };
688
+
689
+ let &WriteState::GuestReady {
690
+ ty,
691
+ address,
692
+ count,
693
+ options,
694
+ ..
695
+ } = &transmit.write
696
+ else {
697
+ unreachable!()
698
+ };
699
+
700
+ let cx = &mut LiftContext::new(store.0.store_opaque_mut(), &options, self.instance);
701
+ let ty = payload(ty, cx.types);
702
+ let old_remaining = buffer.remaining_capacity();
703
+ lift::<T, B, S::Data>(
704
+ cx,
705
+ ty,
706
+ buffer,
707
+ address + (T::SIZE32 * guest_offset),
708
+ count - guest_offset,
709
+ )?;
710
+
711
+ let transmit = self
712
+ .instance
713
+ .concurrent_state_mut(store.0)
714
+ .get_mut(self.id)?;
715
+
716
+ let ReadState::HostReady { guest_offset, .. } = &mut transmit.read else {
717
+ unreachable!();
718
+ };
719
+
720
+ *guest_offset += old_remaining - buffer.remaining_capacity();
721
+ }
722
+
723
+ Ok(())
724
+ }
725
+
726
+ /// Return the number of items remaining to be read from the current write
727
+ /// operation.
728
+ pub fn remaining(&self, mut store: impl AsContextMut) -> usize
729
+ where
730
+ T: 'static,
731
+ {
732
+ let transmit = self
733
+ .instance
734
+ .concurrent_state_mut(store.as_context_mut().0)
735
+ .get_mut(self.id)
736
+ .unwrap();
737
+
738
+ if let &WriteState::GuestReady { count, .. } = &transmit.write {
739
+ let &ReadState::HostReady { guest_offset, .. } = &transmit.read else {
740
+ unreachable!()
741
+ };
742
+
743
+ count - guest_offset
744
+ } else if let Some(host_buffer) = &self.host_buffer {
745
+ host_buffer.remaining().len()
746
+ } else {
747
+ unreachable!()
748
+ }
749
+ }
750
+ }
751
+
752
+ impl<'a> Source<'a, u8> {
753
+ /// Return a `DirectSource` view of `self`.
754
+ pub fn as_direct<D>(self, store: StoreContextMut<'a, D>) -> DirectSource<'a, D> {
755
+ DirectSource {
756
+ instance: self.instance,
757
+ id: self.id,
758
+ host_buffer: self.host_buffer,
759
+ store,
760
+ }
761
+ }
762
+ }
763
+
764
+ /// Represents a write to a `stream<u8>`, providing direct access to the
765
+ /// writer's buffer.
766
+ pub struct DirectSource<'a, D: 'static> {
767
+ instance: Instance,
768
+ id: TableId<TransmitState>,
769
+ host_buffer: Option<&'a mut dyn WriteBuffer<u8>>,
770
+ store: StoreContextMut<'a, D>,
771
+ }
772
+
773
+ impl<D: 'static> DirectSource<'_, D> {
774
+ /// Provide direct access to the writer's buffer.
775
+ pub fn remaining(&mut self) -> &[u8] {
776
+ if let Some(buffer) = self.host_buffer.as_deref_mut() {
777
+ buffer.remaining()
778
+ } else {
779
+ let transmit = self
780
+ .instance
781
+ .concurrent_state_mut(self.store.as_context_mut().0)
782
+ .get_mut(self.id)
783
+ .unwrap();
784
+
785
+ let &WriteState::GuestReady {
786
+ address,
787
+ count,
788
+ options,
789
+ ..
790
+ } = &transmit.write
791
+ else {
792
+ unreachable!()
793
+ };
794
+
795
+ let &ReadState::HostReady { guest_offset, .. } = &transmit.read else {
796
+ unreachable!()
797
+ };
798
+
799
+ options
800
+ .memory(self.store.0)
801
+ .get((address + guest_offset)..)
802
+ .and_then(|b| b.get(..(count - guest_offset)))
803
+ .unwrap()
804
+ }
805
+ }
806
+
807
+ /// Mark the specified number of bytes as read from the writer's buffer.
808
+ ///
809
+ /// This will panic if the count is larger than the size of the buffer
810
+ /// returned by `Self::remaining`.
811
+ pub fn mark_read(&mut self, count: usize) {
812
+ if let Some(buffer) = self.host_buffer.as_deref_mut() {
813
+ buffer.skip(count);
814
+ } else {
815
+ let transmit = self
816
+ .instance
817
+ .concurrent_state_mut(self.store.as_context_mut().0)
818
+ .get_mut(self.id)
819
+ .unwrap();
820
+
821
+ let WriteState::GuestReady {
822
+ count: write_count, ..
823
+ } = &transmit.write
824
+ else {
825
+ unreachable!()
826
+ };
827
+
828
+ let ReadState::HostReady { guest_offset, .. } = &mut transmit.read else {
829
+ unreachable!()
830
+ };
831
+
832
+ if *guest_offset + count > *write_count {
833
+ panic!(
834
+ "read count ({count}) must be less than or equal to write count ({write_count})"
835
+ )
836
+ } else {
837
+ *guest_offset += count;
838
+ }
839
+ }
840
+ }
841
+ }
842
+
843
+ /// Represents the host-owned read end of a stream.
844
+ pub trait StreamConsumer<D>: Send + 'static {
845
+ /// The payload type of this stream.
846
+ type Item;
847
+
848
+ /// Handle a host- or guest-initiated write by accepting zero or more items
849
+ /// from the specified source.
850
+ ///
851
+ /// This will be called whenever the writer starts a write.
852
+ ///
853
+ /// If the implementation is able to consume one or more items immediately,
854
+ /// it should take them from `source` and return either
855
+ /// `Poll::Ready(Ok(StreamResult::Completed))` if it expects to be able to consume
856
+ /// more items, or `Poll::Ready(Ok(StreamResult::Dropped))` if it cannot
857
+ /// accept any more items. Alternatively, it may return `Poll::Pending` to
858
+ /// indicate that the caller should delay sending a `COMPLETED` event to the
859
+ /// writer until a later call to this function returns `Poll::Ready(_)`.
860
+ /// For more about that, see the `Backpressure` section below.
861
+ ///
862
+ /// If the implementation cannot consume any items immediately and `finish`
863
+ /// is _false_, it should store the waker from `cx` for later and return
864
+ /// `Poll::Pending` without writing anything to `destination`. Later, it
865
+ /// should alert the waker when either (1) the items arrive, (2) the stream
866
+ /// has ended, or (3) an error occurs.
867
+ ///
868
+ /// If the implementation cannot consume any items immediately and `finish`
869
+ /// is _true_, it should, if possible, return
870
+ /// `Poll::Ready(Ok(StreamResult::Cancelled))` immediately without taking
871
+ /// anything from `source`. However, that might not be possible if an
872
+ /// earlier call to `poll_consume` kicked off an asynchronous operation
873
+ /// which needs to be completed (and possibly interrupted) gracefully, in
874
+ /// which case the implementation may return `Poll::Pending` and later alert
875
+ /// the waker as described above. In other words, when `finish` is true,
876
+ /// the implementation should prioritize returning a result to the reader
877
+ /// (even if no items can be consumed) rather than wait indefinitely for at
878
+ /// capacity to free up.
879
+ ///
880
+ /// In all of the above cases, the implementation may alternatively choose
881
+ /// to return `Err(_)` to indicate an unrecoverable error. This will cause
882
+ /// the guest (if any) to trap and render the component instance (if any)
883
+ /// unusable. The implementation should report errors that _are_
884
+ /// recoverable by other means (e.g. by writing to a `future`) and return
885
+ /// `Poll::Ready(Ok(StreamResult::Dropped))`.
886
+ ///
887
+ /// Note that the implementation should only return
888
+ /// `Poll::Ready(Ok(StreamResult::Cancelled))` without having taken any
889
+ /// items from `source` if called with `finish` set to true. If it does so
890
+ /// when `finish` is false, the caller will trap. Additionally, it should
891
+ /// only return `Poll::Ready(Ok(StreamResult::Completed))` after taking at
892
+ /// least one item from `source` if there is an item available; otherwise,
893
+ /// the caller will trap. If `poll_consume` is called with no items in
894
+ /// `source`, it should only return `Poll::Ready(_)` once it is able to
895
+ /// accept at least one item during the next call to `poll_consume`.
896
+ ///
897
+ /// Note that any items which the implementation of this trait takes from
898
+ /// `source` become the responsibility of that implementation. For that
899
+ /// reason, an implementation which forwards items to an upstream sink
900
+ /// should reserve capacity in that sink before taking items out of
901
+ /// `source`, if possible. Alternatively, it might buffer items which can't
902
+ /// be forwarded immediately and send them once capacity is freed up.
903
+ ///
904
+ /// ## Backpressure
905
+ ///
906
+ /// As mentioned above, an implementation might choose to return
907
+ /// `Poll::Pending` after taking items from `source`, which tells the caller
908
+ /// to delay sending a `COMPLETED` event to the writer. This can be used as
909
+ /// a form of backpressure when the items are forwarded to an upstream sink
910
+ /// asynchronously. Note, however, that it's not possible to "put back"
911
+ /// items into `source` once they've been taken out, so if the upstream sink
912
+ /// is unable to accept all the items, that cannot be communicated to the
913
+ /// writer at this level of abstraction. Just as with application-specific,
914
+ /// recoverable errors, information about which items could be forwarded and
915
+ /// which could not must be communicated out-of-band, e.g. by writing to an
916
+ /// application-specific `future`.
917
+ ///
918
+ /// Similarly, if the writer cancels the write after items have been taken
919
+ /// from `source` but before the items have all been forwarded to an
920
+ /// upstream sink, `poll_consume` will be called with `finish` set to true,
921
+ /// and the implementation may either:
922
+ ///
923
+ /// - Interrupt the forwarding process gracefully. This may be preferable
924
+ /// if there is an out-of-band channel for communicating to the writer how
925
+ /// many items were forwarded before being interrupted.
926
+ ///
927
+ /// - Allow the forwarding to complete without interrupting it. This is
928
+ /// usually preferable if there's no out-of-band channel for reporting back
929
+ /// to the writer how many items were forwarded.
930
+ fn poll_consume(
931
+ self: Pin<&mut Self>,
932
+ cx: &mut Context<'_>,
933
+ store: StoreContextMut<D>,
934
+ source: Source<'_, Self::Item>,
935
+ finish: bool,
936
+ ) -> Poll<Result<StreamResult>>;
937
+ }
938
+
939
+ /// Represents a host-owned write end of a future.
940
+ pub trait FutureProducer<D>: Send + 'static {
941
+ /// The payload type of this future.
942
+ type Item;
943
+
944
+ /// Handle a host- or guest-initiated read by producing a value.
945
+ ///
946
+ /// This is equivalent to `StreamProducer::poll_produce`, but with a
947
+ /// simplified interface for futures.
948
+ ///
949
+ /// If `finish` is true, the implementation may return
950
+ /// `Poll::Ready(Ok(None))` to indicate the operation was canceled before it
951
+ /// could produce a value. Otherwise, it must either return
952
+ /// `Poll::Ready(Ok(Some(_)))`, `Poll::Ready(Err(_))`, or `Poll::Pending`.
953
+ fn poll_produce(
954
+ self: Pin<&mut Self>,
955
+ cx: &mut Context<'_>,
956
+ store: StoreContextMut<D>,
957
+ finish: bool,
958
+ ) -> Poll<Result<Option<Self::Item>>>;
959
+ }
960
+
961
+ impl<T, E, D, Fut> FutureProducer<D> for Fut
962
+ where
963
+ E: Into<Error>,
964
+ Fut: Future<Output = Result<T, E>> + ?Sized + Send + 'static,
965
+ {
966
+ type Item = T;
967
+
968
+ fn poll_produce<'a>(
969
+ self: Pin<&mut Self>,
970
+ cx: &mut Context<'_>,
971
+ _: StoreContextMut<'a, D>,
972
+ finish: bool,
973
+ ) -> Poll<Result<Option<T>>> {
974
+ match self.poll(cx) {
975
+ Poll::Ready(Ok(v)) => Poll::Ready(Ok(Some(v))),
976
+ Poll::Ready(Err(err)) => Poll::Ready(Err(err.into())),
977
+ Poll::Pending if finish => Poll::Ready(Ok(None)),
978
+ Poll::Pending => Poll::Pending,
979
+ }
980
+ }
981
+ }
982
+
983
+ /// Represents a host-owned read end of a future.
984
+ pub trait FutureConsumer<D>: Send + 'static {
985
+ /// The payload type of this future.
986
+ type Item;
987
+
988
+ /// Handle a host- or guest-initiated write by consuming a value.
989
+ ///
990
+ /// This is equivalent to `StreamProducer::poll_produce`, but with a
991
+ /// simplified interface for futures.
992
+ ///
993
+ /// If `finish` is true, the implementation may return `Poll::Ready(Ok(()))`
994
+ /// without taking the item from `source`, which indicates the operation was
995
+ /// canceled before it could consume the value. Otherwise, it must either
996
+ /// take the item from `source` and return `Poll::Ready(Ok(()))`, or else
997
+ /// return `Poll::Ready(Err(_))` or `Poll::Pending` (with or without taking
998
+ /// the item).
999
+ fn poll_consume(
1000
+ self: Pin<&mut Self>,
1001
+ cx: &mut Context<'_>,
1002
+ store: StoreContextMut<D>,
1003
+ source: Source<'_, Self::Item>,
1004
+ finish: bool,
1005
+ ) -> Poll<Result<()>>;
1006
+ }
1007
+
1008
+ /// Represents the readable end of a Component Model `future`.
1009
+ ///
1010
+ /// Note that `FutureReader` instances must be disposed of using either `pipe`
1011
+ /// or `close`; otherwise the in-store representation will leak and the writer
1012
+ /// end will hang indefinitely. Consider using [`GuardedFutureReader`] to
1013
+ /// ensure that disposal happens automatically.
1014
+ pub struct FutureReader<T> {
1015
+ instance: Instance,
1016
+ id: TableId<TransmitHandle>,
1017
+ _phantom: PhantomData<T>,
1018
+ }
1019
+
1020
+ impl<T> FutureReader<T> {
1021
+ /// Create a new future with the specified producer.
1022
+ pub fn new<S: AsContextMut>(
1023
+ instance: Instance,
1024
+ mut store: S,
1025
+ producer: impl FutureProducer<S::Data, Item = T>,
1026
+ ) -> Self
1027
+ where
1028
+ T: func::Lower + func::Lift + Send + Sync + 'static,
1029
+ {
1030
+ struct Producer<P>(P);
1031
+
1032
+ impl<D, T: func::Lower + 'static, P: FutureProducer<D, Item = T>> StreamProducer<D>
1033
+ for Producer<P>
1034
+ {
1035
+ type Item = P::Item;
1036
+ type Buffer = Option<P::Item>;
1037
+
1038
+ fn poll_produce<'a>(
1039
+ self: Pin<&mut Self>,
1040
+ cx: &mut Context<'_>,
1041
+ store: StoreContextMut<D>,
1042
+ mut destination: Destination<'a, Self::Item, Self::Buffer>,
1043
+ finish: bool,
1044
+ ) -> Poll<Result<StreamResult>> {
1045
+ // SAFETY: This is a standard pin-projection, and we never move
1046
+ // out of `self`.
1047
+ let producer = unsafe { self.map_unchecked_mut(|v| &mut v.0) };
1048
+
1049
+ Poll::Ready(Ok(
1050
+ if let Some(value) = ready!(producer.poll_produce(cx, store, finish))? {
1051
+ destination.set_buffer(Some(value));
1052
+
1053
+ // Here we return `StreamResult::Completed` even though
1054
+ // we've produced the last item we'll ever produce.
1055
+ // That's because the ABI expects
1056
+ // `ReturnCode::Completed(1)` rather than
1057
+ // `ReturnCode::Dropped(1)`. In any case, we won't be
1058
+ // called again since the future will have resolved.
1059
+ StreamResult::Completed
1060
+ } else {
1061
+ StreamResult::Cancelled
1062
+ },
1063
+ ))
1064
+ }
1065
+ }
1066
+
1067
+ Self::new_(
1068
+ instance.new_transmit(
1069
+ store.as_context_mut(),
1070
+ TransmitKind::Future,
1071
+ Producer(producer),
1072
+ ),
1073
+ instance,
1074
+ )
1075
+ }
1076
+
1077
+ fn new_(id: TableId<TransmitHandle>, instance: Instance) -> Self {
1078
+ Self {
1079
+ instance,
1080
+ id,
1081
+ _phantom: PhantomData,
1082
+ }
1083
+ }
1084
+
1085
+ /// Set the consumer that accepts the result of this future.
1086
+ pub fn pipe<S: AsContextMut>(
1087
+ self,
1088
+ store: S,
1089
+ consumer: impl FutureConsumer<S::Data, Item = T> + Unpin,
1090
+ ) where
1091
+ T: func::Lift + 'static,
1092
+ {
1093
+ struct Consumer<C>(C);
1094
+
1095
+ impl<D: 'static, T: func::Lift + 'static, C: FutureConsumer<D, Item = T>> StreamConsumer<D>
1096
+ for Consumer<C>
1097
+ {
1098
+ type Item = T;
1099
+
1100
+ fn poll_consume(
1101
+ self: Pin<&mut Self>,
1102
+ cx: &mut Context<'_>,
1103
+ mut store: StoreContextMut<D>,
1104
+ mut source: Source<Self::Item>,
1105
+ finish: bool,
1106
+ ) -> Poll<Result<StreamResult>> {
1107
+ // SAFETY: This is a standard pin-projection, and we never move
1108
+ // out of `self`.
1109
+ let consumer = unsafe { self.map_unchecked_mut(|v| &mut v.0) };
1110
+
1111
+ ready!(consumer.poll_consume(
1112
+ cx,
1113
+ store.as_context_mut(),
1114
+ source.reborrow(),
1115
+ finish
1116
+ ))?;
1117
+
1118
+ Poll::Ready(Ok(if source.remaining(store) == 0 {
1119
+ // Here we return `StreamResult::Completed` even though
1120
+ // we've consumed the last item we'll ever consume. That's
1121
+ // because the ABI expects `ReturnCode::Completed(1)` rather
1122
+ // than `ReturnCode::Dropped(1)`. In any case, we won't be
1123
+ // called again since the future will have resolved.
1124
+ StreamResult::Completed
1125
+ } else {
1126
+ StreamResult::Cancelled
1127
+ }))
1128
+ }
1129
+ }
1130
+
1131
+ self.instance
1132
+ .set_consumer(store, self.id, TransmitKind::Future, Consumer(consumer));
1133
+ }
1134
+
1135
+ /// Convert this `FutureReader` into a [`Val`].
1136
+ // See TODO comment for `FutureAny`; this is prone to handle leakage.
1137
+ pub fn into_val(self) -> Val {
1138
+ Val::Future(FutureAny(self.id.rep()))
1139
+ }
1140
+
1141
+ /// Attempt to convert the specified [`Val`] to a `FutureReader`.
1142
+ pub fn from_val(
1143
+ mut store: impl AsContextMut<Data: Send>,
1144
+ instance: Instance,
1145
+ value: &Val,
1146
+ ) -> Result<Self> {
1147
+ let Val::Future(FutureAny(rep)) = value else {
1148
+ bail!("expected `future`; got `{}`", value.desc());
1149
+ };
1150
+ let store = store.as_context_mut();
1151
+ let id = TableId::<TransmitHandle>::new(*rep);
1152
+ instance.concurrent_state_mut(store.0).get_mut(id)?; // Just make sure it's present
1153
+ Ok(Self::new_(id, instance))
1154
+ }
1155
+
1156
+ /// Transfer ownership of the read end of a future from a guest to the host.
1157
+ fn lift_from_index(cx: &mut LiftContext<'_>, ty: InterfaceType, index: u32) -> Result<Self> {
1158
+ match ty {
1159
+ InterfaceType::Future(src) => {
1160
+ let handle_table = cx
1161
+ .instance_mut()
1162
+ .table_for_transmit(TransmitIndex::Future(src));
1163
+ let (rep, is_done) = handle_table.future_remove_readable(src, index)?;
1164
+ if is_done {
1165
+ bail!("cannot lift future after being notified that the writable end dropped");
1166
+ }
1167
+ let id = TableId::<TransmitHandle>::new(rep);
1168
+ let concurrent_state = cx.instance_mut().concurrent_state_mut();
1169
+ let future = concurrent_state.get_mut(id)?;
1170
+ future.common.handle = None;
1171
+ let state = future.state;
1172
+
1173
+ if concurrent_state.get_mut(state)?.done {
1174
+ bail!("cannot lift future after previous read succeeded");
1175
+ }
1176
+
1177
+ Ok(Self::new_(id, cx.instance_handle()))
1178
+ }
1179
+ _ => func::bad_type_info(),
1180
+ }
1181
+ }
1182
+
1183
+ /// Close this `FutureReader`, writing the default value.
1184
+ ///
1185
+ /// # Panics
1186
+ ///
1187
+ /// Panics if the store that the [`Accessor`] is derived from does not own
1188
+ /// this future. Usage of this future after calling `close` will also cause
1189
+ /// a panic.
1190
+ pub fn close(&mut self, mut store: impl AsContextMut) {
1191
+ // `self` should never be used again, but leave an invalid handle there just in case.
1192
+ let id = mem::replace(&mut self.id, TableId::new(u32::MAX));
1193
+ self.instance
1194
+ .host_drop_reader(store.as_context_mut().0, id, TransmitKind::Future)
1195
+ .unwrap();
1196
+ }
1197
+
1198
+ /// Convenience method around [`Self::close`].
1199
+ pub fn close_with(&mut self, accessor: impl AsAccessor) {
1200
+ accessor.as_accessor().with(|access| self.close(access))
1201
+ }
1202
+
1203
+ /// Returns a [`GuardedFutureReader`] which will auto-close this future on
1204
+ /// drop and clean it up from the store.
1205
+ ///
1206
+ /// Note that the `accessor` provided must own this future and is
1207
+ /// additionally transferred to the `GuardedFutureReader` return value.
1208
+ pub fn guard<A>(self, accessor: A) -> GuardedFutureReader<T, A>
1209
+ where
1210
+ A: AsAccessor,
1211
+ {
1212
+ GuardedFutureReader::new(accessor, self)
1213
+ }
1214
+ }
1215
+
1216
+ impl<T> fmt::Debug for FutureReader<T> {
1217
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1218
+ f.debug_struct("FutureReader")
1219
+ .field("id", &self.id)
1220
+ .field("instance", &self.instance)
1221
+ .finish()
1222
+ }
1223
+ }
1224
+
1225
+ /// Transfer ownership of the read end of a future from the host to a guest.
1226
+ pub(crate) fn lower_future_to_index<U>(
1227
+ rep: u32,
1228
+ cx: &mut LowerContext<'_, U>,
1229
+ ty: InterfaceType,
1230
+ ) -> Result<u32> {
1231
+ match ty {
1232
+ InterfaceType::Future(dst) => {
1233
+ let concurrent_state = cx.instance_mut().concurrent_state_mut();
1234
+ let id = TableId::<TransmitHandle>::new(rep);
1235
+ let state = concurrent_state.get_mut(id)?.state;
1236
+ let rep = concurrent_state.get_mut(state)?.read_handle.rep();
1237
+
1238
+ let handle = cx
1239
+ .instance_mut()
1240
+ .table_for_transmit(TransmitIndex::Future(dst))
1241
+ .future_insert_read(dst, rep)?;
1242
+
1243
+ cx.instance_mut()
1244
+ .concurrent_state_mut()
1245
+ .get_mut(id)?
1246
+ .common
1247
+ .handle = Some(handle);
1248
+
1249
+ Ok(handle)
1250
+ }
1251
+ _ => func::bad_type_info(),
1252
+ }
1253
+ }
1254
+
1255
+ // SAFETY: This relies on the `ComponentType` implementation for `u32` being
1256
+ // safe and correct since we lift and lower future handles as `u32`s.
1257
+ unsafe impl<T: Send + Sync> func::ComponentType for FutureReader<T> {
1258
+ const ABI: CanonicalAbiInfo = CanonicalAbiInfo::SCALAR4;
1259
+
1260
+ type Lower = <u32 as func::ComponentType>::Lower;
1261
+
1262
+ fn typecheck(ty: &InterfaceType, _types: &InstanceType<'_>) -> Result<()> {
1263
+ match ty {
1264
+ InterfaceType::Future(_) => Ok(()),
1265
+ other => bail!("expected `future`, found `{}`", func::desc(other)),
1266
+ }
1267
+ }
1268
+ }
1269
+
1270
+ // SAFETY: See the comment on the `ComponentType` `impl` for this type.
1271
+ unsafe impl<T: Send + Sync> func::Lower for FutureReader<T> {
1272
+ fn linear_lower_to_flat<U>(
1273
+ &self,
1274
+ cx: &mut LowerContext<'_, U>,
1275
+ ty: InterfaceType,
1276
+ dst: &mut MaybeUninit<Self::Lower>,
1277
+ ) -> Result<()> {
1278
+ lower_future_to_index(self.id.rep(), cx, ty)?.linear_lower_to_flat(
1279
+ cx,
1280
+ InterfaceType::U32,
1281
+ dst,
1282
+ )
1283
+ }
1284
+
1285
+ fn linear_lower_to_memory<U>(
1286
+ &self,
1287
+ cx: &mut LowerContext<'_, U>,
1288
+ ty: InterfaceType,
1289
+ offset: usize,
1290
+ ) -> Result<()> {
1291
+ lower_future_to_index(self.id.rep(), cx, ty)?.linear_lower_to_memory(
1292
+ cx,
1293
+ InterfaceType::U32,
1294
+ offset,
1295
+ )
1296
+ }
1297
+ }
1298
+
1299
+ // SAFETY: See the comment on the `ComponentType` `impl` for this type.
1300
+ unsafe impl<T: Send + Sync> func::Lift for FutureReader<T> {
1301
+ fn linear_lift_from_flat(
1302
+ cx: &mut LiftContext<'_>,
1303
+ ty: InterfaceType,
1304
+ src: &Self::Lower,
1305
+ ) -> Result<Self> {
1306
+ let index = u32::linear_lift_from_flat(cx, InterfaceType::U32, src)?;
1307
+ Self::lift_from_index(cx, ty, index)
1308
+ }
1309
+
1310
+ fn linear_lift_from_memory(
1311
+ cx: &mut LiftContext<'_>,
1312
+ ty: InterfaceType,
1313
+ bytes: &[u8],
1314
+ ) -> Result<Self> {
1315
+ let index = u32::linear_lift_from_memory(cx, InterfaceType::U32, bytes)?;
1316
+ Self::lift_from_index(cx, ty, index)
1317
+ }
1318
+ }
1319
+
1320
+ /// A [`FutureReader`] paired with an [`Accessor`].
1321
+ ///
1322
+ /// This is an RAII wrapper around [`FutureReader`] that ensures it is closed
1323
+ /// when dropped. This can be created through [`GuardedFutureReader::new`] or
1324
+ /// [`FutureReader::guard`].
1325
+ pub struct GuardedFutureReader<T, A>
1326
+ where
1327
+ A: AsAccessor,
1328
+ {
1329
+ // This field is `None` to implement the conversion from this guard back to
1330
+ // `FutureReader`. When `None` is seen in the destructor it will cause the
1331
+ // destructor to do nothing.
1332
+ reader: Option<FutureReader<T>>,
1333
+ accessor: A,
1334
+ }
1335
+
1336
+ impl<T, A> GuardedFutureReader<T, A>
1337
+ where
1338
+ A: AsAccessor,
1339
+ {
1340
+ /// Create a new `GuardedFutureReader` with the specified `accessor` and `reader`.
1341
+ pub fn new(accessor: A, reader: FutureReader<T>) -> Self {
1342
+ Self {
1343
+ reader: Some(reader),
1344
+ accessor,
1345
+ }
1346
+ }
1347
+
1348
+ /// Extracts the underlying [`FutureReader`] from this guard, returning it
1349
+ /// back.
1350
+ pub fn into_future(self) -> FutureReader<T> {
1351
+ self.into()
1352
+ }
1353
+ }
1354
+
1355
+ impl<T, A> From<GuardedFutureReader<T, A>> for FutureReader<T>
1356
+ where
1357
+ A: AsAccessor,
1358
+ {
1359
+ fn from(mut guard: GuardedFutureReader<T, A>) -> Self {
1360
+ guard.reader.take().unwrap()
1361
+ }
1362
+ }
1363
+
1364
+ impl<T, A> Drop for GuardedFutureReader<T, A>
1365
+ where
1366
+ A: AsAccessor,
1367
+ {
1368
+ fn drop(&mut self) {
1369
+ if let Some(reader) = &mut self.reader {
1370
+ reader.close_with(&self.accessor)
1371
+ }
1372
+ }
1373
+ }
1374
+
1375
+ /// Represents the readable end of a Component Model `stream`.
1376
+ ///
1377
+ /// Note that `StreamReader` instances must be disposed of using `close`;
1378
+ /// otherwise the in-store representation will leak and the writer end will hang
1379
+ /// indefinitely. Consider using [`GuardedStreamReader`] to ensure that
1380
+ /// disposal happens automatically.
1381
+ pub struct StreamReader<T> {
1382
+ instance: Instance,
1383
+ id: TableId<TransmitHandle>,
1384
+ _phantom: PhantomData<T>,
1385
+ }
1386
+
1387
+ impl<T> StreamReader<T> {
1388
+ /// Create a new stream with the specified producer.
1389
+ pub fn new<S: AsContextMut>(
1390
+ instance: Instance,
1391
+ store: S,
1392
+ producer: impl StreamProducer<S::Data, Item = T>,
1393
+ ) -> Self
1394
+ where
1395
+ T: func::Lower + func::Lift + Send + Sync + 'static,
1396
+ {
1397
+ Self::new_(
1398
+ instance.new_transmit(store, TransmitKind::Stream, producer),
1399
+ instance,
1400
+ )
1401
+ }
1402
+
1403
+ fn new_(id: TableId<TransmitHandle>, instance: Instance) -> Self {
1404
+ Self {
1405
+ instance,
1406
+ id,
1407
+ _phantom: PhantomData,
1408
+ }
1409
+ }
1410
+
1411
+ /// Attempt to consume this object by converting it into the specified type.
1412
+ ///
1413
+ /// This can be useful for "short-circuiting" host-to-host streams,
1414
+ /// bypassing the guest entirely. For example, if a guest task returns a
1415
+ /// host-created stream and then exits, this function may be used to
1416
+ /// retrieve the write end, after which the guest instance and store may be
1417
+ /// disposed of if no longer needed.
1418
+ ///
1419
+ /// This will return `Ok(_)` if and only if the following conditions are
1420
+ /// met:
1421
+ ///
1422
+ /// - The stream was created by the host (i.e. not by the guest).
1423
+ ///
1424
+ /// - The `StreamProducer::try_into` function returns `Ok(_)` when given the
1425
+ /// producer provided to `StreamReader::new` when the stream was created,
1426
+ /// along with `TypeId::of::<V>()`.
1427
+ pub fn try_into<V: 'static>(mut self, mut store: impl AsContextMut) -> Result<V, Self> {
1428
+ let store = store.as_context_mut();
1429
+ let state = self.instance.concurrent_state_mut(store.0);
1430
+ let id = state.get_mut(self.id).unwrap().state;
1431
+ if let WriteState::HostReady { try_into, .. } = &state.get_mut(id).unwrap().write {
1432
+ match try_into(TypeId::of::<V>()) {
1433
+ Some(result) => {
1434
+ self.close(store);
1435
+ Ok(*result.downcast::<V>().unwrap())
1436
+ }
1437
+ None => Err(self),
1438
+ }
1439
+ } else {
1440
+ Err(self)
1441
+ }
1442
+ }
1443
+
1444
+ /// Set the consumer that accepts the items delivered to this stream.
1445
+ pub fn pipe<S: AsContextMut>(self, store: S, consumer: impl StreamConsumer<S::Data, Item = T>)
1446
+ where
1447
+ T: 'static,
1448
+ {
1449
+ self.instance
1450
+ .set_consumer(store, self.id, TransmitKind::Stream, consumer);
1451
+ }
1452
+
1453
+ /// Convert this `StreamReader` into a [`Val`].
1454
+ // See TODO comment for `StreamAny`; this is prone to handle leakage.
1455
+ pub fn into_val(self) -> Val {
1456
+ Val::Stream(StreamAny(self.id.rep()))
1457
+ }
1458
+
1459
+ /// Attempt to convert the specified [`Val`] to a `StreamReader`.
1460
+ pub fn from_val(
1461
+ mut store: impl AsContextMut<Data: Send>,
1462
+ instance: Instance,
1463
+ value: &Val,
1464
+ ) -> Result<Self> {
1465
+ let Val::Stream(StreamAny(rep)) = value else {
1466
+ bail!("expected `stream`; got `{}`", value.desc());
1467
+ };
1468
+ let store = store.as_context_mut();
1469
+ let id = TableId::<TransmitHandle>::new(*rep);
1470
+ instance.concurrent_state_mut(store.0).get_mut(id)?; // Just make sure it's present
1471
+ Ok(Self::new_(id, instance))
1472
+ }
1473
+
1474
+ /// Transfer ownership of the read end of a stream from a guest to the host.
1475
+ fn lift_from_index(cx: &mut LiftContext<'_>, ty: InterfaceType, index: u32) -> Result<Self> {
1476
+ match ty {
1477
+ InterfaceType::Stream(src) => {
1478
+ let handle_table = cx
1479
+ .instance_mut()
1480
+ .table_for_transmit(TransmitIndex::Stream(src));
1481
+ let (rep, is_done) = handle_table.stream_remove_readable(src, index)?;
1482
+ if is_done {
1483
+ bail!("cannot lift stream after being notified that the writable end dropped");
1484
+ }
1485
+ let id = TableId::<TransmitHandle>::new(rep);
1486
+ cx.instance_mut()
1487
+ .concurrent_state_mut()
1488
+ .get_mut(id)?
1489
+ .common
1490
+ .handle = None;
1491
+ Ok(Self::new_(id, cx.instance_handle()))
1492
+ }
1493
+ _ => func::bad_type_info(),
1494
+ }
1495
+ }
1496
+
1497
+ /// Close this `StreamReader`, writing the default value.
1498
+ ///
1499
+ /// # Panics
1500
+ ///
1501
+ /// Panics if the store that the [`Accessor`] is derived from does not own
1502
+ /// this future. Usage of this future after calling `close` will also cause
1503
+ /// a panic.
1504
+ pub fn close(&mut self, mut store: impl AsContextMut) {
1505
+ // `self` should never be used again, but leave an invalid handle there just in case.
1506
+ let id = mem::replace(&mut self.id, TableId::new(u32::MAX));
1507
+ self.instance
1508
+ .host_drop_reader(store.as_context_mut().0, id, TransmitKind::Stream)
1509
+ .unwrap()
1510
+ }
1511
+
1512
+ /// Convenience method around [`Self::close`].
1513
+ pub fn close_with(&mut self, accessor: impl AsAccessor) {
1514
+ accessor.as_accessor().with(|access| self.close(access))
1515
+ }
1516
+
1517
+ /// Returns a [`GuardedStreamReader`] which will auto-close this stream on
1518
+ /// drop and clean it up from the store.
1519
+ ///
1520
+ /// Note that the `accessor` provided must own this future and is
1521
+ /// additionally transferred to the `GuardedStreamReader` return value.
1522
+ pub fn guard<A>(self, accessor: A) -> GuardedStreamReader<T, A>
1523
+ where
1524
+ A: AsAccessor,
1525
+ {
1526
+ GuardedStreamReader::new(accessor, self)
1527
+ }
1528
+ }
1529
+
1530
+ impl<T> fmt::Debug for StreamReader<T> {
1531
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1532
+ f.debug_struct("StreamReader")
1533
+ .field("id", &self.id)
1534
+ .field("instance", &self.instance)
1535
+ .finish()
1536
+ }
1537
+ }
1538
+
1539
+ /// Transfer ownership of the read end of a stream from the host to a guest.
1540
+ pub(crate) fn lower_stream_to_index<U>(
1541
+ rep: u32,
1542
+ cx: &mut LowerContext<'_, U>,
1543
+ ty: InterfaceType,
1544
+ ) -> Result<u32> {
1545
+ match ty {
1546
+ InterfaceType::Stream(dst) => {
1547
+ let concurrent_state = cx.instance_mut().concurrent_state_mut();
1548
+ let id = TableId::<TransmitHandle>::new(rep);
1549
+ let state = concurrent_state.get_mut(id)?.state;
1550
+ let rep = concurrent_state.get_mut(state)?.read_handle.rep();
1551
+
1552
+ let handle = cx
1553
+ .instance_mut()
1554
+ .table_for_transmit(TransmitIndex::Stream(dst))
1555
+ .stream_insert_read(dst, rep)?;
1556
+
1557
+ cx.instance_mut()
1558
+ .concurrent_state_mut()
1559
+ .get_mut(id)?
1560
+ .common
1561
+ .handle = Some(handle);
1562
+
1563
+ Ok(handle)
1564
+ }
1565
+ _ => func::bad_type_info(),
1566
+ }
1567
+ }
1568
+
1569
+ // SAFETY: This relies on the `ComponentType` implementation for `u32` being
1570
+ // safe and correct since we lift and lower stream handles as `u32`s.
1571
+ unsafe impl<T: Send + Sync> func::ComponentType for StreamReader<T> {
1572
+ const ABI: CanonicalAbiInfo = CanonicalAbiInfo::SCALAR4;
1573
+
1574
+ type Lower = <u32 as func::ComponentType>::Lower;
1575
+
1576
+ fn typecheck(ty: &InterfaceType, _types: &InstanceType<'_>) -> Result<()> {
1577
+ match ty {
1578
+ InterfaceType::Stream(_) => Ok(()),
1579
+ other => bail!("expected `stream`, found `{}`", func::desc(other)),
1580
+ }
1581
+ }
1582
+ }
1583
+
1584
+ // SAFETY: See the comment on the `ComponentType` `impl` for this type.
1585
+ unsafe impl<T: Send + Sync> func::Lower for StreamReader<T> {
1586
+ fn linear_lower_to_flat<U>(
1587
+ &self,
1588
+ cx: &mut LowerContext<'_, U>,
1589
+ ty: InterfaceType,
1590
+ dst: &mut MaybeUninit<Self::Lower>,
1591
+ ) -> Result<()> {
1592
+ lower_stream_to_index(self.id.rep(), cx, ty)?.linear_lower_to_flat(
1593
+ cx,
1594
+ InterfaceType::U32,
1595
+ dst,
1596
+ )
1597
+ }
1598
+
1599
+ fn linear_lower_to_memory<U>(
1600
+ &self,
1601
+ cx: &mut LowerContext<'_, U>,
1602
+ ty: InterfaceType,
1603
+ offset: usize,
1604
+ ) -> Result<()> {
1605
+ lower_stream_to_index(self.id.rep(), cx, ty)?.linear_lower_to_memory(
1606
+ cx,
1607
+ InterfaceType::U32,
1608
+ offset,
1609
+ )
1610
+ }
1611
+ }
1612
+
1613
+ // SAFETY: See the comment on the `ComponentType` `impl` for this type.
1614
+ unsafe impl<T: Send + Sync> func::Lift for StreamReader<T> {
1615
+ fn linear_lift_from_flat(
1616
+ cx: &mut LiftContext<'_>,
1617
+ ty: InterfaceType,
1618
+ src: &Self::Lower,
1619
+ ) -> Result<Self> {
1620
+ let index = u32::linear_lift_from_flat(cx, InterfaceType::U32, src)?;
1621
+ Self::lift_from_index(cx, ty, index)
1622
+ }
1623
+
1624
+ fn linear_lift_from_memory(
1625
+ cx: &mut LiftContext<'_>,
1626
+ ty: InterfaceType,
1627
+ bytes: &[u8],
1628
+ ) -> Result<Self> {
1629
+ let index = u32::linear_lift_from_memory(cx, InterfaceType::U32, bytes)?;
1630
+ Self::lift_from_index(cx, ty, index)
1631
+ }
1632
+ }
1633
+
1634
+ /// A [`StreamReader`] paired with an [`Accessor`].
1635
+ ///
1636
+ /// This is an RAII wrapper around [`StreamReader`] that ensures it is closed
1637
+ /// when dropped. This can be created through [`GuardedStreamReader::new`] or
1638
+ /// [`StreamReader::guard`].
1639
+ pub struct GuardedStreamReader<T, A>
1640
+ where
1641
+ A: AsAccessor,
1642
+ {
1643
+ // This field is `None` to implement the conversion from this guard back to
1644
+ // `StreamReader`. When `None` is seen in the destructor it will cause the
1645
+ // destructor to do nothing.
1646
+ reader: Option<StreamReader<T>>,
1647
+ accessor: A,
1648
+ }
1649
+
1650
+ impl<T, A> GuardedStreamReader<T, A>
1651
+ where
1652
+ A: AsAccessor,
1653
+ {
1654
+ /// Create a new `GuardedStreamReader` with the specified `accessor` and
1655
+ /// `reader`.
1656
+ pub fn new(accessor: A, reader: StreamReader<T>) -> Self {
1657
+ Self {
1658
+ reader: Some(reader),
1659
+ accessor,
1660
+ }
1661
+ }
1662
+
1663
+ /// Extracts the underlying [`StreamReader`] from this guard, returning it
1664
+ /// back.
1665
+ pub fn into_stream(self) -> StreamReader<T> {
1666
+ self.into()
1667
+ }
1668
+ }
1669
+
1670
+ impl<T, A> From<GuardedStreamReader<T, A>> for StreamReader<T>
1671
+ where
1672
+ A: AsAccessor,
1673
+ {
1674
+ fn from(mut guard: GuardedStreamReader<T, A>) -> Self {
1675
+ guard.reader.take().unwrap()
1676
+ }
1677
+ }
1678
+
1679
+ impl<T, A> Drop for GuardedStreamReader<T, A>
1680
+ where
1681
+ A: AsAccessor,
1682
+ {
1683
+ fn drop(&mut self) {
1684
+ if let Some(reader) = &mut self.reader {
1685
+ reader.close_with(&self.accessor)
1686
+ }
1687
+ }
1688
+ }
1689
+
1690
+ /// Represents a Component Model `error-context`.
1691
+ pub struct ErrorContext {
1692
+ rep: u32,
1693
+ }
1694
+
1695
+ impl ErrorContext {
1696
+ pub(crate) fn new(rep: u32) -> Self {
1697
+ Self { rep }
1698
+ }
1699
+
1700
+ /// Convert this `ErrorContext` into a [`Val`].
1701
+ pub fn into_val(self) -> Val {
1702
+ Val::ErrorContext(ErrorContextAny(self.rep))
1703
+ }
1704
+
1705
+ /// Attempt to convert the specified [`Val`] to a `ErrorContext`.
1706
+ pub fn from_val(_: impl AsContextMut, value: &Val) -> Result<Self> {
1707
+ let Val::ErrorContext(ErrorContextAny(rep)) = value else {
1708
+ bail!("expected `error-context`; got `{}`", value.desc());
1709
+ };
1710
+ Ok(Self::new(*rep))
1711
+ }
1712
+
1713
+ fn lift_from_index(cx: &mut LiftContext<'_>, ty: InterfaceType, index: u32) -> Result<Self> {
1714
+ match ty {
1715
+ InterfaceType::ErrorContext(src) => {
1716
+ let rep = cx
1717
+ .instance_mut()
1718
+ .table_for_error_context(src)
1719
+ .error_context_rep(index)?;
1720
+
1721
+ Ok(Self { rep })
1722
+ }
1723
+ _ => func::bad_type_info(),
1724
+ }
1725
+ }
1726
+ }
1727
+
1728
+ pub(crate) fn lower_error_context_to_index<U>(
1729
+ rep: u32,
1730
+ cx: &mut LowerContext<'_, U>,
1731
+ ty: InterfaceType,
1732
+ ) -> Result<u32> {
1733
+ match ty {
1734
+ InterfaceType::ErrorContext(dst) => {
1735
+ let tbl = cx.instance_mut().table_for_error_context(dst);
1736
+ tbl.error_context_insert(rep)
1737
+ }
1738
+ _ => func::bad_type_info(),
1739
+ }
1740
+ }
1741
+ // SAFETY: This relies on the `ComponentType` implementation for `u32` being
1742
+ // safe and correct since we lift and lower future handles as `u32`s.
1743
+ unsafe impl func::ComponentType for ErrorContext {
1744
+ const ABI: CanonicalAbiInfo = CanonicalAbiInfo::SCALAR4;
1745
+
1746
+ type Lower = <u32 as func::ComponentType>::Lower;
1747
+
1748
+ fn typecheck(ty: &InterfaceType, _types: &InstanceType<'_>) -> Result<()> {
1749
+ match ty {
1750
+ InterfaceType::ErrorContext(_) => Ok(()),
1751
+ other => bail!("expected `error`, found `{}`", func::desc(other)),
1752
+ }
1753
+ }
1754
+ }
1755
+
1756
+ // SAFETY: See the comment on the `ComponentType` `impl` for this type.
1757
+ unsafe impl func::Lower for ErrorContext {
1758
+ fn linear_lower_to_flat<T>(
1759
+ &self,
1760
+ cx: &mut LowerContext<'_, T>,
1761
+ ty: InterfaceType,
1762
+ dst: &mut MaybeUninit<Self::Lower>,
1763
+ ) -> Result<()> {
1764
+ lower_error_context_to_index(self.rep, cx, ty)?.linear_lower_to_flat(
1765
+ cx,
1766
+ InterfaceType::U32,
1767
+ dst,
1768
+ )
1769
+ }
1770
+
1771
+ fn linear_lower_to_memory<T>(
1772
+ &self,
1773
+ cx: &mut LowerContext<'_, T>,
1774
+ ty: InterfaceType,
1775
+ offset: usize,
1776
+ ) -> Result<()> {
1777
+ lower_error_context_to_index(self.rep, cx, ty)?.linear_lower_to_memory(
1778
+ cx,
1779
+ InterfaceType::U32,
1780
+ offset,
1781
+ )
1782
+ }
1783
+ }
1784
+
1785
+ // SAFETY: See the comment on the `ComponentType` `impl` for this type.
1786
+ unsafe impl func::Lift for ErrorContext {
1787
+ fn linear_lift_from_flat(
1788
+ cx: &mut LiftContext<'_>,
1789
+ ty: InterfaceType,
1790
+ src: &Self::Lower,
1791
+ ) -> Result<Self> {
1792
+ let index = u32::linear_lift_from_flat(cx, InterfaceType::U32, src)?;
1793
+ Self::lift_from_index(cx, ty, index)
1794
+ }
1795
+
1796
+ fn linear_lift_from_memory(
1797
+ cx: &mut LiftContext<'_>,
1798
+ ty: InterfaceType,
1799
+ bytes: &[u8],
1800
+ ) -> Result<Self> {
1801
+ let index = u32::linear_lift_from_memory(cx, InterfaceType::U32, bytes)?;
1802
+ Self::lift_from_index(cx, ty, index)
1803
+ }
1804
+ }
1805
+
1806
+ /// Represents the read or write end of a stream or future.
1807
+ pub(super) struct TransmitHandle {
1808
+ pub(super) common: WaitableCommon,
1809
+ /// See `TransmitState`
1810
+ state: TableId<TransmitState>,
1811
+ }
1812
+
1813
+ impl TransmitHandle {
1814
+ fn new(state: TableId<TransmitState>) -> Self {
1815
+ Self {
1816
+ common: WaitableCommon::default(),
1817
+ state,
1818
+ }
1819
+ }
1820
+ }
1821
+
1822
+ impl TableDebug for TransmitHandle {
1823
+ fn type_name() -> &'static str {
1824
+ "TransmitHandle"
1825
+ }
1826
+ }
1827
+
1828
+ /// Represents the state of a stream or future.
1829
+ struct TransmitState {
1830
+ /// The write end of the stream or future.
1831
+ write_handle: TableId<TransmitHandle>,
1832
+ /// The read end of the stream or future.
1833
+ read_handle: TableId<TransmitHandle>,
1834
+ /// See `WriteState`
1835
+ write: WriteState,
1836
+ /// See `ReadState`
1837
+ read: ReadState,
1838
+ /// Whether futher values may be transmitted via this stream or future.
1839
+ done: bool,
1840
+ }
1841
+
1842
+ impl Default for TransmitState {
1843
+ fn default() -> Self {
1844
+ Self {
1845
+ write_handle: TableId::new(u32::MAX),
1846
+ read_handle: TableId::new(u32::MAX),
1847
+ read: ReadState::Open,
1848
+ write: WriteState::Open,
1849
+ done: false,
1850
+ }
1851
+ }
1852
+ }
1853
+
1854
+ impl TableDebug for TransmitState {
1855
+ fn type_name() -> &'static str {
1856
+ "TransmitState"
1857
+ }
1858
+ }
1859
+
1860
+ type PollStream = Box<
1861
+ dyn Fn() -> Pin<Box<dyn Future<Output = Result<StreamResult>> + Send + 'static>> + Send + Sync,
1862
+ >;
1863
+
1864
+ type TryInto = Box<dyn Fn(TypeId) -> Option<Box<dyn Any>> + Send + Sync>;
1865
+
1866
+ /// Represents the state of the write end of a stream or future.
1867
+ enum WriteState {
1868
+ /// The write end is open, but no write is pending.
1869
+ Open,
1870
+ /// The write end is owned by a guest task and a write is pending.
1871
+ GuestReady {
1872
+ ty: TransmitIndex,
1873
+ flat_abi: Option<FlatAbi>,
1874
+ options: Options,
1875
+ address: usize,
1876
+ count: usize,
1877
+ handle: u32,
1878
+ },
1879
+ /// The write end is owned by the host, which is ready to produce items.
1880
+ HostReady {
1881
+ produce: PollStream,
1882
+ try_into: TryInto,
1883
+ guest_offset: usize,
1884
+ cancel: bool,
1885
+ cancel_waker: Option<Waker>,
1886
+ },
1887
+ /// The write end has been dropped.
1888
+ Dropped,
1889
+ }
1890
+
1891
+ impl fmt::Debug for WriteState {
1892
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1893
+ match self {
1894
+ Self::Open => f.debug_tuple("Open").finish(),
1895
+ Self::GuestReady { .. } => f.debug_tuple("GuestReady").finish(),
1896
+ Self::HostReady { .. } => f.debug_tuple("HostReady").finish(),
1897
+ Self::Dropped => f.debug_tuple("Dropped").finish(),
1898
+ }
1899
+ }
1900
+ }
1901
+
1902
+ /// Represents the state of the read end of a stream or future.
1903
+ enum ReadState {
1904
+ /// The read end is open, but no read is pending.
1905
+ Open,
1906
+ /// The read end is owned by a guest task and a read is pending.
1907
+ GuestReady {
1908
+ ty: TransmitIndex,
1909
+ flat_abi: Option<FlatAbi>,
1910
+ options: Options,
1911
+ address: usize,
1912
+ count: usize,
1913
+ handle: u32,
1914
+ },
1915
+ /// The read end is owned by a host task, and it is ready to consume items.
1916
+ HostReady {
1917
+ consume: PollStream,
1918
+ guest_offset: usize,
1919
+ cancel: bool,
1920
+ cancel_waker: Option<Waker>,
1921
+ },
1922
+ /// Both the read and write ends are owned by the host.
1923
+ HostToHost {
1924
+ accept: Box<
1925
+ dyn for<'a> Fn(
1926
+ &'a mut UntypedWriteBuffer<'a>,
1927
+ )
1928
+ -> Pin<Box<dyn Future<Output = Result<StreamResult>> + Send + 'a>>
1929
+ + Send
1930
+ + Sync,
1931
+ >,
1932
+ buffer: Vec<u8>,
1933
+ limit: usize,
1934
+ },
1935
+ /// The read end has been dropped.
1936
+ Dropped,
1937
+ }
1938
+
1939
+ impl fmt::Debug for ReadState {
1940
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1941
+ match self {
1942
+ Self::Open => f.debug_tuple("Open").finish(),
1943
+ Self::GuestReady { .. } => f.debug_tuple("GuestReady").finish(),
1944
+ Self::HostReady { .. } => f.debug_tuple("HostReady").finish(),
1945
+ Self::HostToHost { .. } => f.debug_tuple("HostToHost").finish(),
1946
+ Self::Dropped => f.debug_tuple("Dropped").finish(),
1947
+ }
1948
+ }
1949
+ }
1950
+
1951
+ fn return_code(kind: TransmitKind, state: StreamResult, guest_offset: usize) -> ReturnCode {
1952
+ let count = guest_offset.try_into().unwrap();
1953
+ match state {
1954
+ StreamResult::Dropped => ReturnCode::Dropped(count),
1955
+ StreamResult::Completed => ReturnCode::completed(kind, count),
1956
+ StreamResult::Cancelled => ReturnCode::Cancelled(count),
1957
+ }
1958
+ }
1959
+
1960
+ impl Instance {
1961
+ fn new_transmit<S: AsContextMut, P: StreamProducer<S::Data>>(
1962
+ self,
1963
+ mut store: S,
1964
+ kind: TransmitKind,
1965
+ producer: P,
1966
+ ) -> TableId<TransmitHandle>
1967
+ where
1968
+ P::Item: func::Lower,
1969
+ {
1970
+ let mut store = store.as_context_mut();
1971
+ let token = StoreToken::new(store.as_context_mut());
1972
+ let state = self.concurrent_state_mut(store.0);
1973
+ let (_, read) = state.new_transmit().unwrap();
1974
+ let producer = Arc::new(Mutex::new(Some((Box::pin(producer), P::Buffer::default()))));
1975
+ let id = state.get_mut(read).unwrap().state;
1976
+ let produce = Box::new({
1977
+ let producer = producer.clone();
1978
+ move || {
1979
+ let producer = producer.clone();
1980
+ async move {
1981
+ let (mut mine, mut buffer) = producer.lock().unwrap().take().unwrap();
1982
+
1983
+ let (result, cancelled) = if buffer.remaining().is_empty() {
1984
+ future::poll_fn(|cx| {
1985
+ tls::get(|store| {
1986
+ let transmit = self.concurrent_state_mut(store).get_mut(id).unwrap();
1987
+
1988
+ let &WriteState::HostReady { cancel, .. } = &transmit.write else {
1989
+ unreachable!();
1990
+ };
1991
+
1992
+ let mut host_buffer =
1993
+ if let ReadState::HostToHost { buffer, .. } = &mut transmit.read {
1994
+ Some(Cursor::new(mem::take(buffer)))
1995
+ } else {
1996
+ None
1997
+ };
1998
+
1999
+ let poll = mine.as_mut().poll_produce(
2000
+ cx,
2001
+ token.as_context_mut(store),
2002
+ Destination {
2003
+ instance: self,
2004
+ id,
2005
+ buffer: &mut buffer,
2006
+ host_buffer: host_buffer.as_mut(),
2007
+ _phantom: PhantomData,
2008
+ },
2009
+ cancel,
2010
+ );
2011
+
2012
+ let transmit = self.concurrent_state_mut(store).get_mut(id).unwrap();
2013
+
2014
+ let host_offset = if let (
2015
+ Some(host_buffer),
2016
+ ReadState::HostToHost { buffer, limit, .. },
2017
+ ) = (host_buffer, &mut transmit.read)
2018
+ {
2019
+ *limit = usize::try_from(host_buffer.position()).unwrap();
2020
+ *buffer = host_buffer.into_inner();
2021
+ *limit
2022
+ } else {
2023
+ 0
2024
+ };
2025
+
2026
+ {
2027
+ let WriteState::HostReady {
2028
+ guest_offset,
2029
+ cancel,
2030
+ cancel_waker,
2031
+ ..
2032
+ } = &mut transmit.write
2033
+ else {
2034
+ unreachable!();
2035
+ };
2036
+
2037
+ if poll.is_pending() {
2038
+ if !buffer.remaining().is_empty()
2039
+ || *guest_offset > 0
2040
+ || host_offset > 0
2041
+ {
2042
+ return Poll::Ready(Err(anyhow!(
2043
+ "StreamProducer::poll_produce returned Poll::Pending \
2044
+ after producing at least one item"
2045
+ )));
2046
+ }
2047
+ *cancel_waker = Some(cx.waker().clone());
2048
+ } else {
2049
+ *cancel_waker = None;
2050
+ *cancel = false;
2051
+ }
2052
+ }
2053
+
2054
+ poll.map(|v| v.map(|result| (result, cancel)))
2055
+ })
2056
+ })
2057
+ .await?
2058
+ } else {
2059
+ (StreamResult::Completed, false)
2060
+ };
2061
+
2062
+ let (guest_offset, host_offset, count) = tls::get(|store| {
2063
+ let transmit = self.concurrent_state_mut(store).get_mut(id).unwrap();
2064
+ let (count, host_offset) = match &transmit.read {
2065
+ &ReadState::GuestReady { count, .. } => (count, 0),
2066
+ &ReadState::HostToHost { limit, .. } => (1, limit),
2067
+ _ => unreachable!(),
2068
+ };
2069
+ let guest_offset = match &transmit.write {
2070
+ &WriteState::HostReady { guest_offset, .. } => guest_offset,
2071
+ _ => unreachable!(),
2072
+ };
2073
+ (guest_offset, host_offset, count)
2074
+ });
2075
+
2076
+ match result {
2077
+ StreamResult::Completed => {
2078
+ if count > 1
2079
+ && buffer.remaining().is_empty()
2080
+ && guest_offset == 0
2081
+ && host_offset == 0
2082
+ {
2083
+ bail!(
2084
+ "StreamProducer::poll_produce returned StreamResult::Completed \
2085
+ without producing any items"
2086
+ );
2087
+ }
2088
+ }
2089
+ StreamResult::Cancelled => {
2090
+ if !cancelled {
2091
+ bail!(
2092
+ "StreamProducer::poll_produce returned StreamResult::Cancelled \
2093
+ without being given a `finish` parameter value of true"
2094
+ );
2095
+ }
2096
+ }
2097
+ StreamResult::Dropped => {}
2098
+ }
2099
+
2100
+ let write_buffer = !buffer.remaining().is_empty() || host_offset > 0;
2101
+
2102
+ *producer.lock().unwrap() = Some((mine, buffer));
2103
+
2104
+ if write_buffer {
2105
+ self.write(token, id, producer, kind).await?;
2106
+ }
2107
+
2108
+ Ok(result)
2109
+ }
2110
+ .boxed()
2111
+ }
2112
+ });
2113
+ let try_into = Box::new(move |ty| {
2114
+ let (mine, buffer) = producer.lock().unwrap().take().unwrap();
2115
+ match P::try_into(mine, ty) {
2116
+ Ok(value) => Some(value),
2117
+ Err(mine) => {
2118
+ *producer.lock().unwrap() = Some((mine, buffer));
2119
+ None
2120
+ }
2121
+ }
2122
+ });
2123
+ state.get_mut(id).unwrap().write = WriteState::HostReady {
2124
+ produce,
2125
+ try_into,
2126
+ guest_offset: 0,
2127
+ cancel: false,
2128
+ cancel_waker: None,
2129
+ };
2130
+ read
2131
+ }
2132
+
2133
+ fn set_consumer<S: AsContextMut, C: StreamConsumer<S::Data>>(
2134
+ self,
2135
+ mut store: S,
2136
+ id: TableId<TransmitHandle>,
2137
+ kind: TransmitKind,
2138
+ consumer: C,
2139
+ ) {
2140
+ let mut store = store.as_context_mut();
2141
+ let token = StoreToken::new(store.as_context_mut());
2142
+ let state = self.concurrent_state_mut(store.0);
2143
+ let id = state.get_mut(id).unwrap().state;
2144
+ let transmit = state.get_mut(id).unwrap();
2145
+ let consumer = Arc::new(Mutex::new(Some(Box::pin(consumer))));
2146
+ let consume_with_buffer = {
2147
+ let consumer = consumer.clone();
2148
+ async move |mut host_buffer: Option<&mut dyn WriteBuffer<C::Item>>| {
2149
+ let mut mine = consumer.lock().unwrap().take().unwrap();
2150
+
2151
+ let host_buffer_remaining_before =
2152
+ host_buffer.as_deref_mut().map(|v| v.remaining().len());
2153
+
2154
+ let (result, cancelled) = future::poll_fn(|cx| {
2155
+ tls::get(|store| {
2156
+ let cancel =
2157
+ match &self.concurrent_state_mut(store).get_mut(id).unwrap().read {
2158
+ &ReadState::HostReady { cancel, .. } => cancel,
2159
+ ReadState::Open => false,
2160
+ _ => unreachable!(),
2161
+ };
2162
+
2163
+ let poll = mine.as_mut().poll_consume(
2164
+ cx,
2165
+ token.as_context_mut(store),
2166
+ Source {
2167
+ instance: self,
2168
+ id,
2169
+ host_buffer: host_buffer.as_deref_mut(),
2170
+ },
2171
+ cancel,
2172
+ );
2173
+
2174
+ if let ReadState::HostReady {
2175
+ cancel_waker,
2176
+ cancel,
2177
+ ..
2178
+ } = &mut self.concurrent_state_mut(store).get_mut(id).unwrap().read
2179
+ {
2180
+ if poll.is_pending() {
2181
+ *cancel_waker = Some(cx.waker().clone());
2182
+ } else {
2183
+ *cancel_waker = None;
2184
+ *cancel = false;
2185
+ }
2186
+ }
2187
+
2188
+ poll.map(|v| v.map(|result| (result, cancel)))
2189
+ })
2190
+ })
2191
+ .await?;
2192
+
2193
+ let (guest_offset, count) = tls::get(|store| {
2194
+ let transmit = self.concurrent_state_mut(store).get_mut(id).unwrap();
2195
+ (
2196
+ match &transmit.read {
2197
+ &ReadState::HostReady { guest_offset, .. } => guest_offset,
2198
+ ReadState::Open => 0,
2199
+ _ => unreachable!(),
2200
+ },
2201
+ match &transmit.write {
2202
+ &WriteState::GuestReady { count, .. } => count,
2203
+ WriteState::HostReady { .. } => host_buffer_remaining_before.unwrap(),
2204
+ _ => unreachable!(),
2205
+ },
2206
+ )
2207
+ });
2208
+
2209
+ match result {
2210
+ StreamResult::Completed => {
2211
+ if count > 0
2212
+ && guest_offset == 0
2213
+ && host_buffer_remaining_before
2214
+ .zip(host_buffer.map(|v| v.remaining().len()))
2215
+ .map(|(before, after)| before == after)
2216
+ .unwrap_or(false)
2217
+ {
2218
+ bail!(
2219
+ "StreamConsumer::poll_consume returned StreamResult::Completed \
2220
+ without consuming any items"
2221
+ );
2222
+ }
2223
+
2224
+ if let TransmitKind::Future = kind {
2225
+ tls::get(|store| {
2226
+ self.concurrent_state_mut(store).get_mut(id).unwrap().done = true;
2227
+ });
2228
+ }
2229
+ }
2230
+ StreamResult::Cancelled => {
2231
+ if !cancelled {
2232
+ bail!(
2233
+ "StreamConsumer::poll_consume returned StreamResult::Cancelled \
2234
+ without being given a `finish` parameter value of true"
2235
+ );
2236
+ }
2237
+ }
2238
+ StreamResult::Dropped => {}
2239
+ }
2240
+
2241
+ *consumer.lock().unwrap() = Some(mine);
2242
+
2243
+ Ok(result)
2244
+ }
2245
+ };
2246
+ let consume = {
2247
+ let consume = consume_with_buffer.clone();
2248
+ Box::new(move || {
2249
+ let consume = consume.clone();
2250
+ async move { consume(None).await }.boxed()
2251
+ })
2252
+ };
2253
+
2254
+ match &transmit.write {
2255
+ WriteState::Open => {
2256
+ transmit.read = ReadState::HostReady {
2257
+ consume,
2258
+ guest_offset: 0,
2259
+ cancel: false,
2260
+ cancel_waker: None,
2261
+ };
2262
+ }
2263
+ WriteState::GuestReady { .. } => {
2264
+ let future = consume();
2265
+ transmit.read = ReadState::HostReady {
2266
+ consume,
2267
+ guest_offset: 0,
2268
+ cancel: false,
2269
+ cancel_waker: None,
2270
+ };
2271
+ self.pipe_from_guest(store.0, kind, id, future);
2272
+ }
2273
+ WriteState::HostReady { .. } => {
2274
+ let WriteState::HostReady { produce, .. } = mem::replace(
2275
+ &mut transmit.write,
2276
+ WriteState::HostReady {
2277
+ produce: Box::new(|| unreachable!()),
2278
+ try_into: Box::new(|_| unreachable!()),
2279
+ guest_offset: 0,
2280
+ cancel: false,
2281
+ cancel_waker: None,
2282
+ },
2283
+ ) else {
2284
+ unreachable!();
2285
+ };
2286
+
2287
+ transmit.read = ReadState::HostToHost {
2288
+ accept: Box::new(move |input| {
2289
+ let consume = consume_with_buffer.clone();
2290
+ async move { consume(Some(input.get_mut::<C::Item>())).await }.boxed()
2291
+ }),
2292
+ buffer: Vec::new(),
2293
+ limit: 0,
2294
+ };
2295
+
2296
+ let future = async move {
2297
+ loop {
2298
+ if tls::get(|store| {
2299
+ anyhow::Ok(matches!(
2300
+ self.concurrent_state_mut(store).get_mut(id)?.read,
2301
+ ReadState::Dropped
2302
+ ))
2303
+ })? {
2304
+ break Ok(());
2305
+ }
2306
+
2307
+ match produce().await? {
2308
+ StreamResult::Completed | StreamResult::Cancelled => {}
2309
+ StreamResult::Dropped => break Ok(()),
2310
+ }
2311
+
2312
+ if let TransmitKind::Future = kind {
2313
+ break Ok(());
2314
+ }
2315
+ }
2316
+ }
2317
+ .map(move |result| {
2318
+ tls::get(|store| self.concurrent_state_mut(store).delete_transmit(id))?;
2319
+ result
2320
+ });
2321
+
2322
+ state.push_future(Box::pin(future));
2323
+ }
2324
+ WriteState::Dropped => {
2325
+ let reader = transmit.read_handle;
2326
+ self.host_drop_reader(store.0, reader, kind).unwrap();
2327
+ }
2328
+ }
2329
+ }
2330
+
2331
+ async fn write<D: 'static, P: Send + 'static, T: func::Lower + 'static, B: WriteBuffer<T>>(
2332
+ self,
2333
+ token: StoreToken<D>,
2334
+ id: TableId<TransmitState>,
2335
+ pair: Arc<Mutex<Option<(P, B)>>>,
2336
+ kind: TransmitKind,
2337
+ ) -> Result<()> {
2338
+ let (read, guest_offset) = tls::get(|store| {
2339
+ let transmit = self.concurrent_state_mut(store).get_mut(id)?;
2340
+
2341
+ let guest_offset = if let &WriteState::HostReady { guest_offset, .. } = &transmit.write
2342
+ {
2343
+ Some(guest_offset)
2344
+ } else {
2345
+ None
2346
+ };
2347
+
2348
+ anyhow::Ok((
2349
+ mem::replace(&mut transmit.read, ReadState::Open),
2350
+ guest_offset,
2351
+ ))
2352
+ })?;
2353
+
2354
+ match read {
2355
+ ReadState::GuestReady {
2356
+ ty,
2357
+ flat_abi,
2358
+ options,
2359
+ address,
2360
+ count,
2361
+ handle,
2362
+ } => {
2363
+ let guest_offset = guest_offset.unwrap();
2364
+
2365
+ if let TransmitKind::Future = kind {
2366
+ tls::get(|store| {
2367
+ self.concurrent_state_mut(store).get_mut(id)?.done = true;
2368
+ anyhow::Ok(())
2369
+ })?;
2370
+ }
2371
+
2372
+ let old_remaining = pair.lock().unwrap().as_mut().unwrap().1.remaining().len();
2373
+ let accept = {
2374
+ let pair = pair.clone();
2375
+ move |mut store: StoreContextMut<D>| {
2376
+ lower::<T, B, D>(
2377
+ store.as_context_mut(),
2378
+ self,
2379
+ &options,
2380
+ ty,
2381
+ address + (T::SIZE32 * guest_offset),
2382
+ count - guest_offset,
2383
+ &mut pair.lock().unwrap().as_mut().unwrap().1,
2384
+ )?;
2385
+ anyhow::Ok(())
2386
+ }
2387
+ };
2388
+
2389
+ if guest_offset < count {
2390
+ if T::MAY_REQUIRE_REALLOC {
2391
+ // For payloads which may require a realloc call, use a
2392
+ // oneshot::channel and background task. This is
2393
+ // necessary because calling the guest while there are
2394
+ // host embedder frames on the stack is unsound.
2395
+ let (tx, rx) = oneshot::channel();
2396
+ tls::get(move |store| {
2397
+ self.concurrent_state_mut(store).push_high_priority(
2398
+ WorkItem::WorkerFunction(AlwaysMut::new(Box::new(
2399
+ move |store, _| {
2400
+ _ = tx.send(accept(token.as_context_mut(store))?);
2401
+ Ok(())
2402
+ },
2403
+ ))),
2404
+ )
2405
+ });
2406
+ rx.await?
2407
+ } else {
2408
+ // Optimize flat payloads (i.e. those which do not
2409
+ // require calling the guest's realloc function) by
2410
+ // lowering directly instead of using a oneshot::channel
2411
+ // and background task.
2412
+ tls::get(|store| accept(token.as_context_mut(store)))?
2413
+ };
2414
+ }
2415
+
2416
+ tls::get(|store| {
2417
+ let count =
2418
+ old_remaining - pair.lock().unwrap().as_mut().unwrap().1.remaining().len();
2419
+
2420
+ let transmit = self.concurrent_state_mut(store).get_mut(id)?;
2421
+
2422
+ let WriteState::HostReady { guest_offset, .. } = &mut transmit.write else {
2423
+ unreachable!();
2424
+ };
2425
+
2426
+ *guest_offset += count;
2427
+
2428
+ transmit.read = ReadState::GuestReady {
2429
+ ty,
2430
+ flat_abi,
2431
+ options,
2432
+ address,
2433
+ count,
2434
+ handle,
2435
+ };
2436
+
2437
+ anyhow::Ok(())
2438
+ })?;
2439
+
2440
+ Ok(())
2441
+ }
2442
+
2443
+ ReadState::HostToHost {
2444
+ accept,
2445
+ mut buffer,
2446
+ limit,
2447
+ } => {
2448
+ let mut state = StreamResult::Completed;
2449
+ let mut position = 0;
2450
+
2451
+ while !matches!(state, StreamResult::Dropped) && position < limit {
2452
+ let mut slice_buffer = SliceBuffer::new(buffer, position, limit);
2453
+ state = accept(&mut UntypedWriteBuffer::new(&mut slice_buffer)).await?;
2454
+ (buffer, position, _) = slice_buffer.into_parts();
2455
+ }
2456
+
2457
+ {
2458
+ let (mine, mut buffer) = pair.lock().unwrap().take().unwrap();
2459
+
2460
+ while !(matches!(state, StreamResult::Dropped) || buffer.remaining().is_empty())
2461
+ {
2462
+ state = accept(&mut UntypedWriteBuffer::new(&mut buffer)).await?;
2463
+ }
2464
+
2465
+ *pair.lock().unwrap() = Some((mine, buffer));
2466
+ }
2467
+
2468
+ tls::get(|store| {
2469
+ self.concurrent_state_mut(store).get_mut(id)?.read = match state {
2470
+ StreamResult::Dropped => ReadState::Dropped,
2471
+ StreamResult::Completed | StreamResult::Cancelled => {
2472
+ ReadState::HostToHost {
2473
+ accept,
2474
+ buffer,
2475
+ limit: 0,
2476
+ }
2477
+ }
2478
+ };
2479
+
2480
+ anyhow::Ok(())
2481
+ })?;
2482
+ Ok(())
2483
+ }
2484
+
2485
+ _ => unreachable!(),
2486
+ }
2487
+ }
2488
+
2489
+ fn pipe_from_guest(
2490
+ self,
2491
+ store: &mut dyn VMStore,
2492
+ kind: TransmitKind,
2493
+ id: TableId<TransmitState>,
2494
+ future: Pin<Box<dyn Future<Output = Result<StreamResult>> + Send + 'static>>,
2495
+ ) {
2496
+ let future = async move {
2497
+ let stream_state = future.await?;
2498
+ tls::get(|store| {
2499
+ let state = self.concurrent_state_mut(store);
2500
+ let transmit = state.get_mut(id)?;
2501
+ let ReadState::HostReady {
2502
+ consume,
2503
+ guest_offset,
2504
+ ..
2505
+ } = mem::replace(&mut transmit.read, ReadState::Open)
2506
+ else {
2507
+ unreachable!();
2508
+ };
2509
+ let code = return_code(kind, stream_state, guest_offset);
2510
+ transmit.read = match stream_state {
2511
+ StreamResult::Dropped => ReadState::Dropped,
2512
+ StreamResult::Completed | StreamResult::Cancelled => ReadState::HostReady {
2513
+ consume,
2514
+ guest_offset: 0,
2515
+ cancel: false,
2516
+ cancel_waker: None,
2517
+ },
2518
+ };
2519
+ let WriteState::GuestReady { ty, handle, .. } =
2520
+ mem::replace(&mut transmit.write, WriteState::Open)
2521
+ else {
2522
+ unreachable!();
2523
+ };
2524
+ state.send_write_result(ty, id, handle, code)?;
2525
+ Ok(())
2526
+ })
2527
+ };
2528
+
2529
+ self.concurrent_state_mut(store).push_future(future.boxed());
2530
+ }
2531
+
2532
+ fn pipe_to_guest(
2533
+ self,
2534
+ store: &mut dyn VMStore,
2535
+ kind: TransmitKind,
2536
+ id: TableId<TransmitState>,
2537
+ future: Pin<Box<dyn Future<Output = Result<StreamResult>> + Send + 'static>>,
2538
+ ) {
2539
+ let future = async move {
2540
+ let stream_state = future.await?;
2541
+ tls::get(|store| {
2542
+ let state = self.concurrent_state_mut(store);
2543
+ let transmit = state.get_mut(id)?;
2544
+ let WriteState::HostReady {
2545
+ produce,
2546
+ try_into,
2547
+ guest_offset,
2548
+ ..
2549
+ } = mem::replace(&mut transmit.write, WriteState::Open)
2550
+ else {
2551
+ unreachable!();
2552
+ };
2553
+ let code = return_code(kind, stream_state, guest_offset);
2554
+ transmit.write = match stream_state {
2555
+ StreamResult::Dropped => WriteState::Dropped,
2556
+ StreamResult::Completed | StreamResult::Cancelled => WriteState::HostReady {
2557
+ produce,
2558
+ try_into,
2559
+ guest_offset: 0,
2560
+ cancel: false,
2561
+ cancel_waker: None,
2562
+ },
2563
+ };
2564
+ let ReadState::GuestReady { ty, handle, .. } =
2565
+ mem::replace(&mut transmit.read, ReadState::Open)
2566
+ else {
2567
+ unreachable!();
2568
+ };
2569
+ state.send_read_result(ty, id, handle, code)?;
2570
+ Ok(())
2571
+ })
2572
+ };
2573
+
2574
+ self.concurrent_state_mut(store).push_future(future.boxed());
2575
+ }
2576
+
2577
+ /// Drop the read end of a stream or future read from the host.
2578
+ fn host_drop_reader(
2579
+ self,
2580
+ store: &mut dyn VMStore,
2581
+ id: TableId<TransmitHandle>,
2582
+ kind: TransmitKind,
2583
+ ) -> Result<()> {
2584
+ let transmit_id = self.concurrent_state_mut(store).get_mut(id)?.state;
2585
+ let state = self.concurrent_state_mut(store);
2586
+ let transmit = state
2587
+ .get_mut(transmit_id)
2588
+ .with_context(|| format!("error closing reader {transmit_id:?}"))?;
2589
+ log::trace!(
2590
+ "host_drop_reader state {transmit_id:?}; read state {:?} write state {:?}",
2591
+ transmit.read,
2592
+ transmit.write
2593
+ );
2594
+
2595
+ transmit.read = ReadState::Dropped;
2596
+
2597
+ // If the write end is already dropped, it should stay dropped,
2598
+ // otherwise, it should be opened.
2599
+ let new_state = if let WriteState::Dropped = &transmit.write {
2600
+ WriteState::Dropped
2601
+ } else {
2602
+ WriteState::Open
2603
+ };
2604
+
2605
+ let write_handle = transmit.write_handle;
2606
+
2607
+ match mem::replace(&mut transmit.write, new_state) {
2608
+ // If a guest is waiting to write, notify it that the read end has
2609
+ // been dropped.
2610
+ WriteState::GuestReady { ty, handle, .. } => {
2611
+ state.update_event(
2612
+ write_handle.rep(),
2613
+ match ty {
2614
+ TransmitIndex::Future(ty) => Event::FutureWrite {
2615
+ code: ReturnCode::Dropped(0),
2616
+ pending: Some((ty, handle)),
2617
+ },
2618
+ TransmitIndex::Stream(ty) => Event::StreamWrite {
2619
+ code: ReturnCode::Dropped(0),
2620
+ pending: Some((ty, handle)),
2621
+ },
2622
+ },
2623
+ )?;
2624
+ }
2625
+
2626
+ WriteState::HostReady { .. } => {}
2627
+
2628
+ WriteState::Open => {
2629
+ state.update_event(
2630
+ write_handle.rep(),
2631
+ match kind {
2632
+ TransmitKind::Future => Event::FutureWrite {
2633
+ code: ReturnCode::Dropped(0),
2634
+ pending: None,
2635
+ },
2636
+ TransmitKind::Stream => Event::StreamWrite {
2637
+ code: ReturnCode::Dropped(0),
2638
+ pending: None,
2639
+ },
2640
+ },
2641
+ )?;
2642
+ }
2643
+
2644
+ WriteState::Dropped => {
2645
+ log::trace!("host_drop_reader delete {transmit_id:?}");
2646
+ state.delete_transmit(transmit_id)?;
2647
+ }
2648
+ }
2649
+ Ok(())
2650
+ }
2651
+
2652
+ /// Drop the write end of a stream or future read from the host.
2653
+ fn host_drop_writer<U>(
2654
+ self,
2655
+ store: StoreContextMut<U>,
2656
+ id: TableId<TransmitHandle>,
2657
+ on_drop_open: Option<fn() -> Result<()>>,
2658
+ ) -> Result<()> {
2659
+ let transmit_id = self.concurrent_state_mut(store.0).get_mut(id)?.state;
2660
+ let transmit = self
2661
+ .concurrent_state_mut(store.0)
2662
+ .get_mut(transmit_id)
2663
+ .with_context(|| format!("error closing writer {transmit_id:?}"))?;
2664
+ log::trace!(
2665
+ "host_drop_writer state {transmit_id:?}; write state {:?} read state {:?}",
2666
+ transmit.read,
2667
+ transmit.write
2668
+ );
2669
+
2670
+ // Existing queued transmits must be updated with information for the impending writer closure
2671
+ match &mut transmit.write {
2672
+ WriteState::GuestReady { .. } => {
2673
+ unreachable!("can't call `host_drop_writer` on a guest-owned writer");
2674
+ }
2675
+ WriteState::HostReady { .. } => {}
2676
+ v @ WriteState::Open => {
2677
+ if let (Some(on_drop_open), false) = (
2678
+ on_drop_open,
2679
+ transmit.done || matches!(transmit.read, ReadState::Dropped),
2680
+ ) {
2681
+ on_drop_open()?;
2682
+ } else {
2683
+ *v = WriteState::Dropped;
2684
+ }
2685
+ }
2686
+ WriteState::Dropped => unreachable!("write state is already dropped"),
2687
+ }
2688
+
2689
+ let transmit = self.concurrent_state_mut(store.0).get_mut(transmit_id)?;
2690
+
2691
+ // If the existing read state is dropped, then there's nothing to read
2692
+ // and we can keep it that way.
2693
+ //
2694
+ // If the read state was any other state, then we must set the new state to open
2695
+ // to indicate that there *is* data to be read
2696
+ let new_state = if let ReadState::Dropped = &transmit.read {
2697
+ ReadState::Dropped
2698
+ } else {
2699
+ ReadState::Open
2700
+ };
2701
+
2702
+ let read_handle = transmit.read_handle;
2703
+
2704
+ // Swap in the new read state
2705
+ match mem::replace(&mut transmit.read, new_state) {
2706
+ // If the guest was ready to read, then we cannot drop the reader (or writer);
2707
+ // we must deliver the event, and update the state associated with the handle to
2708
+ // represent that a read must be performed
2709
+ ReadState::GuestReady { ty, handle, .. } => {
2710
+ // Ensure the final read of the guest is queued, with appropriate closure indicator
2711
+ self.concurrent_state_mut(store.0).update_event(
2712
+ read_handle.rep(),
2713
+ match ty {
2714
+ TransmitIndex::Future(ty) => Event::FutureRead {
2715
+ code: ReturnCode::Dropped(0),
2716
+ pending: Some((ty, handle)),
2717
+ },
2718
+ TransmitIndex::Stream(ty) => Event::StreamRead {
2719
+ code: ReturnCode::Dropped(0),
2720
+ pending: Some((ty, handle)),
2721
+ },
2722
+ },
2723
+ )?;
2724
+ }
2725
+
2726
+ ReadState::HostReady { .. } | ReadState::HostToHost { .. } => {}
2727
+
2728
+ // If the read state is open, then there are no registered readers of the stream/future
2729
+ ReadState::Open => {
2730
+ self.concurrent_state_mut(store.0).update_event(
2731
+ read_handle.rep(),
2732
+ match on_drop_open {
2733
+ Some(_) => Event::FutureRead {
2734
+ code: ReturnCode::Dropped(0),
2735
+ pending: None,
2736
+ },
2737
+ None => Event::StreamRead {
2738
+ code: ReturnCode::Dropped(0),
2739
+ pending: None,
2740
+ },
2741
+ },
2742
+ )?;
2743
+ }
2744
+
2745
+ // If the read state was already dropped, then we can remove the transmit state completely
2746
+ // (both writer and reader have been dropped)
2747
+ ReadState::Dropped => {
2748
+ log::trace!("host_drop_writer delete {transmit_id:?}");
2749
+ self.concurrent_state_mut(store.0)
2750
+ .delete_transmit(transmit_id)?;
2751
+ }
2752
+ }
2753
+ Ok(())
2754
+ }
2755
+
2756
+ /// Drop the writable end of the specified stream or future from the guest.
2757
+ pub(super) fn guest_drop_writable<T>(
2758
+ self,
2759
+ store: StoreContextMut<T>,
2760
+ ty: TransmitIndex,
2761
+ writer: u32,
2762
+ ) -> Result<()> {
2763
+ let table = self.id().get_mut(store.0).table_for_transmit(ty);
2764
+ let transmit_rep = match ty {
2765
+ TransmitIndex::Future(ty) => table.future_remove_writable(ty, writer)?,
2766
+ TransmitIndex::Stream(ty) => table.stream_remove_writable(ty, writer)?,
2767
+ };
2768
+
2769
+ let id = TableId::<TransmitHandle>::new(transmit_rep);
2770
+ log::trace!("guest_drop_writable: drop writer {id:?}");
2771
+ match ty {
2772
+ TransmitIndex::Stream(_) => self.host_drop_writer(store, id, None),
2773
+ TransmitIndex::Future(_) => self.host_drop_writer(
2774
+ store,
2775
+ id,
2776
+ Some(|| {
2777
+ Err(anyhow!(
2778
+ "cannot drop future write end without first writing a value"
2779
+ ))
2780
+ }),
2781
+ ),
2782
+ }
2783
+ }
2784
+
2785
+ /// Copy `count` items from `read_address` to `write_address` for the
2786
+ /// specified stream or future.
2787
+ fn copy<T: 'static>(
2788
+ self,
2789
+ mut store: StoreContextMut<T>,
2790
+ flat_abi: Option<FlatAbi>,
2791
+ write_ty: TransmitIndex,
2792
+ write_options: &Options,
2793
+ write_address: usize,
2794
+ read_ty: TransmitIndex,
2795
+ read_options: &Options,
2796
+ read_address: usize,
2797
+ count: usize,
2798
+ rep: u32,
2799
+ ) -> Result<()> {
2800
+ let types = self.id().get(store.0).component().types().clone();
2801
+ match (write_ty, read_ty) {
2802
+ (TransmitIndex::Future(write_ty), TransmitIndex::Future(read_ty)) => {
2803
+ assert_eq!(count, 1);
2804
+
2805
+ let val = types[types[write_ty].ty]
2806
+ .payload
2807
+ .map(|ty| {
2808
+ let abi = types.canonical_abi(&ty);
2809
+ // FIXME: needs to read an i64 for memory64
2810
+ if write_address % usize::try_from(abi.align32)? != 0 {
2811
+ bail!("write pointer not aligned");
2812
+ }
2813
+
2814
+ let lift =
2815
+ &mut LiftContext::new(store.0.store_opaque_mut(), write_options, self);
2816
+ let bytes = lift
2817
+ .memory()
2818
+ .get(write_address..)
2819
+ .and_then(|b| b.get(..usize::try_from(abi.size32).unwrap()))
2820
+ .ok_or_else(|| {
2821
+ anyhow::anyhow!("write pointer out of bounds of memory")
2822
+ })?;
2823
+
2824
+ Val::load(lift, ty, bytes)
2825
+ })
2826
+ .transpose()?;
2827
+
2828
+ if let Some(val) = val {
2829
+ let lower =
2830
+ &mut LowerContext::new(store.as_context_mut(), read_options, &types, self);
2831
+ let ty = types[types[read_ty].ty].payload.unwrap();
2832
+ let ptr = func::validate_inbounds_dynamic(
2833
+ types.canonical_abi(&ty),
2834
+ lower.as_slice_mut(),
2835
+ &ValRaw::u32(read_address.try_into().unwrap()),
2836
+ )?;
2837
+ val.store(lower, ty, ptr)?;
2838
+ }
2839
+ }
2840
+ (TransmitIndex::Stream(write_ty), TransmitIndex::Stream(read_ty)) => {
2841
+ if let Some(flat_abi) = flat_abi {
2842
+ // Fast path memcpy for "flat" (i.e. no pointers or handles) payloads:
2843
+ let length_in_bytes = usize::try_from(flat_abi.size).unwrap() * count;
2844
+ if length_in_bytes > 0 {
2845
+ if write_address % usize::try_from(flat_abi.align)? != 0 {
2846
+ bail!("write pointer not aligned");
2847
+ }
2848
+ if read_address % usize::try_from(flat_abi.align)? != 0 {
2849
+ bail!("read pointer not aligned");
2850
+ }
2851
+
2852
+ let store_opaque = store.0.store_opaque_mut();
2853
+
2854
+ {
2855
+ let src = write_options
2856
+ .memory(store_opaque)
2857
+ .get(write_address..)
2858
+ .and_then(|b| b.get(..length_in_bytes))
2859
+ .ok_or_else(|| {
2860
+ anyhow::anyhow!("write pointer out of bounds of memory")
2861
+ })?
2862
+ .as_ptr();
2863
+ let dst = read_options
2864
+ .memory_mut(store_opaque)
2865
+ .get_mut(read_address..)
2866
+ .and_then(|b| b.get_mut(..length_in_bytes))
2867
+ .ok_or_else(|| {
2868
+ anyhow::anyhow!("read pointer out of bounds of memory")
2869
+ })?
2870
+ .as_mut_ptr();
2871
+ // SAFETY: Both `src` and `dst` have been validated
2872
+ // above.
2873
+ unsafe { src.copy_to(dst, length_in_bytes) };
2874
+ }
2875
+ }
2876
+ } else {
2877
+ let store_opaque = store.0.store_opaque_mut();
2878
+ let lift = &mut LiftContext::new(store_opaque, write_options, self);
2879
+ let ty = types[types[write_ty].ty].payload.unwrap();
2880
+ let abi = lift.types.canonical_abi(&ty);
2881
+ let size = usize::try_from(abi.size32).unwrap();
2882
+ if write_address % usize::try_from(abi.align32)? != 0 {
2883
+ bail!("write pointer not aligned");
2884
+ }
2885
+ let bytes = lift
2886
+ .memory()
2887
+ .get(write_address..)
2888
+ .and_then(|b| b.get(..size * count))
2889
+ .ok_or_else(|| anyhow::anyhow!("write pointer out of bounds of memory"))?;
2890
+
2891
+ let values = (0..count)
2892
+ .map(|index| Val::load(lift, ty, &bytes[(index * size)..][..size]))
2893
+ .collect::<Result<Vec<_>>>()?;
2894
+
2895
+ let id = TableId::<TransmitHandle>::new(rep);
2896
+ log::trace!("copy values {values:?} for {id:?}");
2897
+
2898
+ let lower =
2899
+ &mut LowerContext::new(store.as_context_mut(), read_options, &types, self);
2900
+ let ty = types[types[read_ty].ty].payload.unwrap();
2901
+ let abi = lower.types.canonical_abi(&ty);
2902
+ if read_address % usize::try_from(abi.align32)? != 0 {
2903
+ bail!("read pointer not aligned");
2904
+ }
2905
+ let size = usize::try_from(abi.size32).unwrap();
2906
+ lower
2907
+ .as_slice_mut()
2908
+ .get_mut(read_address..)
2909
+ .and_then(|b| b.get_mut(..size * count))
2910
+ .ok_or_else(|| anyhow::anyhow!("read pointer out of bounds of memory"))?;
2911
+ let mut ptr = read_address;
2912
+ for value in values {
2913
+ value.store(lower, ty, ptr)?;
2914
+ ptr += size
2915
+ }
2916
+ }
2917
+ }
2918
+ _ => unreachable!(),
2919
+ }
2920
+
2921
+ Ok(())
2922
+ }
2923
+
2924
+ fn check_bounds(
2925
+ self,
2926
+ store: &StoreOpaque,
2927
+ options: &Options,
2928
+ ty: TransmitIndex,
2929
+ address: usize,
2930
+ count: usize,
2931
+ ) -> Result<()> {
2932
+ let types = self.id().get(store).component().types().clone();
2933
+ let size = usize::try_from(
2934
+ match ty {
2935
+ TransmitIndex::Future(ty) => types[types[ty].ty]
2936
+ .payload
2937
+ .map(|ty| types.canonical_abi(&ty).size32),
2938
+ TransmitIndex::Stream(ty) => types[types[ty].ty]
2939
+ .payload
2940
+ .map(|ty| types.canonical_abi(&ty).size32),
2941
+ }
2942
+ .unwrap_or(0),
2943
+ )
2944
+ .unwrap();
2945
+
2946
+ if count > 0 && size > 0 {
2947
+ options
2948
+ .memory(store)
2949
+ .get(address..)
2950
+ .and_then(|b| b.get(..(size * count)))
2951
+ .map(drop)
2952
+ .ok_or_else(|| anyhow::anyhow!("read pointer out of bounds of memory"))
2953
+ } else {
2954
+ Ok(())
2955
+ }
2956
+ }
2957
+
2958
+ /// Write to the specified stream or future from the guest.
2959
+ pub(super) fn guest_write<T: 'static>(
2960
+ self,
2961
+ mut store: StoreContextMut<T>,
2962
+ ty: TransmitIndex,
2963
+ options: OptionsIndex,
2964
+ flat_abi: Option<FlatAbi>,
2965
+ handle: u32,
2966
+ address: u32,
2967
+ count: u32,
2968
+ ) -> Result<ReturnCode> {
2969
+ let address = usize::try_from(address).unwrap();
2970
+ let count = usize::try_from(count).unwrap();
2971
+ let options = Options::new_index(store.0, self, options);
2972
+ self.check_bounds(store.0, &options, ty, address, count)?;
2973
+ let (rep, state) = self.id().get_mut(store.0).get_mut_by_index(ty, handle)?;
2974
+ let TransmitLocalState::Write { done } = *state else {
2975
+ bail!(
2976
+ "invalid handle {handle}; expected `Write`; got {:?}",
2977
+ *state
2978
+ );
2979
+ };
2980
+
2981
+ if done {
2982
+ bail!("cannot write to stream after being notified that the readable end dropped");
2983
+ }
2984
+
2985
+ *state = TransmitLocalState::Busy;
2986
+ let transmit_handle = TableId::<TransmitHandle>::new(rep);
2987
+ let concurrent_state = self.concurrent_state_mut(store.0);
2988
+ let transmit_id = concurrent_state.get_mut(transmit_handle)?.state;
2989
+ let transmit = concurrent_state.get_mut(transmit_id)?;
2990
+ log::trace!(
2991
+ "guest_write {count} to {transmit_handle:?} (handle {handle}; state {transmit_id:?}); {:?}",
2992
+ transmit.read
2993
+ );
2994
+
2995
+ if transmit.done {
2996
+ bail!("cannot write to future after previous write succeeded or readable end dropped");
2997
+ }
2998
+
2999
+ let new_state = if let ReadState::Dropped = &transmit.read {
3000
+ ReadState::Dropped
3001
+ } else {
3002
+ ReadState::Open
3003
+ };
3004
+
3005
+ let set_guest_ready = |me: &mut ConcurrentState| {
3006
+ let transmit = me.get_mut(transmit_id)?;
3007
+ assert!(matches!(&transmit.write, WriteState::Open));
3008
+ transmit.write = WriteState::GuestReady {
3009
+ ty,
3010
+ flat_abi,
3011
+ options,
3012
+ address,
3013
+ count,
3014
+ handle,
3015
+ };
3016
+ Ok::<_, crate::Error>(())
3017
+ };
3018
+
3019
+ let mut result = match mem::replace(&mut transmit.read, new_state) {
3020
+ ReadState::GuestReady {
3021
+ ty: read_ty,
3022
+ flat_abi: read_flat_abi,
3023
+ options: read_options,
3024
+ address: read_address,
3025
+ count: read_count,
3026
+ handle: read_handle,
3027
+ } => {
3028
+ assert_eq!(flat_abi, read_flat_abi);
3029
+
3030
+ if let TransmitIndex::Future(_) = ty {
3031
+ transmit.done = true;
3032
+ }
3033
+
3034
+ // Note that zero-length reads and writes are handling specially
3035
+ // by the spec to allow each end to signal readiness to the
3036
+ // other. Quoting the spec:
3037
+ //
3038
+ // ```
3039
+ // The meaning of a read or write when the length is 0 is that
3040
+ // the caller is querying the "readiness" of the other
3041
+ // side. When a 0-length read/write rendezvous with a
3042
+ // non-0-length read/write, only the 0-length read/write
3043
+ // completes; the non-0-length read/write is kept pending (and
3044
+ // ready for a subsequent rendezvous).
3045
+ //
3046
+ // In the corner case where a 0-length read and write
3047
+ // rendezvous, only the writer is notified of readiness. To
3048
+ // avoid livelock, the Canonical ABI requires that a writer must
3049
+ // (eventually) follow a completed 0-length write with a
3050
+ // non-0-length write that is allowed to block (allowing the
3051
+ // reader end to run and rendezvous with its own non-0-length
3052
+ // read).
3053
+ // ```
3054
+
3055
+ let write_complete = count == 0 || read_count > 0;
3056
+ let read_complete = count > 0;
3057
+ let read_buffer_remaining = count < read_count;
3058
+
3059
+ let read_handle_rep = transmit.read_handle.rep();
3060
+
3061
+ let count = count.min(read_count);
3062
+
3063
+ self.copy(
3064
+ store.as_context_mut(),
3065
+ flat_abi,
3066
+ ty,
3067
+ &options,
3068
+ address,
3069
+ read_ty,
3070
+ &read_options,
3071
+ read_address,
3072
+ count,
3073
+ rep,
3074
+ )?;
3075
+
3076
+ let instance = self.id().get_mut(store.0);
3077
+ let types = instance.component().types();
3078
+ let item_size = payload(ty, types)
3079
+ .map(|ty| usize::try_from(types.canonical_abi(&ty).size32).unwrap())
3080
+ .unwrap_or(0);
3081
+ let concurrent_state = instance.concurrent_state_mut();
3082
+ if read_complete {
3083
+ let count = u32::try_from(count).unwrap();
3084
+ let total = if let Some(Event::StreamRead {
3085
+ code: ReturnCode::Completed(old_total),
3086
+ ..
3087
+ }) = concurrent_state.take_event(read_handle_rep)?
3088
+ {
3089
+ count + old_total
3090
+ } else {
3091
+ count
3092
+ };
3093
+
3094
+ let code = ReturnCode::completed(ty.kind(), total);
3095
+
3096
+ concurrent_state.send_read_result(read_ty, transmit_id, read_handle, code)?;
3097
+ }
3098
+
3099
+ if read_buffer_remaining {
3100
+ let transmit = concurrent_state.get_mut(transmit_id)?;
3101
+ transmit.read = ReadState::GuestReady {
3102
+ ty: read_ty,
3103
+ flat_abi: read_flat_abi,
3104
+ options: read_options,
3105
+ address: read_address + (count * item_size),
3106
+ count: read_count - count,
3107
+ handle: read_handle,
3108
+ };
3109
+ }
3110
+
3111
+ if write_complete {
3112
+ ReturnCode::completed(ty.kind(), count.try_into().unwrap())
3113
+ } else {
3114
+ set_guest_ready(concurrent_state)?;
3115
+ ReturnCode::Blocked
3116
+ }
3117
+ }
3118
+
3119
+ ReadState::HostReady {
3120
+ consume,
3121
+ guest_offset,
3122
+ cancel,
3123
+ cancel_waker,
3124
+ } => {
3125
+ assert!(cancel_waker.is_none());
3126
+ assert!(!cancel);
3127
+ assert_eq!(0, guest_offset);
3128
+
3129
+ if let TransmitIndex::Future(_) = ty {
3130
+ transmit.done = true;
3131
+ }
3132
+
3133
+ set_guest_ready(concurrent_state)?;
3134
+ self.consume(store.0, ty.kind(), transmit_id, consume, 0, false)?
3135
+ }
3136
+
3137
+ ReadState::HostToHost { .. } => unreachable!(),
3138
+
3139
+ ReadState::Open => {
3140
+ set_guest_ready(concurrent_state)?;
3141
+ ReturnCode::Blocked
3142
+ }
3143
+
3144
+ ReadState::Dropped => {
3145
+ if let TransmitIndex::Future(_) = ty {
3146
+ transmit.done = true;
3147
+ }
3148
+
3149
+ ReturnCode::Dropped(0)
3150
+ }
3151
+ };
3152
+
3153
+ if result == ReturnCode::Blocked && !options.async_() {
3154
+ result = self.wait_for_write(store.0, transmit_handle)?;
3155
+ }
3156
+
3157
+ if result != ReturnCode::Blocked {
3158
+ *self.id().get_mut(store.0).get_mut_by_index(ty, handle)?.1 =
3159
+ TransmitLocalState::Write {
3160
+ done: matches!(
3161
+ (result, ty),
3162
+ (ReturnCode::Dropped(_), TransmitIndex::Stream(_))
3163
+ ),
3164
+ };
3165
+ }
3166
+
3167
+ log::trace!(
3168
+ "guest_write result for {transmit_handle:?} (handle {handle}; state {transmit_id:?}): {result:?}",
3169
+ );
3170
+
3171
+ Ok(result)
3172
+ }
3173
+
3174
+ /// Handle a host- or guest-initiated write by delivering the item(s) to the
3175
+ /// `StreamConsumer` for the specified stream or future.
3176
+ fn consume(
3177
+ self,
3178
+ store: &mut dyn VMStore,
3179
+ kind: TransmitKind,
3180
+ transmit_id: TableId<TransmitState>,
3181
+ consume: PollStream,
3182
+ guest_offset: usize,
3183
+ cancel: bool,
3184
+ ) -> Result<ReturnCode> {
3185
+ let mut future = consume();
3186
+ self.concurrent_state_mut(store).get_mut(transmit_id)?.read = ReadState::HostReady {
3187
+ consume,
3188
+ guest_offset,
3189
+ cancel,
3190
+ cancel_waker: None,
3191
+ };
3192
+ let poll = self.set_tls(store, || {
3193
+ future
3194
+ .as_mut()
3195
+ .poll(&mut Context::from_waker(&Waker::noop()))
3196
+ });
3197
+
3198
+ Ok(match poll {
3199
+ Poll::Ready(state) => {
3200
+ let transmit = self.concurrent_state_mut(store).get_mut(transmit_id)?;
3201
+ let ReadState::HostReady { guest_offset, .. } = &mut transmit.read else {
3202
+ unreachable!();
3203
+ };
3204
+ let code = return_code(kind, state?, mem::replace(guest_offset, 0));
3205
+ transmit.write = WriteState::Open;
3206
+ code
3207
+ }
3208
+ Poll::Pending => {
3209
+ self.pipe_from_guest(store, kind, transmit_id, future);
3210
+ ReturnCode::Blocked
3211
+ }
3212
+ })
3213
+ }
3214
+
3215
+ /// Read from the specified stream or future from the guest.
3216
+ pub(super) fn guest_read<T: 'static>(
3217
+ self,
3218
+ mut store: StoreContextMut<T>,
3219
+ ty: TransmitIndex,
3220
+ options: OptionsIndex,
3221
+ flat_abi: Option<FlatAbi>,
3222
+ handle: u32,
3223
+ address: u32,
3224
+ count: u32,
3225
+ ) -> Result<ReturnCode> {
3226
+ let address = usize::try_from(address).unwrap();
3227
+ let count = usize::try_from(count).unwrap();
3228
+ let options = Options::new_index(store.0, self, options);
3229
+ self.check_bounds(store.0, &options, ty, address, count)?;
3230
+ let (rep, state) = self.id().get_mut(store.0).get_mut_by_index(ty, handle)?;
3231
+ let TransmitLocalState::Read { done } = *state else {
3232
+ bail!("invalid handle {handle}; expected `Read`; got {:?}", *state);
3233
+ };
3234
+
3235
+ if done {
3236
+ bail!("cannot read from stream after being notified that the writable end dropped");
3237
+ }
3238
+
3239
+ *state = TransmitLocalState::Busy;
3240
+ let transmit_handle = TableId::<TransmitHandle>::new(rep);
3241
+ let concurrent_state = self.concurrent_state_mut(store.0);
3242
+ let transmit_id = concurrent_state.get_mut(transmit_handle)?.state;
3243
+ let transmit = concurrent_state.get_mut(transmit_id)?;
3244
+ log::trace!(
3245
+ "guest_read {count} from {transmit_handle:?} (handle {handle}; state {transmit_id:?}); {:?}",
3246
+ transmit.write
3247
+ );
3248
+
3249
+ if transmit.done {
3250
+ bail!("cannot read from future after previous read succeeded");
3251
+ }
3252
+
3253
+ let new_state = if let WriteState::Dropped = &transmit.write {
3254
+ WriteState::Dropped
3255
+ } else {
3256
+ WriteState::Open
3257
+ };
3258
+
3259
+ let set_guest_ready = |me: &mut ConcurrentState| {
3260
+ let transmit = me.get_mut(transmit_id)?;
3261
+ assert!(matches!(&transmit.read, ReadState::Open));
3262
+ transmit.read = ReadState::GuestReady {
3263
+ ty,
3264
+ flat_abi,
3265
+ options,
3266
+ address,
3267
+ count,
3268
+ handle,
3269
+ };
3270
+ Ok::<_, crate::Error>(())
3271
+ };
3272
+
3273
+ let mut result = match mem::replace(&mut transmit.write, new_state) {
3274
+ WriteState::GuestReady {
3275
+ ty: write_ty,
3276
+ flat_abi: write_flat_abi,
3277
+ options: write_options,
3278
+ address: write_address,
3279
+ count: write_count,
3280
+ handle: write_handle,
3281
+ } => {
3282
+ assert_eq!(flat_abi, write_flat_abi);
3283
+
3284
+ if let TransmitIndex::Future(_) = ty {
3285
+ transmit.done = true;
3286
+ }
3287
+
3288
+ let write_handle_rep = transmit.write_handle.rep();
3289
+
3290
+ // See the comment in `guest_write` for the
3291
+ // `ReadState::GuestReady` case concerning zero-length reads and
3292
+ // writes.
3293
+
3294
+ let write_complete = write_count == 0 || count > 0;
3295
+ let read_complete = write_count > 0;
3296
+ let write_buffer_remaining = count < write_count;
3297
+
3298
+ let count = count.min(write_count);
3299
+
3300
+ self.copy(
3301
+ store.as_context_mut(),
3302
+ flat_abi,
3303
+ write_ty,
3304
+ &write_options,
3305
+ write_address,
3306
+ ty,
3307
+ &options,
3308
+ address,
3309
+ count,
3310
+ rep,
3311
+ )?;
3312
+
3313
+ let instance = self.id().get_mut(store.0);
3314
+ let types = instance.component().types();
3315
+ let item_size = payload(ty, types)
3316
+ .map(|ty| usize::try_from(types.canonical_abi(&ty).size32).unwrap())
3317
+ .unwrap_or(0);
3318
+ let concurrent_state = instance.concurrent_state_mut();
3319
+
3320
+ if write_complete {
3321
+ let count = u32::try_from(count).unwrap();
3322
+ let total = if let Some(Event::StreamWrite {
3323
+ code: ReturnCode::Completed(old_total),
3324
+ ..
3325
+ }) = concurrent_state.take_event(write_handle_rep)?
3326
+ {
3327
+ count + old_total
3328
+ } else {
3329
+ count
3330
+ };
3331
+
3332
+ let code = ReturnCode::completed(ty.kind(), total);
3333
+
3334
+ concurrent_state.send_write_result(
3335
+ write_ty,
3336
+ transmit_id,
3337
+ write_handle,
3338
+ code,
3339
+ )?;
3340
+ }
3341
+
3342
+ if write_buffer_remaining {
3343
+ let transmit = concurrent_state.get_mut(transmit_id)?;
3344
+ transmit.write = WriteState::GuestReady {
3345
+ ty: write_ty,
3346
+ flat_abi: write_flat_abi,
3347
+ options: write_options,
3348
+ address: write_address + (count * item_size),
3349
+ count: write_count - count,
3350
+ handle: write_handle,
3351
+ };
3352
+ }
3353
+
3354
+ if read_complete {
3355
+ ReturnCode::completed(ty.kind(), count.try_into().unwrap())
3356
+ } else {
3357
+ set_guest_ready(concurrent_state)?;
3358
+ ReturnCode::Blocked
3359
+ }
3360
+ }
3361
+
3362
+ WriteState::HostReady {
3363
+ produce,
3364
+ try_into,
3365
+ guest_offset,
3366
+ cancel,
3367
+ cancel_waker,
3368
+ } => {
3369
+ assert!(cancel_waker.is_none());
3370
+ assert!(!cancel);
3371
+ assert_eq!(0, guest_offset);
3372
+
3373
+ if let TransmitIndex::Future(_) = ty {
3374
+ transmit.done = true;
3375
+ }
3376
+
3377
+ set_guest_ready(concurrent_state)?;
3378
+
3379
+ self.produce(store.0, ty.kind(), transmit_id, produce, try_into, 0, false)?
3380
+ }
3381
+
3382
+ WriteState::Open => {
3383
+ set_guest_ready(concurrent_state)?;
3384
+ ReturnCode::Blocked
3385
+ }
3386
+
3387
+ WriteState::Dropped => ReturnCode::Dropped(0),
3388
+ };
3389
+
3390
+ if result == ReturnCode::Blocked && !options.async_() {
3391
+ result = self.wait_for_read(store.0, transmit_handle)?;
3392
+ }
3393
+
3394
+ if result != ReturnCode::Blocked {
3395
+ *self.id().get_mut(store.0).get_mut_by_index(ty, handle)?.1 =
3396
+ TransmitLocalState::Read {
3397
+ done: matches!(
3398
+ (result, ty),
3399
+ (ReturnCode::Dropped(_), TransmitIndex::Stream(_))
3400
+ ),
3401
+ };
3402
+ }
3403
+
3404
+ log::trace!(
3405
+ "guest_read result for {transmit_handle:?} (handle {handle}; state {transmit_id:?}): {result:?}",
3406
+ );
3407
+
3408
+ Ok(result)
3409
+ }
3410
+
3411
+ /// Handle a host- or guest-initiated read by polling the `StreamProducer`
3412
+ /// for the specified stream or future for items.
3413
+ fn produce(
3414
+ self,
3415
+ store: &mut dyn VMStore,
3416
+ kind: TransmitKind,
3417
+ transmit_id: TableId<TransmitState>,
3418
+ produce: PollStream,
3419
+ try_into: TryInto,
3420
+ guest_offset: usize,
3421
+ cancel: bool,
3422
+ ) -> Result<ReturnCode> {
3423
+ let mut future = produce();
3424
+ self.concurrent_state_mut(store).get_mut(transmit_id)?.write = WriteState::HostReady {
3425
+ produce,
3426
+ try_into,
3427
+ guest_offset,
3428
+ cancel,
3429
+ cancel_waker: None,
3430
+ };
3431
+ let poll = self.set_tls(store, || {
3432
+ future
3433
+ .as_mut()
3434
+ .poll(&mut Context::from_waker(&Waker::noop()))
3435
+ });
3436
+
3437
+ Ok(match poll {
3438
+ Poll::Ready(state) => {
3439
+ let transmit = self.concurrent_state_mut(store).get_mut(transmit_id)?;
3440
+ let WriteState::HostReady { guest_offset, .. } = &mut transmit.write else {
3441
+ unreachable!();
3442
+ };
3443
+ let code = return_code(kind, state?, mem::replace(guest_offset, 0));
3444
+ transmit.read = ReadState::Open;
3445
+ code
3446
+ }
3447
+ Poll::Pending => {
3448
+ self.pipe_to_guest(store, kind, transmit_id, future);
3449
+ ReturnCode::Blocked
3450
+ }
3451
+ })
3452
+ }
3453
+
3454
+ fn wait_for_write(
3455
+ self,
3456
+ store: &mut dyn VMStore,
3457
+ handle: TableId<TransmitHandle>,
3458
+ ) -> Result<ReturnCode> {
3459
+ let waitable = Waitable::Transmit(handle);
3460
+ self.wait_for_event(store, waitable)?;
3461
+ let event = waitable.take_event(self.concurrent_state_mut(store))?;
3462
+ if let Some(event @ (Event::StreamWrite { code, .. } | Event::FutureWrite { code, .. })) =
3463
+ event
3464
+ {
3465
+ waitable.on_delivery(self.id().get_mut(store), event);
3466
+ Ok(code)
3467
+ } else {
3468
+ unreachable!()
3469
+ }
3470
+ }
3471
+
3472
+ /// Cancel a pending stream or future write.
3473
+ fn cancel_write(
3474
+ self,
3475
+ store: &mut dyn VMStore,
3476
+ transmit_id: TableId<TransmitState>,
3477
+ async_: bool,
3478
+ ) -> Result<ReturnCode> {
3479
+ let state = self.concurrent_state_mut(store);
3480
+ let transmit = state.get_mut(transmit_id)?;
3481
+ log::trace!(
3482
+ "host_cancel_write state {transmit_id:?}; write state {:?} read state {:?}",
3483
+ transmit.read,
3484
+ transmit.write
3485
+ );
3486
+
3487
+ let code = if let Some(event) =
3488
+ Waitable::Transmit(transmit.write_handle).take_event(state)?
3489
+ {
3490
+ let (Event::FutureWrite { code, .. } | Event::StreamWrite { code, .. }) = event else {
3491
+ unreachable!();
3492
+ };
3493
+ match (code, event) {
3494
+ (ReturnCode::Completed(count), Event::StreamWrite { .. }) => {
3495
+ ReturnCode::Cancelled(count)
3496
+ }
3497
+ (ReturnCode::Dropped(_) | ReturnCode::Completed(_), _) => code,
3498
+ _ => unreachable!(),
3499
+ }
3500
+ } else if let ReadState::HostReady {
3501
+ cancel,
3502
+ cancel_waker,
3503
+ ..
3504
+ } = &mut state.get_mut(transmit_id)?.read
3505
+ {
3506
+ *cancel = true;
3507
+ if let Some(waker) = cancel_waker.take() {
3508
+ waker.wake();
3509
+ }
3510
+
3511
+ if async_ {
3512
+ ReturnCode::Blocked
3513
+ } else {
3514
+ let handle = self
3515
+ .concurrent_state_mut(store)
3516
+ .get_mut(transmit_id)?
3517
+ .write_handle;
3518
+ self.wait_for_write(store, handle)?
3519
+ }
3520
+ } else {
3521
+ ReturnCode::Cancelled(0)
3522
+ };
3523
+
3524
+ let transmit = self.concurrent_state_mut(store).get_mut(transmit_id)?;
3525
+
3526
+ match &transmit.write {
3527
+ WriteState::GuestReady { .. } => {
3528
+ transmit.write = WriteState::Open;
3529
+ }
3530
+ WriteState::HostReady { .. } => todo!("support host write cancellation"),
3531
+ WriteState::Open | WriteState::Dropped => {}
3532
+ }
3533
+
3534
+ log::trace!("cancelled write {transmit_id:?}: {code:?}");
3535
+
3536
+ Ok(code)
3537
+ }
3538
+
3539
+ fn wait_for_read(
3540
+ self,
3541
+ store: &mut dyn VMStore,
3542
+ handle: TableId<TransmitHandle>,
3543
+ ) -> Result<ReturnCode> {
3544
+ let waitable = Waitable::Transmit(handle);
3545
+ self.wait_for_event(store, waitable)?;
3546
+ let event = waitable.take_event(self.concurrent_state_mut(store))?;
3547
+ if let Some(event @ (Event::StreamRead { code, .. } | Event::FutureRead { code, .. })) =
3548
+ event
3549
+ {
3550
+ waitable.on_delivery(self.id().get_mut(store), event);
3551
+ Ok(code)
3552
+ } else {
3553
+ unreachable!()
3554
+ }
3555
+ }
3556
+
3557
+ /// Cancel a pending stream or future read.
3558
+ fn cancel_read(
3559
+ self,
3560
+ store: &mut dyn VMStore,
3561
+ transmit_id: TableId<TransmitState>,
3562
+ async_: bool,
3563
+ ) -> Result<ReturnCode> {
3564
+ let state = self.concurrent_state_mut(store);
3565
+ let transmit = state.get_mut(transmit_id)?;
3566
+ log::trace!(
3567
+ "host_cancel_read state {transmit_id:?}; read state {:?} write state {:?}",
3568
+ transmit.read,
3569
+ transmit.write
3570
+ );
3571
+
3572
+ let code = if let Some(event) =
3573
+ Waitable::Transmit(transmit.read_handle).take_event(state)?
3574
+ {
3575
+ let (Event::FutureRead { code, .. } | Event::StreamRead { code, .. }) = event else {
3576
+ unreachable!();
3577
+ };
3578
+ match (code, event) {
3579
+ (ReturnCode::Completed(count), Event::StreamRead { .. }) => {
3580
+ ReturnCode::Cancelled(count)
3581
+ }
3582
+ (ReturnCode::Dropped(_) | ReturnCode::Completed(_), _) => code,
3583
+ _ => unreachable!(),
3584
+ }
3585
+ } else if let WriteState::HostReady {
3586
+ cancel,
3587
+ cancel_waker,
3588
+ ..
3589
+ } = &mut state.get_mut(transmit_id)?.write
3590
+ {
3591
+ *cancel = true;
3592
+ if let Some(waker) = cancel_waker.take() {
3593
+ waker.wake();
3594
+ }
3595
+
3596
+ if async_ {
3597
+ ReturnCode::Blocked
3598
+ } else {
3599
+ let handle = self
3600
+ .concurrent_state_mut(store)
3601
+ .get_mut(transmit_id)?
3602
+ .read_handle;
3603
+ self.wait_for_read(store, handle)?
3604
+ }
3605
+ } else {
3606
+ ReturnCode::Cancelled(0)
3607
+ };
3608
+
3609
+ let transmit = self.concurrent_state_mut(store).get_mut(transmit_id)?;
3610
+
3611
+ match &transmit.read {
3612
+ ReadState::GuestReady { .. } => {
3613
+ transmit.read = ReadState::Open;
3614
+ }
3615
+ ReadState::HostReady { .. } | ReadState::HostToHost { .. } => {
3616
+ todo!("support host read cancellation")
3617
+ }
3618
+ ReadState::Open | ReadState::Dropped => {}
3619
+ }
3620
+
3621
+ log::trace!("cancelled read {transmit_id:?}: {code:?}");
3622
+
3623
+ Ok(code)
3624
+ }
3625
+
3626
+ /// Cancel a pending write for the specified stream or future from the guest.
3627
+ fn guest_cancel_write(
3628
+ self,
3629
+ store: &mut dyn VMStore,
3630
+ ty: TransmitIndex,
3631
+ async_: bool,
3632
+ writer: u32,
3633
+ ) -> Result<ReturnCode> {
3634
+ let (rep, state) =
3635
+ get_mut_by_index_from(self.id().get_mut(store).table_for_transmit(ty), ty, writer)?;
3636
+ let id = TableId::<TransmitHandle>::new(rep);
3637
+ log::trace!("guest cancel write {id:?} (handle {writer})");
3638
+ match state {
3639
+ TransmitLocalState::Write { .. } => {
3640
+ bail!("stream or future write cancelled when no write is pending")
3641
+ }
3642
+ TransmitLocalState::Read { .. } => {
3643
+ bail!("passed read end to `{{stream|future}}.cancel-write`")
3644
+ }
3645
+ TransmitLocalState::Busy => {}
3646
+ }
3647
+ let transmit_id = self.concurrent_state_mut(store).get_mut(id)?.state;
3648
+ let code = self.cancel_write(store, transmit_id, async_)?;
3649
+ if !matches!(code, ReturnCode::Blocked) {
3650
+ let state =
3651
+ get_mut_by_index_from(self.id().get_mut(store).table_for_transmit(ty), ty, writer)?
3652
+ .1;
3653
+ if let TransmitLocalState::Busy = state {
3654
+ *state = TransmitLocalState::Write { done: false };
3655
+ }
3656
+ }
3657
+ Ok(code)
3658
+ }
3659
+
3660
+ /// Cancel a pending read for the specified stream or future from the guest.
3661
+ fn guest_cancel_read(
3662
+ self,
3663
+ store: &mut dyn VMStore,
3664
+ ty: TransmitIndex,
3665
+ async_: bool,
3666
+ reader: u32,
3667
+ ) -> Result<ReturnCode> {
3668
+ let (rep, state) =
3669
+ get_mut_by_index_from(self.id().get_mut(store).table_for_transmit(ty), ty, reader)?;
3670
+ let id = TableId::<TransmitHandle>::new(rep);
3671
+ log::trace!("guest cancel read {id:?} (handle {reader})");
3672
+ match state {
3673
+ TransmitLocalState::Read { .. } => {
3674
+ bail!("stream or future read cancelled when no read is pending")
3675
+ }
3676
+ TransmitLocalState::Write { .. } => {
3677
+ bail!("passed write end to `{{stream|future}}.cancel-read`")
3678
+ }
3679
+ TransmitLocalState::Busy => {}
3680
+ }
3681
+ let transmit_id = self.concurrent_state_mut(store).get_mut(id)?.state;
3682
+ let code = self.cancel_read(store, transmit_id, async_)?;
3683
+ if !matches!(code, ReturnCode::Blocked) {
3684
+ let state =
3685
+ get_mut_by_index_from(self.id().get_mut(store).table_for_transmit(ty), ty, reader)?
3686
+ .1;
3687
+ if let TransmitLocalState::Busy = state {
3688
+ *state = TransmitLocalState::Read { done: false };
3689
+ }
3690
+ }
3691
+ Ok(code)
3692
+ }
3693
+
3694
+ /// Drop the readable end of the specified stream or future from the guest.
3695
+ fn guest_drop_readable(
3696
+ self,
3697
+ store: &mut dyn VMStore,
3698
+ ty: TransmitIndex,
3699
+ reader: u32,
3700
+ ) -> Result<()> {
3701
+ let table = self.id().get_mut(store).table_for_transmit(ty);
3702
+ let (rep, _is_done) = match ty {
3703
+ TransmitIndex::Stream(ty) => table.stream_remove_readable(ty, reader)?,
3704
+ TransmitIndex::Future(ty) => table.future_remove_readable(ty, reader)?,
3705
+ };
3706
+ let kind = match ty {
3707
+ TransmitIndex::Stream(_) => TransmitKind::Stream,
3708
+ TransmitIndex::Future(_) => TransmitKind::Future,
3709
+ };
3710
+ let id = TableId::<TransmitHandle>::new(rep);
3711
+ log::trace!("guest_drop_readable: drop reader {id:?}");
3712
+ self.host_drop_reader(store, id, kind)
3713
+ }
3714
+
3715
+ /// Create a new error context for the given component.
3716
+ pub(crate) fn error_context_new(
3717
+ self,
3718
+ store: &mut StoreOpaque,
3719
+ caller: RuntimeComponentInstanceIndex,
3720
+ ty: TypeComponentLocalErrorContextTableIndex,
3721
+ options: OptionsIndex,
3722
+ debug_msg_address: u32,
3723
+ debug_msg_len: u32,
3724
+ ) -> Result<u32> {
3725
+ self.id().get(store).check_may_leave(caller)?;
3726
+ let options = Options::new_index(store, self, options);
3727
+ let lift_ctx = &mut LiftContext::new(store, &options, self);
3728
+ // Read string from guest memory
3729
+ let address = usize::try_from(debug_msg_address)?;
3730
+ let len = usize::try_from(debug_msg_len)?;
3731
+ lift_ctx
3732
+ .memory()
3733
+ .get(address..)
3734
+ .and_then(|b| b.get(..len))
3735
+ .ok_or_else(|| anyhow::anyhow!("invalid debug message pointer: out of bounds"))?;
3736
+ let message = WasmStr::new(address, len, lift_ctx)?;
3737
+
3738
+ // Create a new ErrorContext that is tracked along with other concurrent state
3739
+ let err_ctx = ErrorContextState {
3740
+ debug_msg: message
3741
+ .to_str_from_memory(options.memory(store))?
3742
+ .to_string(),
3743
+ };
3744
+ let state = self.concurrent_state_mut(store);
3745
+ let table_id = state.push(err_ctx)?;
3746
+ let global_ref_count_idx =
3747
+ TypeComponentGlobalErrorContextTableIndex::from_u32(table_id.rep());
3748
+
3749
+ // Add to the global error context ref counts
3750
+ let _ = state
3751
+ .global_error_context_ref_counts
3752
+ .insert(global_ref_count_idx, GlobalErrorContextRefCount(1));
3753
+
3754
+ // Error context are tracked both locally (to a single component instance) and globally
3755
+ // the counts for both must stay in sync.
3756
+ //
3757
+ // Here we reflect the newly created global concurrent error context state into the
3758
+ // component instance's locally tracked count, along with the appropriate key into the global
3759
+ // ref tracking data structures to enable later lookup
3760
+ let local_idx = self
3761
+ .id()
3762
+ .get_mut(store)
3763
+ .table_for_error_context(ty)
3764
+ .error_context_insert(table_id.rep())?;
3765
+
3766
+ Ok(local_idx)
3767
+ }
3768
+
3769
+ /// Retrieve the debug message from the specified error context.
3770
+ pub(super) fn error_context_debug_message<T>(
3771
+ self,
3772
+ store: StoreContextMut<T>,
3773
+ ty: TypeComponentLocalErrorContextTableIndex,
3774
+ options: OptionsIndex,
3775
+ err_ctx_handle: u32,
3776
+ debug_msg_address: u32,
3777
+ ) -> Result<()> {
3778
+ // Retrieve the error context and internal debug message
3779
+ let handle_table_id_rep = self
3780
+ .id()
3781
+ .get_mut(store.0)
3782
+ .table_for_error_context(ty)
3783
+ .error_context_rep(err_ctx_handle)?;
3784
+
3785
+ let state = self.concurrent_state_mut(store.0);
3786
+ // Get the state associated with the error context
3787
+ let ErrorContextState { debug_msg } =
3788
+ state.get_mut(TableId::<ErrorContextState>::new(handle_table_id_rep))?;
3789
+ let debug_msg = debug_msg.clone();
3790
+
3791
+ let options = Options::new_index(store.0, self, options);
3792
+ let types = self.id().get(store.0).component().types().clone();
3793
+ let lower_cx = &mut LowerContext::new(store, &options, &types, self);
3794
+ let debug_msg_address = usize::try_from(debug_msg_address)?;
3795
+ // Lower the string into the component's memory
3796
+ let offset = lower_cx
3797
+ .as_slice_mut()
3798
+ .get(debug_msg_address..)
3799
+ .and_then(|b| b.get(..debug_msg.bytes().len()))
3800
+ .map(|_| debug_msg_address)
3801
+ .ok_or_else(|| anyhow::anyhow!("invalid debug message pointer: out of bounds"))?;
3802
+ debug_msg
3803
+ .as_str()
3804
+ .linear_lower_to_memory(lower_cx, InterfaceType::String, offset)?;
3805
+
3806
+ Ok(())
3807
+ }
3808
+
3809
+ /// Implements the `future.cancel-read` intrinsic.
3810
+ pub(crate) fn future_cancel_read(
3811
+ self,
3812
+ store: &mut dyn VMStore,
3813
+ caller: RuntimeComponentInstanceIndex,
3814
+ ty: TypeFutureTableIndex,
3815
+ async_: bool,
3816
+ reader: u32,
3817
+ ) -> Result<u32> {
3818
+ self.id().get(store).check_may_leave(caller)?;
3819
+ self.guest_cancel_read(store, TransmitIndex::Future(ty), async_, reader)
3820
+ .map(|v| v.encode())
3821
+ }
3822
+
3823
+ /// Implements the `future.cancel-write` intrinsic.
3824
+ pub(crate) fn future_cancel_write(
3825
+ self,
3826
+ store: &mut dyn VMStore,
3827
+ caller: RuntimeComponentInstanceIndex,
3828
+ ty: TypeFutureTableIndex,
3829
+ async_: bool,
3830
+ writer: u32,
3831
+ ) -> Result<u32> {
3832
+ self.id().get(store).check_may_leave(caller)?;
3833
+ self.guest_cancel_write(store, TransmitIndex::Future(ty), async_, writer)
3834
+ .map(|v| v.encode())
3835
+ }
3836
+
3837
+ /// Implements the `stream.cancel-read` intrinsic.
3838
+ pub(crate) fn stream_cancel_read(
3839
+ self,
3840
+ store: &mut dyn VMStore,
3841
+ caller: RuntimeComponentInstanceIndex,
3842
+ ty: TypeStreamTableIndex,
3843
+ async_: bool,
3844
+ reader: u32,
3845
+ ) -> Result<u32> {
3846
+ self.id().get(store).check_may_leave(caller)?;
3847
+ self.guest_cancel_read(store, TransmitIndex::Stream(ty), async_, reader)
3848
+ .map(|v| v.encode())
3849
+ }
3850
+
3851
+ /// Implements the `stream.cancel-write` intrinsic.
3852
+ pub(crate) fn stream_cancel_write(
3853
+ self,
3854
+ store: &mut dyn VMStore,
3855
+ caller: RuntimeComponentInstanceIndex,
3856
+ ty: TypeStreamTableIndex,
3857
+ async_: bool,
3858
+ writer: u32,
3859
+ ) -> Result<u32> {
3860
+ self.id().get(store).check_may_leave(caller)?;
3861
+ self.guest_cancel_write(store, TransmitIndex::Stream(ty), async_, writer)
3862
+ .map(|v| v.encode())
3863
+ }
3864
+
3865
+ /// Implements the `future.drop-readable` intrinsic.
3866
+ pub(crate) fn future_drop_readable(
3867
+ self,
3868
+ store: &mut dyn VMStore,
3869
+ caller: RuntimeComponentInstanceIndex,
3870
+ ty: TypeFutureTableIndex,
3871
+ reader: u32,
3872
+ ) -> Result<()> {
3873
+ self.id().get(store).check_may_leave(caller)?;
3874
+ self.guest_drop_readable(store, TransmitIndex::Future(ty), reader)
3875
+ }
3876
+
3877
+ /// Implements the `stream.drop-readable` intrinsic.
3878
+ pub(crate) fn stream_drop_readable(
3879
+ self,
3880
+ store: &mut dyn VMStore,
3881
+ caller: RuntimeComponentInstanceIndex,
3882
+ ty: TypeStreamTableIndex,
3883
+ reader: u32,
3884
+ ) -> Result<()> {
3885
+ self.id().get(store).check_may_leave(caller)?;
3886
+ self.guest_drop_readable(store, TransmitIndex::Stream(ty), reader)
3887
+ }
3888
+ }
3889
+
3890
+ impl ComponentInstance {
3891
+ fn table_for_transmit(self: Pin<&mut Self>, ty: TransmitIndex) -> &mut HandleTable {
3892
+ let (tables, types) = self.guest_tables();
3893
+ let runtime_instance = match ty {
3894
+ TransmitIndex::Stream(ty) => types[ty].instance,
3895
+ TransmitIndex::Future(ty) => types[ty].instance,
3896
+ };
3897
+ &mut tables[runtime_instance]
3898
+ }
3899
+
3900
+ fn table_for_error_context(
3901
+ self: Pin<&mut Self>,
3902
+ ty: TypeComponentLocalErrorContextTableIndex,
3903
+ ) -> &mut HandleTable {
3904
+ let (tables, types) = self.guest_tables();
3905
+ let runtime_instance = types[ty].instance;
3906
+ &mut tables[runtime_instance]
3907
+ }
3908
+
3909
+ fn get_mut_by_index(
3910
+ self: Pin<&mut Self>,
3911
+ ty: TransmitIndex,
3912
+ index: u32,
3913
+ ) -> Result<(u32, &mut TransmitLocalState)> {
3914
+ get_mut_by_index_from(self.table_for_transmit(ty), ty, index)
3915
+ }
3916
+
3917
+ /// Allocate a new future or stream and grant ownership of both the read and
3918
+ /// write ends to the (sub-)component instance to which the specified
3919
+ /// `TransmitIndex` belongs.
3920
+ fn guest_new(mut self: Pin<&mut Self>, ty: TransmitIndex) -> Result<ResourcePair> {
3921
+ let (write, read) = self.as_mut().concurrent_state_mut().new_transmit()?;
3922
+
3923
+ let table = self.as_mut().table_for_transmit(ty);
3924
+ let (read_handle, write_handle) = match ty {
3925
+ TransmitIndex::Future(ty) => (
3926
+ table.future_insert_read(ty, read.rep())?,
3927
+ table.future_insert_write(ty, write.rep())?,
3928
+ ),
3929
+ TransmitIndex::Stream(ty) => (
3930
+ table.stream_insert_read(ty, read.rep())?,
3931
+ table.stream_insert_write(ty, write.rep())?,
3932
+ ),
3933
+ };
3934
+
3935
+ let state = self.as_mut().concurrent_state_mut();
3936
+ state.get_mut(read)?.common.handle = Some(read_handle);
3937
+ state.get_mut(write)?.common.handle = Some(write_handle);
3938
+
3939
+ Ok(ResourcePair {
3940
+ write: write_handle,
3941
+ read: read_handle,
3942
+ })
3943
+ }
3944
+
3945
+ /// Drop the specified error context.
3946
+ pub(crate) fn error_context_drop(
3947
+ mut self: Pin<&mut Self>,
3948
+ caller: RuntimeComponentInstanceIndex,
3949
+ ty: TypeComponentLocalErrorContextTableIndex,
3950
+ error_context: u32,
3951
+ ) -> Result<()> {
3952
+ self.check_may_leave(caller)?;
3953
+
3954
+ let local_handle_table = self.as_mut().table_for_error_context(ty);
3955
+
3956
+ let rep = local_handle_table.error_context_drop(error_context)?;
3957
+
3958
+ let global_ref_count_idx = TypeComponentGlobalErrorContextTableIndex::from_u32(rep);
3959
+
3960
+ let state = self.concurrent_state_mut();
3961
+ let GlobalErrorContextRefCount(global_ref_count) = state
3962
+ .global_error_context_ref_counts
3963
+ .get_mut(&global_ref_count_idx)
3964
+ .expect("retrieve concurrent state for error context during drop");
3965
+
3966
+ // Reduce the component-global ref count, removing tracking if necessary
3967
+ assert!(*global_ref_count >= 1);
3968
+ *global_ref_count -= 1;
3969
+ if *global_ref_count == 0 {
3970
+ state
3971
+ .global_error_context_ref_counts
3972
+ .remove(&global_ref_count_idx);
3973
+
3974
+ state
3975
+ .delete(TableId::<ErrorContextState>::new(rep))
3976
+ .context("deleting component-global error context data")?;
3977
+ }
3978
+
3979
+ Ok(())
3980
+ }
3981
+
3982
+ /// Transfer ownership of the specified stream or future read end from one
3983
+ /// guest to another.
3984
+ fn guest_transfer(
3985
+ mut self: Pin<&mut Self>,
3986
+ src_idx: u32,
3987
+ src: TransmitIndex,
3988
+ dst: TransmitIndex,
3989
+ ) -> Result<u32> {
3990
+ let src_table = self.as_mut().table_for_transmit(src);
3991
+ let (rep, is_done) = match src {
3992
+ TransmitIndex::Future(idx) => src_table.future_remove_readable(idx, src_idx)?,
3993
+ TransmitIndex::Stream(idx) => src_table.stream_remove_readable(idx, src_idx)?,
3994
+ };
3995
+ if is_done {
3996
+ bail!("cannot lift after being notified that the writable end dropped");
3997
+ }
3998
+ let dst_table = self.as_mut().table_for_transmit(dst);
3999
+ let handle = match dst {
4000
+ TransmitIndex::Future(idx) => dst_table.future_insert_read(idx, rep),
4001
+ TransmitIndex::Stream(idx) => dst_table.stream_insert_read(idx, rep),
4002
+ }?;
4003
+ self.concurrent_state_mut()
4004
+ .get_mut(TableId::<TransmitHandle>::new(rep))?
4005
+ .common
4006
+ .handle = Some(handle);
4007
+ Ok(handle)
4008
+ }
4009
+
4010
+ /// Implements the `future.new` intrinsic.
4011
+ pub(crate) fn future_new(
4012
+ self: Pin<&mut Self>,
4013
+ caller: RuntimeComponentInstanceIndex,
4014
+ ty: TypeFutureTableIndex,
4015
+ ) -> Result<ResourcePair> {
4016
+ self.check_may_leave(caller)?;
4017
+ self.guest_new(TransmitIndex::Future(ty))
4018
+ }
4019
+
4020
+ /// Implements the `stream.new` intrinsic.
4021
+ pub(crate) fn stream_new(
4022
+ self: Pin<&mut Self>,
4023
+ caller: RuntimeComponentInstanceIndex,
4024
+ ty: TypeStreamTableIndex,
4025
+ ) -> Result<ResourcePair> {
4026
+ self.check_may_leave(caller)?;
4027
+ self.guest_new(TransmitIndex::Stream(ty))
4028
+ }
4029
+
4030
+ /// Transfer ownership of the specified future read end from one guest to
4031
+ /// another.
4032
+ pub(crate) fn future_transfer(
4033
+ self: Pin<&mut Self>,
4034
+ src_idx: u32,
4035
+ src: TypeFutureTableIndex,
4036
+ dst: TypeFutureTableIndex,
4037
+ ) -> Result<u32> {
4038
+ self.guest_transfer(
4039
+ src_idx,
4040
+ TransmitIndex::Future(src),
4041
+ TransmitIndex::Future(dst),
4042
+ )
4043
+ }
4044
+
4045
+ /// Transfer ownership of the specified stream read end from one guest to
4046
+ /// another.
4047
+ pub(crate) fn stream_transfer(
4048
+ self: Pin<&mut Self>,
4049
+ src_idx: u32,
4050
+ src: TypeStreamTableIndex,
4051
+ dst: TypeStreamTableIndex,
4052
+ ) -> Result<u32> {
4053
+ self.guest_transfer(
4054
+ src_idx,
4055
+ TransmitIndex::Stream(src),
4056
+ TransmitIndex::Stream(dst),
4057
+ )
4058
+ }
4059
+
4060
+ /// Copy the specified error context from one component to another.
4061
+ pub(crate) fn error_context_transfer(
4062
+ mut self: Pin<&mut Self>,
4063
+ src_idx: u32,
4064
+ src: TypeComponentLocalErrorContextTableIndex,
4065
+ dst: TypeComponentLocalErrorContextTableIndex,
4066
+ ) -> Result<u32> {
4067
+ let rep = self
4068
+ .as_mut()
4069
+ .table_for_error_context(src)
4070
+ .error_context_rep(src_idx)?;
4071
+ let dst_idx = self
4072
+ .as_mut()
4073
+ .table_for_error_context(dst)
4074
+ .error_context_insert(rep)?;
4075
+
4076
+ // Update the global (cross-subcomponent) count for error contexts
4077
+ // as the new component has essentially created a new reference that will
4078
+ // be dropped/handled independently
4079
+ let global_ref_count = self
4080
+ .concurrent_state_mut()
4081
+ .global_error_context_ref_counts
4082
+ .get_mut(&TypeComponentGlobalErrorContextTableIndex::from_u32(rep))
4083
+ .context("global ref count present for existing (sub)component error context")?;
4084
+ global_ref_count.0 += 1;
4085
+
4086
+ Ok(dst_idx)
4087
+ }
4088
+ }
4089
+
4090
+ impl ConcurrentState {
4091
+ fn send_write_result(
4092
+ &mut self,
4093
+ ty: TransmitIndex,
4094
+ id: TableId<TransmitState>,
4095
+ handle: u32,
4096
+ code: ReturnCode,
4097
+ ) -> Result<()> {
4098
+ let write_handle = self.get_mut(id)?.write_handle.rep();
4099
+ self.set_event(
4100
+ write_handle,
4101
+ match ty {
4102
+ TransmitIndex::Future(ty) => Event::FutureWrite {
4103
+ code,
4104
+ pending: Some((ty, handle)),
4105
+ },
4106
+ TransmitIndex::Stream(ty) => Event::StreamWrite {
4107
+ code,
4108
+ pending: Some((ty, handle)),
4109
+ },
4110
+ },
4111
+ )
4112
+ }
4113
+
4114
+ fn send_read_result(
4115
+ &mut self,
4116
+ ty: TransmitIndex,
4117
+ id: TableId<TransmitState>,
4118
+ handle: u32,
4119
+ code: ReturnCode,
4120
+ ) -> Result<()> {
4121
+ let read_handle = self.get_mut(id)?.read_handle.rep();
4122
+ self.set_event(
4123
+ read_handle,
4124
+ match ty {
4125
+ TransmitIndex::Future(ty) => Event::FutureRead {
4126
+ code,
4127
+ pending: Some((ty, handle)),
4128
+ },
4129
+ TransmitIndex::Stream(ty) => Event::StreamRead {
4130
+ code,
4131
+ pending: Some((ty, handle)),
4132
+ },
4133
+ },
4134
+ )
4135
+ }
4136
+
4137
+ fn take_event(&mut self, waitable: u32) -> Result<Option<Event>> {
4138
+ Waitable::Transmit(TableId::<TransmitHandle>::new(waitable)).take_event(self)
4139
+ }
4140
+
4141
+ fn set_event(&mut self, waitable: u32, event: Event) -> Result<()> {
4142
+ Waitable::Transmit(TableId::<TransmitHandle>::new(waitable)).set_event(self, Some(event))
4143
+ }
4144
+
4145
+ /// Set or update the event for the specified waitable.
4146
+ ///
4147
+ /// If there is already an event set for this waitable, we assert that it is
4148
+ /// of the same variant as the new one and reuse the `ReturnCode` count and
4149
+ /// the `pending` field if applicable.
4150
+ // TODO: This is a bit awkward due to how
4151
+ // `Event::{Stream,Future}{Write,Read}` and
4152
+ // `ReturnCode::{Completed,Dropped,Cancelled}` are currently represented.
4153
+ // Consider updating those representations in a way that allows this
4154
+ // function to be simplified.
4155
+ fn update_event(&mut self, waitable: u32, event: Event) -> Result<()> {
4156
+ let waitable = Waitable::Transmit(TableId::<TransmitHandle>::new(waitable));
4157
+
4158
+ fn update_code(old: ReturnCode, new: ReturnCode) -> ReturnCode {
4159
+ let (ReturnCode::Completed(count)
4160
+ | ReturnCode::Dropped(count)
4161
+ | ReturnCode::Cancelled(count)) = old
4162
+ else {
4163
+ unreachable!()
4164
+ };
4165
+
4166
+ match new {
4167
+ ReturnCode::Dropped(0) => ReturnCode::Dropped(count),
4168
+ ReturnCode::Cancelled(0) => ReturnCode::Cancelled(count),
4169
+ _ => unreachable!(),
4170
+ }
4171
+ }
4172
+
4173
+ let event = match (waitable.take_event(self)?, event) {
4174
+ (None, _) => event,
4175
+ (Some(old @ Event::FutureWrite { .. }), Event::FutureWrite { .. }) => old,
4176
+ (Some(old @ Event::FutureRead { .. }), Event::FutureRead { .. }) => old,
4177
+ (
4178
+ Some(Event::StreamWrite {
4179
+ code: old_code,
4180
+ pending: old_pending,
4181
+ }),
4182
+ Event::StreamWrite { code, pending },
4183
+ ) => Event::StreamWrite {
4184
+ code: update_code(old_code, code),
4185
+ pending: old_pending.or(pending),
4186
+ },
4187
+ (
4188
+ Some(Event::StreamRead {
4189
+ code: old_code,
4190
+ pending: old_pending,
4191
+ }),
4192
+ Event::StreamRead { code, pending },
4193
+ ) => Event::StreamRead {
4194
+ code: update_code(old_code, code),
4195
+ pending: old_pending.or(pending),
4196
+ },
4197
+ _ => unreachable!(),
4198
+ };
4199
+
4200
+ waitable.set_event(self, Some(event))
4201
+ }
4202
+
4203
+ /// Allocate a new future or stream, including the `TransmitState` and the
4204
+ /// `TransmitHandle`s corresponding to the read and write ends.
4205
+ fn new_transmit(&mut self) -> Result<(TableId<TransmitHandle>, TableId<TransmitHandle>)> {
4206
+ let state_id = self.push(TransmitState::default())?;
4207
+
4208
+ let write = self.push(TransmitHandle::new(state_id))?;
4209
+ let read = self.push(TransmitHandle::new(state_id))?;
4210
+
4211
+ let state = self.get_mut(state_id)?;
4212
+ state.write_handle = write;
4213
+ state.read_handle = read;
4214
+
4215
+ log::trace!("new transmit: state {state_id:?}; write {write:?}; read {read:?}",);
4216
+
4217
+ Ok((write, read))
4218
+ }
4219
+
4220
+ /// Delete the specified future or stream, including the read and write ends.
4221
+ fn delete_transmit(&mut self, state_id: TableId<TransmitState>) -> Result<()> {
4222
+ let state = self.delete(state_id)?;
4223
+ self.delete(state.write_handle)?;
4224
+ self.delete(state.read_handle)?;
4225
+
4226
+ log::trace!(
4227
+ "delete transmit: state {state_id:?}; write {:?}; read {:?}",
4228
+ state.write_handle,
4229
+ state.read_handle,
4230
+ );
4231
+
4232
+ Ok(())
4233
+ }
4234
+ }
4235
+
4236
+ pub(crate) struct ResourcePair {
4237
+ pub(crate) write: u32,
4238
+ pub(crate) read: u32,
4239
+ }
4240
+
4241
+ #[cfg(test)]
4242
+ mod tests {
4243
+ use super::*;
4244
+ use crate::{Engine, Store};
4245
+ use core::future::pending;
4246
+ use core::pin::pin;
4247
+ use std::sync::LazyLock;
4248
+
4249
+ static ENGINE: LazyLock<Engine> = LazyLock::new(Engine::default);
4250
+
4251
+ fn poll_future_producer<T>(rx: Pin<&mut T>, finish: bool) -> Poll<Result<Option<T::Item>>>
4252
+ where
4253
+ T: FutureProducer<()>,
4254
+ {
4255
+ rx.poll_produce(
4256
+ &mut Context::from_waker(Waker::noop()),
4257
+ Store::new(&ENGINE, ()).as_context_mut(),
4258
+ finish,
4259
+ )
4260
+ }
4261
+
4262
+ #[test]
4263
+ fn future_producer() {
4264
+ let mut fut = pin!(async { anyhow::Ok(()) });
4265
+ assert!(matches!(
4266
+ poll_future_producer(fut.as_mut(), false),
4267
+ Poll::Ready(Ok(Some(()))),
4268
+ ));
4269
+
4270
+ let mut fut = pin!(async { anyhow::Ok(()) });
4271
+ assert!(matches!(
4272
+ poll_future_producer(fut.as_mut(), true),
4273
+ Poll::Ready(Ok(Some(()))),
4274
+ ));
4275
+
4276
+ let mut fut = pin!(pending::<Result<()>>());
4277
+ assert!(matches!(
4278
+ poll_future_producer(fut.as_mut(), false),
4279
+ Poll::Pending,
4280
+ ));
4281
+ assert!(matches!(
4282
+ poll_future_producer(fut.as_mut(), true),
4283
+ Poll::Ready(Ok(None)),
4284
+ ));
4285
+
4286
+ let (tx, rx) = oneshot::channel();
4287
+ let mut rx = pin!(rx);
4288
+ assert!(matches!(
4289
+ poll_future_producer(rx.as_mut(), false),
4290
+ Poll::Pending,
4291
+ ));
4292
+ assert!(matches!(
4293
+ poll_future_producer(rx.as_mut(), true),
4294
+ Poll::Ready(Ok(None)),
4295
+ ));
4296
+ tx.send(()).unwrap();
4297
+ assert!(matches!(
4298
+ poll_future_producer(rx.as_mut(), true),
4299
+ Poll::Ready(Ok(Some(()))),
4300
+ ));
4301
+
4302
+ let (tx, rx) = oneshot::channel();
4303
+ let mut rx = pin!(rx);
4304
+ tx.send(()).unwrap();
4305
+ assert!(matches!(
4306
+ poll_future_producer(rx.as_mut(), false),
4307
+ Poll::Ready(Ok(Some(()))),
4308
+ ));
4309
+
4310
+ let (tx, rx) = oneshot::channel::<()>();
4311
+ let mut rx = pin!(rx);
4312
+ drop(tx);
4313
+ assert!(matches!(
4314
+ poll_future_producer(rx.as_mut(), false),
4315
+ Poll::Ready(Err(..)),
4316
+ ));
4317
+
4318
+ let (tx, rx) = oneshot::channel::<()>();
4319
+ let mut rx = pin!(rx);
4320
+ drop(tx);
4321
+ assert!(matches!(
4322
+ poll_future_producer(rx.as_mut(), true),
4323
+ Poll::Ready(Err(..)),
4324
+ ));
4325
+ }
4326
+ }