html-to-markdown 2.24.4 → 2.24.6

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 (2165) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +6 -6
  3. data/README.md +1 -1
  4. data/ext/html-to-markdown-rb/native/Cargo.lock +254 -47
  5. data/ext/html-to-markdown-rb/native/Cargo.toml +1 -1
  6. data/lib/html_to_markdown/version.rb +1 -1
  7. data/rust-vendor/anyhow/.cargo-checksum.json +1 -0
  8. data/rust-vendor/anyhow/.cargo_vcs_info.json +6 -0
  9. data/rust-vendor/anyhow/.github/FUNDING.yml +1 -0
  10. data/rust-vendor/anyhow/.github/workflows/ci.yml +147 -0
  11. data/rust-vendor/anyhow/Cargo.lock +424 -0
  12. data/rust-vendor/anyhow/Cargo.toml +132 -0
  13. data/rust-vendor/anyhow/Cargo.toml.orig +40 -0
  14. data/rust-vendor/anyhow/LICENSE-APACHE +176 -0
  15. data/rust-vendor/anyhow/LICENSE-MIT +23 -0
  16. data/rust-vendor/anyhow/README.md +179 -0
  17. data/rust-vendor/anyhow/build.rs +207 -0
  18. data/rust-vendor/anyhow/rust-toolchain.toml +2 -0
  19. data/rust-vendor/anyhow/src/backtrace.rs +410 -0
  20. data/rust-vendor/anyhow/src/chain.rs +102 -0
  21. data/rust-vendor/anyhow/src/context.rs +193 -0
  22. data/rust-vendor/anyhow/src/ensure.rs +935 -0
  23. data/rust-vendor/anyhow/src/error.rs +1086 -0
  24. data/rust-vendor/anyhow/src/fmt.rs +158 -0
  25. data/rust-vendor/anyhow/src/kind.rs +121 -0
  26. data/rust-vendor/anyhow/src/lib.rs +728 -0
  27. data/rust-vendor/anyhow/src/macros.rs +245 -0
  28. data/rust-vendor/anyhow/src/nightly.rs +58 -0
  29. data/rust-vendor/anyhow/src/ptr.rs +187 -0
  30. data/rust-vendor/anyhow/src/wrapper.rs +84 -0
  31. data/rust-vendor/anyhow/tests/common/mod.rs +14 -0
  32. data/rust-vendor/anyhow/tests/compiletest.rs +7 -0
  33. data/rust-vendor/anyhow/tests/drop/mod.rs +53 -0
  34. data/rust-vendor/anyhow/tests/test_autotrait.rs +34 -0
  35. data/rust-vendor/anyhow/tests/test_backtrace.rs +15 -0
  36. data/rust-vendor/anyhow/tests/test_boxed.rs +45 -0
  37. data/rust-vendor/anyhow/tests/test_chain.rs +69 -0
  38. data/rust-vendor/anyhow/tests/test_context.rs +172 -0
  39. data/rust-vendor/anyhow/tests/test_convert.rs +46 -0
  40. data/rust-vendor/anyhow/tests/test_downcast.rs +123 -0
  41. data/rust-vendor/anyhow/tests/test_ensure.rs +756 -0
  42. data/rust-vendor/anyhow/tests/test_ffi.rs +19 -0
  43. data/rust-vendor/anyhow/tests/test_fmt.rs +93 -0
  44. data/rust-vendor/anyhow/tests/test_macros.rs +97 -0
  45. data/rust-vendor/anyhow/tests/test_repr.rs +30 -0
  46. data/rust-vendor/anyhow/tests/test_source.rs +62 -0
  47. data/rust-vendor/anyhow/tests/ui/chained-comparison.rs +8 -0
  48. data/rust-vendor/anyhow/tests/ui/chained-comparison.stderr +10 -0
  49. data/rust-vendor/anyhow/tests/ui/empty-ensure.rs +6 -0
  50. data/rust-vendor/anyhow/tests/ui/empty-ensure.stderr +12 -0
  51. data/rust-vendor/anyhow/tests/ui/ensure-nonbool.rs +40 -0
  52. data/rust-vendor/anyhow/tests/ui/ensure-nonbool.stderr +113 -0
  53. data/rust-vendor/anyhow/tests/ui/must-use.rs +11 -0
  54. data/rust-vendor/anyhow/tests/ui/must-use.stderr +15 -0
  55. data/rust-vendor/anyhow/tests/ui/no-impl.rs +8 -0
  56. data/rust-vendor/anyhow/tests/ui/no-impl.stderr +32 -0
  57. data/rust-vendor/anyhow/tests/ui/temporary-value.rs +5 -0
  58. data/rust-vendor/anyhow/tests/ui/temporary-value.stderr +15 -0
  59. data/rust-vendor/anyhow/tests/ui/wrong-interpolation.rs +5 -0
  60. data/rust-vendor/anyhow/tests/ui/wrong-interpolation.stderr +5 -0
  61. data/rust-vendor/bitflags/.cargo-checksum.json +1 -1
  62. data/rust-vendor/bitflags/.cargo_vcs_info.json +1 -1
  63. data/rust-vendor/bitflags/CHANGELOG.md +12 -0
  64. data/rust-vendor/bitflags/Cargo.lock +48 -48
  65. data/rust-vendor/bitflags/Cargo.toml +1 -1
  66. data/rust-vendor/bitflags/Cargo.toml.orig +1 -1
  67. data/rust-vendor/bitflags/README.md +1 -1
  68. data/rust-vendor/bitflags/src/external.rs +1 -1
  69. data/rust-vendor/bitflags/src/lib.rs +1 -1
  70. data/rust-vendor/bitflags/src/tests/known_bits.rs +47 -0
  71. data/rust-vendor/bitflags/src/tests/unknown_bits.rs +53 -0
  72. data/rust-vendor/bitflags/src/tests.rs +2 -0
  73. data/rust-vendor/bitflags/src/traits.rs +11 -1
  74. data/rust-vendor/cc/.cargo-checksum.json +1 -1
  75. data/rust-vendor/cc/.cargo_vcs_info.json +1 -1
  76. data/rust-vendor/cc/CHANGELOG.md +7 -0
  77. data/rust-vendor/cc/Cargo.lock +331 -7
  78. data/rust-vendor/cc/Cargo.toml +1 -1
  79. data/rust-vendor/cc/Cargo.toml.orig +1 -1
  80. data/rust-vendor/cc/src/lib.rs +10 -13
  81. data/rust-vendor/cc/src/target/generated.rs +1 -0
  82. data/rust-vendor/cpp_demangle/.cargo-checksum.json +1 -1
  83. data/rust-vendor/cpp_demangle/.cargo_vcs_info.json +1 -1
  84. data/rust-vendor/cpp_demangle/CHANGELOG.md +55 -0
  85. data/rust-vendor/cpp_demangle/Cargo.lock +5 -5
  86. data/rust-vendor/cpp_demangle/Cargo.toml +2 -2
  87. data/rust-vendor/cpp_demangle/Cargo.toml.orig +2 -2
  88. data/rust-vendor/cpp_demangle/README.md +9 -9
  89. data/rust-vendor/cpp_demangle/build.rs +10 -9
  90. data/rust-vendor/cpp_demangle/examples/cppfilt.rs +1 -1
  91. data/rust-vendor/cpp_demangle/examples/simple.rs +1 -1
  92. data/rust-vendor/cpp_demangle/src/ast.rs +238 -36
  93. data/rust-vendor/cpp_demangle/src/lib.rs +31 -46
  94. data/rust-vendor/cpp_demangle/src/subs.rs +1 -1
  95. data/rust-vendor/flate2/.cargo-checksum.json +1 -1
  96. data/rust-vendor/flate2/.cargo_vcs_info.json +1 -1
  97. data/rust-vendor/flate2/Cargo.lock +3 -3
  98. data/rust-vendor/flate2/Cargo.toml +13 -2
  99. data/rust-vendor/flate2/Cargo.toml.orig +16 -13
  100. data/rust-vendor/flate2/LICENSE-MIT +1 -1
  101. data/rust-vendor/flate2/src/crc.rs +177 -42
  102. data/rust-vendor/flate2/src/gz/mod.rs +159 -0
  103. data/rust-vendor/foldhash-0.1.5/.cargo-checksum.json +1 -0
  104. data/rust-vendor/foldhash-0.1.5/.cargo_vcs_info.json +6 -0
  105. data/rust-vendor/foldhash-0.1.5/Cargo.lock +852 -0
  106. data/rust-vendor/foldhash-0.1.5/Cargo.toml +76 -0
  107. data/rust-vendor/foldhash-0.1.5/Cargo.toml.orig +44 -0
  108. data/rust-vendor/foldhash-0.1.5/LICENSE +19 -0
  109. data/rust-vendor/foldhash-0.1.5/README.md +277 -0
  110. data/rust-vendor/foldhash-0.1.5/src/convenience.rs +73 -0
  111. data/rust-vendor/foldhash-0.1.5/src/fast.rs +270 -0
  112. data/rust-vendor/foldhash-0.1.5/src/lib.rs +284 -0
  113. data/rust-vendor/foldhash-0.1.5/src/quality.rs +174 -0
  114. data/rust-vendor/foldhash-0.1.5/src/seed.rs +267 -0
  115. data/rust-vendor/getrandom/.cargo-checksum.json +1 -1
  116. data/rust-vendor/getrandom/.cargo_vcs_info.json +1 -1
  117. data/rust-vendor/getrandom/CHANGELOG.md +39 -1
  118. data/rust-vendor/getrandom/Cargo.lock +451 -60
  119. data/rust-vendor/getrandom/Cargo.toml +44 -5
  120. data/rust-vendor/getrandom/Cargo.toml.orig +45 -10
  121. data/rust-vendor/getrandom/LICENSE-MIT +1 -1
  122. data/rust-vendor/getrandom/README.md +72 -40
  123. data/rust-vendor/getrandom/benches/buffer.rs +10 -8
  124. data/rust-vendor/getrandom/build.rs +1 -47
  125. data/rust-vendor/getrandom/src/backends/custom.rs +1 -1
  126. data/rust-vendor/getrandom/src/backends/efi_rng.rs +1 -1
  127. data/rust-vendor/getrandom/src/backends/esp_idf.rs +1 -1
  128. data/rust-vendor/getrandom/src/backends/extern_impl.rs +19 -0
  129. data/rust-vendor/getrandom/src/backends/fuchsia.rs +1 -1
  130. data/rust-vendor/getrandom/src/backends/getentropy.rs +4 -3
  131. data/rust-vendor/getrandom/src/backends/getrandom.rs +4 -12
  132. data/rust-vendor/getrandom/src/backends/hermit.rs +1 -1
  133. data/rust-vendor/getrandom/src/backends/linux_android_with_fallback.rs +8 -10
  134. data/rust-vendor/getrandom/src/backends/linux_raw.rs +101 -75
  135. data/rust-vendor/getrandom/src/backends/netbsd.rs +3 -3
  136. data/rust-vendor/getrandom/src/backends/rdrand.rs +26 -13
  137. data/rust-vendor/getrandom/src/backends/rndr.rs +13 -11
  138. data/rust-vendor/getrandom/src/backends/solaris.rs +5 -4
  139. data/rust-vendor/getrandom/src/backends/solid.rs +1 -1
  140. data/rust-vendor/getrandom/src/backends/use_file.rs +17 -28
  141. data/rust-vendor/getrandom/src/backends/vxworks.rs +2 -4
  142. data/rust-vendor/getrandom/src/backends/wasi_p1.rs +1 -1
  143. data/rust-vendor/getrandom/src/backends/wasi_p2_3.rs +61 -0
  144. data/rust-vendor/getrandom/src/backends/wasm_js.rs +1 -1
  145. data/rust-vendor/getrandom/src/backends/windows.rs +7 -11
  146. data/rust-vendor/getrandom/src/backends/windows_legacy.rs +1 -1
  147. data/rust-vendor/getrandom/src/backends.rs +9 -28
  148. data/rust-vendor/getrandom/src/error.rs +39 -6
  149. data/rust-vendor/getrandom/src/error_std_impls.rs +1 -3
  150. data/rust-vendor/getrandom/src/lib.rs +39 -18
  151. data/rust-vendor/getrandom/src/sys_rng.rs +55 -0
  152. data/rust-vendor/getrandom/src/util.rs +3 -15
  153. data/rust-vendor/getrandom/src/utils/get_errno.rs +29 -0
  154. data/rust-vendor/getrandom/src/utils/lazy.rs +64 -0
  155. data/rust-vendor/getrandom/src/utils/sanitizer.rs +28 -0
  156. data/rust-vendor/getrandom/src/utils/sys_fill_exact.rs +41 -0
  157. data/rust-vendor/getrandom/tests/mod.rs +6 -94
  158. data/rust-vendor/getrandom/tests/sys_rng.rs +18 -0
  159. data/rust-vendor/getrandom-0.3.4/.cargo-checksum.json +1 -0
  160. data/rust-vendor/getrandom-0.3.4/.cargo_vcs_info.json +6 -0
  161. data/rust-vendor/getrandom-0.3.4/CHANGELOG.md +673 -0
  162. data/rust-vendor/getrandom-0.3.4/Cargo.lock +292 -0
  163. data/rust-vendor/getrandom-0.3.4/Cargo.toml +133 -0
  164. data/rust-vendor/getrandom-0.3.4/Cargo.toml.orig +100 -0
  165. data/rust-vendor/getrandom-0.3.4/LICENSE-APACHE +201 -0
  166. data/rust-vendor/getrandom-0.3.4/LICENSE-MIT +26 -0
  167. data/rust-vendor/getrandom-0.3.4/README.md +386 -0
  168. data/rust-vendor/getrandom-0.3.4/SECURITY.md +13 -0
  169. data/rust-vendor/getrandom-0.3.4/benches/buffer.rs +121 -0
  170. data/rust-vendor/getrandom-0.3.4/build.rs +57 -0
  171. data/rust-vendor/getrandom-0.3.4/src/backends/apple_other.rs +21 -0
  172. data/rust-vendor/getrandom-0.3.4/src/backends/custom.rs +13 -0
  173. data/rust-vendor/getrandom-0.3.4/src/backends/efi_rng.rs +124 -0
  174. data/rust-vendor/getrandom-0.3.4/src/backends/esp_idf.rs +21 -0
  175. data/rust-vendor/getrandom-0.3.4/src/backends/fuchsia.rs +16 -0
  176. data/rust-vendor/getrandom-0.3.4/src/backends/getentropy.rs +27 -0
  177. data/rust-vendor/getrandom-0.3.4/src/backends/getrandom.rs +39 -0
  178. data/rust-vendor/getrandom-0.3.4/src/backends/hermit.rs +53 -0
  179. data/rust-vendor/getrandom-0.3.4/src/backends/linux_android_with_fallback.rs +103 -0
  180. data/rust-vendor/getrandom-0.3.4/src/backends/linux_raw.rs +143 -0
  181. data/rust-vendor/getrandom-0.3.4/src/backends/netbsd.rs +78 -0
  182. data/rust-vendor/getrandom-0.3.4/src/backends/rdrand.rs +182 -0
  183. data/rust-vendor/getrandom-0.3.4/src/backends/rndr.rs +145 -0
  184. data/rust-vendor/getrandom-0.3.4/src/backends/solaris.rs +42 -0
  185. data/rust-vendor/getrandom-0.3.4/src/backends/solid.rs +19 -0
  186. data/rust-vendor/getrandom-0.3.4/src/backends/unsupported.rs +9 -0
  187. data/rust-vendor/getrandom-0.3.4/src/backends/use_file.rs +234 -0
  188. data/rust-vendor/getrandom-0.3.4/src/backends/vxworks.rs +54 -0
  189. data/rust-vendor/getrandom-0.3.4/src/backends/wasi_p1.rs +32 -0
  190. data/rust-vendor/getrandom-0.3.4/src/backends/wasm_js.rs +72 -0
  191. data/rust-vendor/getrandom-0.3.4/src/backends/windows.rs +61 -0
  192. data/rust-vendor/getrandom-0.3.4/src/backends/windows_legacy.rs +48 -0
  193. data/rust-vendor/getrandom-0.3.4/src/backends.rs +209 -0
  194. data/rust-vendor/getrandom-0.3.4/src/error.rs +212 -0
  195. data/rust-vendor/getrandom-0.3.4/src/error_std_impls.rs +15 -0
  196. data/rust-vendor/getrandom-0.3.4/src/lib.rs +138 -0
  197. data/rust-vendor/getrandom-0.3.4/src/util.rs +84 -0
  198. data/rust-vendor/getrandom-0.3.4/tests/mod.rs +297 -0
  199. data/rust-vendor/hashbrown-0.15.5/.cargo-checksum.json +1 -0
  200. data/rust-vendor/hashbrown-0.15.5/.cargo_vcs_info.json +6 -0
  201. data/rust-vendor/hashbrown-0.15.5/CHANGELOG.md +619 -0
  202. data/rust-vendor/hashbrown-0.15.5/Cargo.lock +306 -0
  203. data/rust-vendor/hashbrown-0.15.5/Cargo.toml +164 -0
  204. data/rust-vendor/hashbrown-0.15.5/Cargo.toml.orig +77 -0
  205. data/rust-vendor/hashbrown-0.15.5/Cross.toml +3 -0
  206. data/rust-vendor/hashbrown-0.15.5/LICENSE-APACHE +201 -0
  207. data/rust-vendor/hashbrown-0.15.5/LICENSE-MIT +25 -0
  208. data/rust-vendor/hashbrown-0.15.5/README.md +80 -0
  209. data/rust-vendor/hashbrown-0.15.5/benches/bench.rs +329 -0
  210. data/rust-vendor/hashbrown-0.15.5/benches/insert_unique_unchecked.rs +34 -0
  211. data/rust-vendor/hashbrown-0.15.5/benches/set_ops.rs +148 -0
  212. data/rust-vendor/hashbrown-0.15.5/clippy.toml +1 -0
  213. data/rust-vendor/hashbrown-0.15.5/src/control/bitmask.rs +117 -0
  214. data/rust-vendor/hashbrown-0.15.5/src/control/group/generic.rs +154 -0
  215. data/rust-vendor/hashbrown-0.15.5/src/control/group/lsx.rs +137 -0
  216. data/rust-vendor/hashbrown-0.15.5/src/control/group/mod.rs +43 -0
  217. data/rust-vendor/hashbrown-0.15.5/src/control/group/neon.rs +121 -0
  218. data/rust-vendor/hashbrown-0.15.5/src/control/group/sse2.rs +146 -0
  219. data/rust-vendor/hashbrown-0.15.5/src/control/mod.rs +10 -0
  220. data/rust-vendor/hashbrown-0.15.5/src/control/tag.rs +83 -0
  221. data/rust-vendor/hashbrown-0.15.5/src/external_trait_impls/mod.rs +4 -0
  222. data/rust-vendor/hashbrown-0.15.5/src/external_trait_impls/rayon/helpers.rs +27 -0
  223. data/rust-vendor/hashbrown-0.15.5/src/external_trait_impls/rayon/map.rs +721 -0
  224. data/rust-vendor/hashbrown-0.15.5/src/external_trait_impls/rayon/mod.rs +5 -0
  225. data/rust-vendor/hashbrown-0.15.5/src/external_trait_impls/rayon/raw.rs +230 -0
  226. data/rust-vendor/hashbrown-0.15.5/src/external_trait_impls/rayon/set.rs +659 -0
  227. data/rust-vendor/hashbrown-0.15.5/src/external_trait_impls/rayon/table.rs +249 -0
  228. data/rust-vendor/hashbrown-0.15.5/src/external_trait_impls/serde.rs +220 -0
  229. data/rust-vendor/hashbrown-0.15.5/src/lib.rs +188 -0
  230. data/rust-vendor/hashbrown-0.15.5/src/macros.rs +70 -0
  231. data/rust-vendor/hashbrown-0.15.5/src/map.rs +6583 -0
  232. data/rust-vendor/hashbrown-0.15.5/src/raw/alloc.rs +92 -0
  233. data/rust-vendor/hashbrown-0.15.5/src/raw/mod.rs +4436 -0
  234. data/rust-vendor/hashbrown-0.15.5/src/raw_entry.rs +1740 -0
  235. data/rust-vendor/hashbrown-0.15.5/src/rustc_entry.rs +567 -0
  236. data/rust-vendor/hashbrown-0.15.5/src/scopeguard.rs +72 -0
  237. data/rust-vendor/hashbrown-0.15.5/src/set.rs +3121 -0
  238. data/rust-vendor/hashbrown-0.15.5/src/table.rs +2380 -0
  239. data/rust-vendor/hashbrown-0.15.5/src/util.rs +38 -0
  240. data/rust-vendor/hashbrown-0.15.5/tests/equivalent_trait.rs +53 -0
  241. data/rust-vendor/hashbrown-0.15.5/tests/hasher.rs +65 -0
  242. data/rust-vendor/hashbrown-0.15.5/tests/rayon.rs +535 -0
  243. data/rust-vendor/hashbrown-0.15.5/tests/serde.rs +65 -0
  244. data/rust-vendor/hashbrown-0.15.5/tests/set.rs +34 -0
  245. data/rust-vendor/heck/.cargo-checksum.json +1 -0
  246. data/rust-vendor/heck/.cargo_vcs_info.json +6 -0
  247. data/rust-vendor/heck/CHANGELOG.md +25 -0
  248. data/rust-vendor/heck/Cargo.toml +34 -0
  249. data/rust-vendor/heck/Cargo.toml.orig +11 -0
  250. data/rust-vendor/heck/LICENSE-APACHE +201 -0
  251. data/rust-vendor/heck/LICENSE-MIT +25 -0
  252. data/rust-vendor/heck/README.md +53 -0
  253. data/rust-vendor/heck/src/kebab.rs +75 -0
  254. data/rust-vendor/heck/src/lib.rs +192 -0
  255. data/rust-vendor/heck/src/lower_camel.rs +88 -0
  256. data/rust-vendor/heck/src/shouty_kebab.rs +73 -0
  257. data/rust-vendor/heck/src/shouty_snake.rs +86 -0
  258. data/rust-vendor/heck/src/snake.rs +100 -0
  259. data/rust-vendor/heck/src/title.rs +75 -0
  260. data/rust-vendor/heck/src/train.rs +87 -0
  261. data/rust-vendor/heck/src/upper_camel.rs +88 -0
  262. data/rust-vendor/html-to-markdown-rs/src/converter/inline/semantic/typography.rs +32 -22
  263. data/rust-vendor/html-to-markdown-rs/tests/integration_test.rs +44 -0
  264. data/rust-vendor/id-arena/.cargo-checksum.json +1 -0
  265. data/rust-vendor/id-arena/.cargo_vcs_info.json +6 -0
  266. data/rust-vendor/id-arena/.travis.yml +22 -0
  267. data/rust-vendor/id-arena/CHANGELOG.md +71 -0
  268. data/rust-vendor/id-arena/Cargo.lock +61 -0
  269. data/rust-vendor/id-arena/Cargo.toml +54 -0
  270. data/rust-vendor/id-arena/Cargo.toml.orig +21 -0
  271. data/rust-vendor/id-arena/LICENSE-APACHE +201 -0
  272. data/rust-vendor/id-arena/LICENSE-MIT +25 -0
  273. data/rust-vendor/id-arena/README.md +101 -0
  274. data/rust-vendor/id-arena/README.tpl +3 -0
  275. data/rust-vendor/id-arena/src/lib.rs +726 -0
  276. data/rust-vendor/id-arena/src/rayon.rs +282 -0
  277. data/rust-vendor/id-arena/tests/readme_up_to_date.rs +22 -0
  278. data/rust-vendor/leb128fmt/.cargo-checksum.json +1 -0
  279. data/rust-vendor/leb128fmt/.cargo_vcs_info.json +6 -0
  280. data/rust-vendor/leb128fmt/CHANGELOG.md +11 -0
  281. data/rust-vendor/leb128fmt/Cargo.toml +55 -0
  282. data/rust-vendor/leb128fmt/Cargo.toml.orig +32 -0
  283. data/rust-vendor/leb128fmt/LICENSE-APACHE +201 -0
  284. data/rust-vendor/leb128fmt/LICENSE-MIT +23 -0
  285. data/rust-vendor/leb128fmt/README.md +162 -0
  286. data/rust-vendor/leb128fmt/src/lib.rs +1650 -0
  287. data/rust-vendor/libc/.cargo-checksum.json +1 -1
  288. data/rust-vendor/libc/.cargo_vcs_info.json +1 -1
  289. data/rust-vendor/libc/CHANGELOG.md +42 -0
  290. data/rust-vendor/libc/Cargo.lock +1 -1
  291. data/rust-vendor/libc/Cargo.toml +75 -51
  292. data/rust-vendor/libc/Cargo.toml.orig +85 -53
  293. data/rust-vendor/libc/LICENSE-MIT +1 -1
  294. data/rust-vendor/libc/src/fuchsia/mod.rs +12 -10
  295. data/rust-vendor/libc/src/macros.rs +63 -71
  296. data/rust-vendor/libc/src/new/linux_uapi/linux/can/error.rs +73 -0
  297. data/rust-vendor/libc/src/new/linux_uapi/linux/can.rs +1 -0
  298. data/rust-vendor/libc/src/new/mod.rs +3 -2
  299. data/rust-vendor/libc/src/new/qurt/dlfcn.rs +26 -0
  300. data/rust-vendor/libc/src/new/qurt/fcntl.rs +4 -1
  301. data/rust-vendor/libc/src/new/qurt/mod.rs +224 -14
  302. data/rust-vendor/libc/src/new/qurt/pthread.rs +1 -22
  303. data/rust-vendor/libc/src/new/qurt/signal.rs +54 -4
  304. data/rust-vendor/libc/src/new/qurt/stdio.rs +0 -5
  305. data/rust-vendor/libc/src/new/qurt/sys/mman.rs +55 -0
  306. data/rust-vendor/libc/src/new/qurt/sys/mod.rs +2 -0
  307. data/rust-vendor/libc/src/new/qurt/sys/sched.rs +24 -0
  308. data/rust-vendor/libc/src/new/qurt/sys/stat.rs +0 -6
  309. data/rust-vendor/libc/src/new/qurt/time.rs +4 -22
  310. data/rust-vendor/libc/src/new/qurt/unistd.rs +210 -20
  311. data/rust-vendor/libc/src/qurt/mod.rs +9 -325
  312. data/rust-vendor/libc/src/types.rs +2 -2
  313. data/rust-vendor/libc/src/unix/aix/mod.rs +11 -20
  314. data/rust-vendor/libc/src/unix/aix/powerpc64.rs +6 -6
  315. data/rust-vendor/libc/src/unix/bsd/apple/mod.rs +15 -0
  316. data/rust-vendor/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs +4 -4
  317. data/rust-vendor/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs +3 -3
  318. data/rust-vendor/libc/src/unix/bsd/freebsdlike/mod.rs +14 -0
  319. data/rust-vendor/libc/src/unix/bsd/mod.rs +0 -14
  320. data/rust-vendor/libc/src/unix/bsd/netbsdlike/mod.rs +6 -0
  321. data/rust-vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs +15 -7
  322. data/rust-vendor/libc/src/unix/bsd/netbsdlike/openbsd/mod.rs +41 -1
  323. data/rust-vendor/libc/src/unix/cygwin/mod.rs +2 -2
  324. data/rust-vendor/libc/src/unix/haiku/mod.rs +1 -1
  325. data/rust-vendor/libc/src/unix/haiku/x86_64.rs +2 -2
  326. data/rust-vendor/libc/src/unix/hurd/mod.rs +6 -6
  327. data/rust-vendor/libc/src/unix/linux_like/android/mod.rs +2 -0
  328. data/rust-vendor/libc/src/unix/linux_like/linux/gnu/mod.rs +3 -0
  329. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b32/arm/mod.rs +16 -13
  330. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b32/hexagon.rs +12 -13
  331. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b32/mips/mod.rs +25 -16
  332. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b32/powerpc.rs +16 -13
  333. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs +12 -15
  334. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b32/x86/mod.rs +10 -13
  335. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +0 -15
  336. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +0 -15
  337. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b64/mips64.rs +0 -15
  338. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b64/powerpc64.rs +0 -15
  339. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +0 -15
  340. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b64/s390x.rs +0 -15
  341. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b64/wasm32/mod.rs +0 -15
  342. data/rust-vendor/libc/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +9 -15
  343. data/rust-vendor/libc/src/unix/mod.rs +87 -11
  344. data/rust-vendor/libc/src/unix/newlib/arm/mod.rs +1 -1
  345. data/rust-vendor/libc/src/unix/newlib/horizon/mod.rs +1 -1
  346. data/rust-vendor/libc/src/unix/newlib/vita/mod.rs +3 -3
  347. data/rust-vendor/libc/src/unix/nto/mod.rs +23 -6
  348. data/rust-vendor/libc/src/unix/redox/mod.rs +45 -3
  349. data/rust-vendor/libc/src/unix/solarish/illumos.rs +2 -0
  350. data/rust-vendor/libc/src/vxworks/mod.rs +7 -7
  351. data/rust-vendor/memchr/.cargo-checksum.json +1 -1
  352. data/rust-vendor/memchr/.cargo_vcs_info.json +1 -1
  353. data/rust-vendor/memchr/Cargo.lock +13 -13
  354. data/rust-vendor/memchr/Cargo.toml +1 -1
  355. data/rust-vendor/memchr/Cargo.toml.orig +1 -1
  356. data/rust-vendor/memchr/src/cow.rs +3 -1
  357. data/rust-vendor/memchr/src/memmem/mod.rs +42 -3
  358. data/rust-vendor/prettyplease/.cargo-checksum.json +1 -0
  359. data/rust-vendor/prettyplease/.cargo_vcs_info.json +6 -0
  360. data/rust-vendor/prettyplease/.github/FUNDING.yml +1 -0
  361. data/rust-vendor/prettyplease/.github/workflows/ci.yml +123 -0
  362. data/rust-vendor/prettyplease/Cargo.lock +54 -0
  363. data/rust-vendor/prettyplease/Cargo.toml +90 -0
  364. data/rust-vendor/prettyplease/Cargo.toml.orig +43 -0
  365. data/rust-vendor/prettyplease/LICENSE-APACHE +176 -0
  366. data/rust-vendor/prettyplease/LICENSE-MIT +23 -0
  367. data/rust-vendor/prettyplease/README.md +312 -0
  368. data/rust-vendor/prettyplease/build.rs +21 -0
  369. data/rust-vendor/prettyplease/examples/.tokeignore +1 -0
  370. data/rust-vendor/prettyplease/examples/input.rs +1 -0
  371. data/rust-vendor/prettyplease/examples/output.prettyplease.rs +593 -0
  372. data/rust-vendor/prettyplease/examples/output.rustc.rs +506 -0
  373. data/rust-vendor/prettyplease/examples/output.rustfmt.rs +552 -0
  374. data/rust-vendor/prettyplease/src/algorithm.rs +386 -0
  375. data/rust-vendor/prettyplease/src/attr.rs +288 -0
  376. data/rust-vendor/prettyplease/src/classify.rs +324 -0
  377. data/rust-vendor/prettyplease/src/convenience.rs +98 -0
  378. data/rust-vendor/prettyplease/src/data.rs +79 -0
  379. data/rust-vendor/prettyplease/src/expr.rs +1533 -0
  380. data/rust-vendor/prettyplease/src/file.rs +17 -0
  381. data/rust-vendor/prettyplease/src/fixup.rs +676 -0
  382. data/rust-vendor/prettyplease/src/generics.rs +426 -0
  383. data/rust-vendor/prettyplease/src/item.rs +1813 -0
  384. data/rust-vendor/prettyplease/src/iter.rs +46 -0
  385. data/rust-vendor/prettyplease/src/lib.rs +385 -0
  386. data/rust-vendor/prettyplease/src/lifetime.rs +9 -0
  387. data/rust-vendor/prettyplease/src/lit.rs +57 -0
  388. data/rust-vendor/prettyplease/src/mac.rs +706 -0
  389. data/rust-vendor/prettyplease/src/pat.rs +254 -0
  390. data/rust-vendor/prettyplease/src/path.rs +194 -0
  391. data/rust-vendor/prettyplease/src/precedence.rs +148 -0
  392. data/rust-vendor/prettyplease/src/ring.rs +81 -0
  393. data/rust-vendor/prettyplease/src/stmt.rs +221 -0
  394. data/rust-vendor/prettyplease/src/token.rs +80 -0
  395. data/rust-vendor/prettyplease/src/ty.rs +326 -0
  396. data/rust-vendor/prettyplease/tests/test.rs +51 -0
  397. data/rust-vendor/prettyplease/tests/test_precedence.rs +900 -0
  398. data/rust-vendor/regex/.cargo-checksum.json +1 -1
  399. data/rust-vendor/regex/.cargo_vcs_info.json +1 -1
  400. data/rust-vendor/regex/CHANGELOG.md +13 -0
  401. data/rust-vendor/regex/Cargo.lock +5 -5
  402. data/rust-vendor/regex/Cargo.toml +15 -7
  403. data/rust-vendor/regex/Cargo.toml.orig +19 -2
  404. data/rust-vendor/regex-automata/.cargo-checksum.json +1 -1
  405. data/rust-vendor/regex-automata/.cargo_vcs_info.json +1 -1
  406. data/rust-vendor/regex-automata/Cargo.lock +3 -3
  407. data/rust-vendor/regex-automata/Cargo.toml +16 -1
  408. data/rust-vendor/regex-automata/Cargo.toml.orig +2 -1
  409. data/rust-vendor/regex-automata/src/dfa/onepass.rs +21 -5
  410. data/rust-vendor/regex-automata/tests/dfa/onepass/mod.rs +1 -0
  411. data/rust-vendor/regex-automata/tests/dfa/onepass/regression.rs +61 -0
  412. data/rust-vendor/regex-automata/tests/nfa/thompson/backtrack/mod.rs +1 -0
  413. data/rust-vendor/regex-automata/tests/nfa/thompson/backtrack/regression.rs +20 -0
  414. data/rust-vendor/regex-automata/tests/nfa/thompson/pikevm/mod.rs +1 -0
  415. data/rust-vendor/regex-automata/tests/nfa/thompson/pikevm/regression.rs +20 -0
  416. data/rust-vendor/regex-syntax/.cargo-checksum.json +1 -1
  417. data/rust-vendor/regex-syntax/.cargo_vcs_info.json +1 -1
  418. data/rust-vendor/regex-syntax/Cargo.lock +1 -1
  419. data/rust-vendor/regex-syntax/Cargo.toml +16 -5
  420. data/rust-vendor/regex-syntax/Cargo.toml.orig +2 -1
  421. data/rust-vendor/semver/.cargo-checksum.json +1 -0
  422. data/rust-vendor/semver/.cargo_vcs_info.json +6 -0
  423. data/rust-vendor/semver/.github/FUNDING.yml +1 -0
  424. data/rust-vendor/semver/.github/workflows/ci.yml +140 -0
  425. data/rust-vendor/semver/Cargo.lock +75 -0
  426. data/rust-vendor/semver/Cargo.toml +86 -0
  427. data/rust-vendor/semver/Cargo.toml.orig +36 -0
  428. data/rust-vendor/semver/LICENSE-APACHE +176 -0
  429. data/rust-vendor/semver/LICENSE-MIT +23 -0
  430. data/rust-vendor/semver/README.md +84 -0
  431. data/rust-vendor/semver/benches/parse.rs +24 -0
  432. data/rust-vendor/semver/src/display.rs +163 -0
  433. data/rust-vendor/semver/src/error.rs +126 -0
  434. data/rust-vendor/semver/src/eval.rs +179 -0
  435. data/rust-vendor/semver/src/identifier.rs +412 -0
  436. data/rust-vendor/semver/src/impls.rs +163 -0
  437. data/rust-vendor/semver/src/lib.rs +570 -0
  438. data/rust-vendor/semver/src/parse.rs +404 -0
  439. data/rust-vendor/semver/src/serde.rs +109 -0
  440. data/rust-vendor/semver/tests/node/mod.rs +43 -0
  441. data/rust-vendor/semver/tests/test_autotrait.rs +14 -0
  442. data/rust-vendor/semver/tests/test_identifier.rs +51 -0
  443. data/rust-vendor/semver/tests/test_version.rs +251 -0
  444. data/rust-vendor/semver/tests/test_version_req.rs +480 -0
  445. data/rust-vendor/semver/tests/util/mod.rs +54 -0
  446. data/rust-vendor/symbolic-common/.cargo-checksum.json +1 -1
  447. data/rust-vendor/symbolic-common/Cargo.lock +74 -3
  448. data/rust-vendor/symbolic-common/Cargo.toml +2 -2
  449. data/rust-vendor/symbolic-common/Cargo.toml.orig +1 -1
  450. data/rust-vendor/symbolic-demangle/.cargo-checksum.json +1 -1
  451. data/rust-vendor/symbolic-demangle/Cargo.lock +87 -9
  452. data/rust-vendor/symbolic-demangle/Cargo.toml +5 -5
  453. data/rust-vendor/symbolic-demangle/Cargo.toml.orig +2 -2
  454. data/rust-vendor/syn/.cargo-checksum.json +1 -1
  455. data/rust-vendor/syn/.cargo_vcs_info.json +1 -1
  456. data/rust-vendor/syn/Cargo.lock +322 -109
  457. data/rust-vendor/syn/Cargo.toml +2 -2
  458. data/rust-vendor/syn/Cargo.toml.orig +2 -2
  459. data/rust-vendor/syn/benches/rust.rs +1 -2
  460. data/rust-vendor/syn/src/lib.rs +1 -1
  461. data/rust-vendor/syn/src/parse.rs +2 -2
  462. data/rust-vendor/syn/src/path.rs +1 -5
  463. data/rust-vendor/syn/tests/common/eq.rs +28 -17
  464. data/rust-vendor/syn/tests/common/parse.rs +1 -2
  465. data/rust-vendor/syn/tests/repo/progress.rs +1 -1
  466. data/rust-vendor/syn/tests/test_round_trip.rs +5 -36
  467. data/rust-vendor/tempfile/.cargo-checksum.json +1 -1
  468. data/rust-vendor/tempfile/.cargo_vcs_info.json +1 -1
  469. data/rust-vendor/tempfile/CHANGELOG.md +4 -0
  470. data/rust-vendor/tempfile/Cargo.lock +333 -21
  471. data/rust-vendor/tempfile/Cargo.toml +2 -2
  472. data/rust-vendor/tempfile/Cargo.toml.orig +2 -2
  473. data/rust-vendor/unicode-ident/.cargo-checksum.json +1 -1
  474. data/rust-vendor/unicode-ident/.cargo_vcs_info.json +1 -1
  475. data/rust-vendor/unicode-ident/.github/workflows/ci.yml +10 -10
  476. data/rust-vendor/unicode-ident/Cargo.lock +468 -186
  477. data/rust-vendor/unicode-ident/Cargo.toml +8 -8
  478. data/rust-vendor/unicode-ident/Cargo.toml.orig +7 -5
  479. data/rust-vendor/unicode-ident/src/lib.rs +1 -1
  480. data/rust-vendor/unicode-xid/.cargo-checksum.json +1 -0
  481. data/rust-vendor/unicode-xid/.cargo_vcs_info.json +6 -0
  482. data/rust-vendor/unicode-xid/COPYRIGHT +7 -0
  483. data/rust-vendor/unicode-xid/Cargo.toml +65 -0
  484. data/rust-vendor/unicode-xid/Cargo.toml.orig +34 -0
  485. data/rust-vendor/unicode-xid/LICENSE-APACHE +201 -0
  486. data/rust-vendor/unicode-xid/LICENSE-MIT +25 -0
  487. data/rust-vendor/unicode-xid/README.md +61 -0
  488. data/rust-vendor/unicode-xid/benches/xid.rs +60 -0
  489. data/rust-vendor/unicode-xid/src/lib.rs +90 -0
  490. data/rust-vendor/unicode-xid/src/tables.rs +1537 -0
  491. data/rust-vendor/unicode-xid/src/tests.rs +95 -0
  492. data/rust-vendor/unicode-xid/tests/exhaustive_tests.rs +25 -0
  493. data/rust-vendor/uuid/.cargo-checksum.json +1 -1
  494. data/rust-vendor/uuid/.cargo_vcs_info.json +1 -1
  495. data/rust-vendor/uuid/Cargo.lock +298 -44
  496. data/rust-vendor/uuid/Cargo.toml +5 -5
  497. data/rust-vendor/uuid/Cargo.toml.orig +5 -5
  498. data/rust-vendor/uuid/README.md +3 -3
  499. data/rust-vendor/uuid/src/error.rs +1 -7
  500. data/rust-vendor/uuid/src/lib.rs +4 -4
  501. data/rust-vendor/wasip3/.cargo-checksum.json +1 -0
  502. data/rust-vendor/wasip3/.cargo_vcs_info.json +6 -0
  503. data/rust-vendor/wasip3/Cargo.lock +483 -0
  504. data/rust-vendor/wasip3/Cargo.toml +96 -0
  505. data/rust-vendor/wasip3/Cargo.toml.orig +49 -0
  506. data/rust-vendor/wasip3/README.md +56 -0
  507. data/rust-vendor/wasip3/examples/cli-command.rs +19 -0
  508. data/rust-vendor/wasip3/examples/http-proxy-compat.rs +20 -0
  509. data/rust-vendor/wasip3/examples/http-proxy.rs +22 -0
  510. data/rust-vendor/wasip3/src/command.rs +513 -0
  511. data/rust-vendor/wasip3/src/http_compat/body_writer.rs +145 -0
  512. data/rust-vendor/wasip3/src/http_compat/conversions.rs +307 -0
  513. data/rust-vendor/wasip3/src/http_compat/mod.rs +314 -0
  514. data/rust-vendor/wasip3/src/imports.rs +10543 -0
  515. data/rust-vendor/wasip3/src/lib.rs +280 -0
  516. data/rust-vendor/wasip3/src/service.rs +7274 -0
  517. data/rust-vendor/wasip3/wit/deps/cli.wit +256 -0
  518. data/rust-vendor/wasip3/wit/deps/clocks.wit +161 -0
  519. data/rust-vendor/wasip3/wit/deps/filesystem.wit +553 -0
  520. data/rust-vendor/wasip3/wit/deps/http.wit +457 -0
  521. data/rust-vendor/wasip3/wit/deps/random.wit +92 -0
  522. data/rust-vendor/wasip3/wit/deps/sockets.wit +752 -0
  523. data/rust-vendor/wasip3/wit/wasi-crate.wit +1 -0
  524. data/rust-vendor/wasm-encoder/.cargo-checksum.json +1 -0
  525. data/rust-vendor/wasm-encoder/.cargo_vcs_info.json +6 -0
  526. data/rust-vendor/wasm-encoder/Cargo.lock +348 -0
  527. data/rust-vendor/wasm-encoder/Cargo.toml +104 -0
  528. data/rust-vendor/wasm-encoder/Cargo.toml.orig +43 -0
  529. data/rust-vendor/wasm-encoder/README.md +81 -0
  530. data/rust-vendor/wasm-encoder/src/component/aliases.rs +161 -0
  531. data/rust-vendor/wasm-encoder/src/component/builder.rs +826 -0
  532. data/rust-vendor/wasm-encoder/src/component/canonicals.rs +584 -0
  533. data/rust-vendor/wasm-encoder/src/component/components.rs +30 -0
  534. data/rust-vendor/wasm-encoder/src/component/exports.rs +130 -0
  535. data/rust-vendor/wasm-encoder/src/component/imports.rs +170 -0
  536. data/rust-vendor/wasm-encoder/src/component/instances.rs +200 -0
  537. data/rust-vendor/wasm-encoder/src/component/modules.rs +30 -0
  538. data/rust-vendor/wasm-encoder/src/component/names.rs +162 -0
  539. data/rust-vendor/wasm-encoder/src/component/start.rs +53 -0
  540. data/rust-vendor/wasm-encoder/src/component/types.rs +816 -0
  541. data/rust-vendor/wasm-encoder/src/component.rs +169 -0
  542. data/rust-vendor/wasm-encoder/src/core/branch_hints.rs +127 -0
  543. data/rust-vendor/wasm-encoder/src/core/code.rs +2464 -0
  544. data/rust-vendor/wasm-encoder/src/core/custom.rs +74 -0
  545. data/rust-vendor/wasm-encoder/src/core/data.rs +187 -0
  546. data/rust-vendor/wasm-encoder/src/core/dump.rs +629 -0
  547. data/rust-vendor/wasm-encoder/src/core/elements.rs +225 -0
  548. data/rust-vendor/wasm-encoder/src/core/exports.rs +86 -0
  549. data/rust-vendor/wasm-encoder/src/core/functions.rs +64 -0
  550. data/rust-vendor/wasm-encoder/src/core/globals.rs +101 -0
  551. data/rust-vendor/wasm-encoder/src/core/imports.rs +230 -0
  552. data/rust-vendor/wasm-encoder/src/core/instructions.rs +4686 -0
  553. data/rust-vendor/wasm-encoder/src/core/linking.rs +264 -0
  554. data/rust-vendor/wasm-encoder/src/core/memories.rs +116 -0
  555. data/rust-vendor/wasm-encoder/src/core/names.rs +305 -0
  556. data/rust-vendor/wasm-encoder/src/core/producers.rs +181 -0
  557. data/rust-vendor/wasm-encoder/src/core/start.rs +40 -0
  558. data/rust-vendor/wasm-encoder/src/core/tables.rs +130 -0
  559. data/rust-vendor/wasm-encoder/src/core/tags.rs +86 -0
  560. data/rust-vendor/wasm-encoder/src/core/types.rs +753 -0
  561. data/rust-vendor/wasm-encoder/src/core.rs +179 -0
  562. data/rust-vendor/wasm-encoder/src/lib.rs +224 -0
  563. data/rust-vendor/wasm-encoder/src/raw.rs +32 -0
  564. data/rust-vendor/wasm-encoder/src/reencode/component.rs +1548 -0
  565. data/rust-vendor/wasm-encoder/src/reencode.rs +2134 -0
  566. data/rust-vendor/wasm-metadata/.cargo-checksum.json +1 -0
  567. data/rust-vendor/wasm-metadata/.cargo_vcs_info.json +6 -0
  568. data/rust-vendor/wasm-metadata/Cargo.lock +769 -0
  569. data/rust-vendor/wasm-metadata/Cargo.toml +152 -0
  570. data/rust-vendor/wasm-metadata/Cargo.toml.orig +38 -0
  571. data/rust-vendor/wasm-metadata/README.md +27 -0
  572. data/rust-vendor/wasm-metadata/src/add_metadata.rs +91 -0
  573. data/rust-vendor/wasm-metadata/src/clap.rs +169 -0
  574. data/rust-vendor/wasm-metadata/src/dependencies.rs +142 -0
  575. data/rust-vendor/wasm-metadata/src/lib.rs +83 -0
  576. data/rust-vendor/wasm-metadata/src/metadata.rs +34 -0
  577. data/rust-vendor/wasm-metadata/src/names/component.rs +107 -0
  578. data/rust-vendor/wasm-metadata/src/names/mod.rs +5 -0
  579. data/rust-vendor/wasm-metadata/src/names/module.rs +101 -0
  580. data/rust-vendor/wasm-metadata/src/oci_annotations/authors.rs +111 -0
  581. data/rust-vendor/wasm-metadata/src/oci_annotations/description.rs +110 -0
  582. data/rust-vendor/wasm-metadata/src/oci_annotations/homepage.rs +118 -0
  583. data/rust-vendor/wasm-metadata/src/oci_annotations/licenses.rs +122 -0
  584. data/rust-vendor/wasm-metadata/src/oci_annotations/mod.rs +32 -0
  585. data/rust-vendor/wasm-metadata/src/oci_annotations/revision.rs +113 -0
  586. data/rust-vendor/wasm-metadata/src/oci_annotations/source.rs +117 -0
  587. data/rust-vendor/wasm-metadata/src/oci_annotations/version.rs +110 -0
  588. data/rust-vendor/wasm-metadata/src/payload.rs +215 -0
  589. data/rust-vendor/wasm-metadata/src/producers.rs +254 -0
  590. data/rust-vendor/wasm-metadata/src/rewrite.rs +224 -0
  591. data/rust-vendor/wasm-metadata/src/utils.rs +21 -0
  592. data/rust-vendor/wasm-metadata/tests/component.rs +310 -0
  593. data/rust-vendor/wasm-metadata/tests/module.rs +86 -0
  594. data/rust-vendor/wasmparser/.cargo-checksum.json +1 -0
  595. data/rust-vendor/wasmparser/.cargo_vcs_info.json +6 -0
  596. data/rust-vendor/wasmparser/Cargo.lock +687 -0
  597. data/rust-vendor/wasmparser/Cargo.toml +161 -0
  598. data/rust-vendor/wasmparser/Cargo.toml.orig +89 -0
  599. data/rust-vendor/wasmparser/README.md +28 -0
  600. data/rust-vendor/wasmparser/benches/.gitignore +1 -0
  601. data/rust-vendor/wasmparser/benches/benchmark.rs +395 -0
  602. data/rust-vendor/wasmparser/examples/simple.rs +37 -0
  603. data/rust-vendor/wasmparser/src/arity.rs +318 -0
  604. data/rust-vendor/wasmparser/src/binary_reader.rs +2109 -0
  605. data/rust-vendor/wasmparser/src/collections/hash.rs +120 -0
  606. data/rust-vendor/wasmparser/src/collections/index_map/detail.rs +1100 -0
  607. data/rust-vendor/wasmparser/src/collections/index_map/tests.rs +183 -0
  608. data/rust-vendor/wasmparser/src/collections/index_map.rs +653 -0
  609. data/rust-vendor/wasmparser/src/collections/index_set.rs +316 -0
  610. data/rust-vendor/wasmparser/src/collections/map.rs +852 -0
  611. data/rust-vendor/wasmparser/src/collections/mod.rs +34 -0
  612. data/rust-vendor/wasmparser/src/collections/set.rs +672 -0
  613. data/rust-vendor/wasmparser/src/features.rs +442 -0
  614. data/rust-vendor/wasmparser/src/lib.rs +1340 -0
  615. data/rust-vendor/wasmparser/src/limits.rs +90 -0
  616. data/rust-vendor/wasmparser/src/parser.rs +1925 -0
  617. data/rust-vendor/wasmparser/src/readers/component/aliases.rs +119 -0
  618. data/rust-vendor/wasmparser/src/readers/component/canonicals.rs +458 -0
  619. data/rust-vendor/wasmparser/src/readers/component/exports.rs +135 -0
  620. data/rust-vendor/wasmparser/src/readers/component/imports.rs +145 -0
  621. data/rust-vendor/wasmparser/src/readers/component/instances.rs +166 -0
  622. data/rust-vendor/wasmparser/src/readers/component/names.rs +101 -0
  623. data/rust-vendor/wasmparser/src/readers/component/start.rs +31 -0
  624. data/rust-vendor/wasmparser/src/readers/component/types.rs +537 -0
  625. data/rust-vendor/wasmparser/src/readers/component.rs +17 -0
  626. data/rust-vendor/wasmparser/src/readers/core/branch_hinting.rs +59 -0
  627. data/rust-vendor/wasmparser/src/readers/core/code.rs +177 -0
  628. data/rust-vendor/wasmparser/src/readers/core/coredumps.rs +274 -0
  629. data/rust-vendor/wasmparser/src/readers/core/custom.rs +134 -0
  630. data/rust-vendor/wasmparser/src/readers/core/data.rs +94 -0
  631. data/rust-vendor/wasmparser/src/readers/core/dylink0.rs +117 -0
  632. data/rust-vendor/wasmparser/src/readers/core/elements.rs +153 -0
  633. data/rust-vendor/wasmparser/src/readers/core/exports.rs +75 -0
  634. data/rust-vendor/wasmparser/src/readers/core/functions.rs +17 -0
  635. data/rust-vendor/wasmparser/src/readers/core/globals.rs +51 -0
  636. data/rust-vendor/wasmparser/src/readers/core/imports.rs +307 -0
  637. data/rust-vendor/wasmparser/src/readers/core/init.rs +70 -0
  638. data/rust-vendor/wasmparser/src/readers/core/linking.rs +457 -0
  639. data/rust-vendor/wasmparser/src/readers/core/memories.rs +61 -0
  640. data/rust-vendor/wasmparser/src/readers/core/names.rs +162 -0
  641. data/rust-vendor/wasmparser/src/readers/core/operators.rs +1105 -0
  642. data/rust-vendor/wasmparser/src/readers/core/producers.rs +84 -0
  643. data/rust-vendor/wasmparser/src/readers/core/reloc.rs +300 -0
  644. data/rust-vendor/wasmparser/src/readers/core/tables.rs +96 -0
  645. data/rust-vendor/wasmparser/src/readers/core/tags.rs +32 -0
  646. data/rust-vendor/wasmparser/src/readers/core/types/matches.rs +321 -0
  647. data/rust-vendor/wasmparser/src/readers/core/types.rs +2249 -0
  648. data/rust-vendor/wasmparser/src/readers/core.rs +43 -0
  649. data/rust-vendor/wasmparser/src/readers.rs +330 -0
  650. data/rust-vendor/wasmparser/src/resources.rs +265 -0
  651. data/rust-vendor/wasmparser/src/validator/component.rs +4765 -0
  652. data/rust-vendor/wasmparser/src/validator/component_types.rs +4036 -0
  653. data/rust-vendor/wasmparser/src/validator/core/canonical.rs +552 -0
  654. data/rust-vendor/wasmparser/src/validator/core.rs +1313 -0
  655. data/rust-vendor/wasmparser/src/validator/func.rs +613 -0
  656. data/rust-vendor/wasmparser/src/validator/names.rs +1017 -0
  657. data/rust-vendor/wasmparser/src/validator/operators/simd.rs +971 -0
  658. data/rust-vendor/wasmparser/src/validator/operators.rs +4696 -0
  659. data/rust-vendor/wasmparser/src/validator/types.rs +1327 -0
  660. data/rust-vendor/wasmparser/src/validator.rs +1645 -0
  661. data/rust-vendor/wasmparser/tests/big-module.rs +62 -0
  662. data/rust-vendor/wit-bindgen/.cargo-checksum.json +1 -1
  663. data/rust-vendor/wit-bindgen/.cargo_vcs_info.json +1 -1
  664. data/rust-vendor/wit-bindgen/Cargo.lock +76 -66
  665. data/rust-vendor/wit-bindgen/Cargo.toml +25 -11
  666. data/rust-vendor/wit-bindgen/Cargo.toml.orig +11 -3
  667. data/rust-vendor/wit-bindgen/src/lib.rs +21 -15
  668. data/rust-vendor/wit-bindgen/src/rt/async_support/abi_buffer.rs +35 -32
  669. data/rust-vendor/wit-bindgen/src/rt/async_support/cabi.rs +15 -20
  670. data/rust-vendor/wit-bindgen/src/rt/async_support/error_context.rs +11 -22
  671. data/rust-vendor/wit-bindgen/src/rt/async_support/future_support.rs +406 -146
  672. data/rust-vendor/wit-bindgen/src/rt/async_support/inter_task_wakeup.rs +98 -0
  673. data/rust-vendor/wit-bindgen/src/rt/async_support/inter_task_wakeup_disabled.rs +45 -0
  674. data/rust-vendor/wit-bindgen/src/rt/async_support/spawn.rs +82 -0
  675. data/rust-vendor/wit-bindgen/src/rt/async_support/spawn_disabled.rs +30 -0
  676. data/rust-vendor/wit-bindgen/src/rt/async_support/stream_support.rs +262 -122
  677. data/rust-vendor/wit-bindgen/src/rt/async_support/subtask.rs +49 -54
  678. data/rust-vendor/wit-bindgen/src/rt/async_support/unit_stream.rs +81 -0
  679. data/rust-vendor/wit-bindgen/src/rt/async_support/waitable.rs +47 -31
  680. data/rust-vendor/wit-bindgen/src/rt/async_support/waitable_set.rs +17 -35
  681. data/rust-vendor/wit-bindgen/src/rt/async_support.rs +262 -188
  682. data/rust-vendor/wit-bindgen/src/rt/mod.rs +14 -12
  683. data/rust-vendor/wit-bindgen/src/rt/wit_bindgen_cabi_realloc.c +2 -2
  684. data/rust-vendor/wit-bindgen/src/rt/wit_bindgen_cabi_realloc.o +0 -0
  685. data/rust-vendor/wit-bindgen/src/rt/wit_bindgen_cabi_realloc.rs +2 -2
  686. data/rust-vendor/wit-bindgen/src/rt/wit_bindgen_cabi_wasip3.o +0 -0
  687. data/rust-vendor/wit-bindgen-0.46.0/.cargo-checksum.json +1 -0
  688. data/rust-vendor/wit-bindgen-0.46.0/.cargo_vcs_info.json +6 -0
  689. data/rust-vendor/wit-bindgen-0.46.0/Cargo.lock +428 -0
  690. data/rust-vendor/wit-bindgen-0.46.0/Cargo.toml +88 -0
  691. data/rust-vendor/wit-bindgen-0.46.0/Cargo.toml.orig +37 -0
  692. data/rust-vendor/wit-bindgen-0.46.0/LICENSE-APACHE +201 -0
  693. data/rust-vendor/wit-bindgen-0.46.0/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  694. data/rust-vendor/wit-bindgen-0.46.0/LICENSE-MIT +23 -0
  695. data/rust-vendor/wit-bindgen-0.46.0/README.md +45 -0
  696. data/rust-vendor/wit-bindgen-0.46.0/build.rs +32 -0
  697. data/rust-vendor/wit-bindgen-0.46.0/src/examples/_0_world_imports.rs +17 -0
  698. data/rust-vendor/wit-bindgen-0.46.0/src/examples/_1_interface_imports.rs +32 -0
  699. data/rust-vendor/wit-bindgen-0.46.0/src/examples/_2_imported_resources.rs +22 -0
  700. data/rust-vendor/wit-bindgen-0.46.0/src/examples/_3_world_exports.rs +47 -0
  701. data/rust-vendor/wit-bindgen-0.46.0/src/examples/_4_exported_resources.rs +26 -0
  702. data/rust-vendor/wit-bindgen-0.46.0/src/examples.rs +55 -0
  703. data/rust-vendor/wit-bindgen-0.46.0/src/lib.rs +881 -0
  704. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support/abi_buffer.rs +417 -0
  705. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support/cabi.rs +112 -0
  706. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support/error_context.rs +94 -0
  707. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support/future_support.rs +734 -0
  708. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support/stream_support.rs +604 -0
  709. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support/subtask.rs +289 -0
  710. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support/waitable.rs +466 -0
  711. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support/waitable_set.rs +100 -0
  712. data/rust-vendor/wit-bindgen-0.46.0/src/rt/async_support.rs +634 -0
  713. data/rust-vendor/wit-bindgen-0.46.0/src/rt/mod.rs +230 -0
  714. data/rust-vendor/wit-bindgen-0.46.0/src/rt/wit_bindgen_cabi_realloc.c +10 -0
  715. data/rust-vendor/wit-bindgen-0.46.0/src/rt/wit_bindgen_cabi_realloc.o +0 -0
  716. data/rust-vendor/wit-bindgen-0.46.0/src/rt/wit_bindgen_cabi_realloc.rs +11 -0
  717. data/rust-vendor/wit-bindgen-0.46.0/src/rt/wit_bindgen_cabi_wasip3.c +12 -0
  718. data/rust-vendor/wit-bindgen-0.46.0/src/rt/wit_bindgen_cabi_wasip3.o +0 -0
  719. data/rust-vendor/wit-bindgen-0.46.0/wasi-cli@0.2.0.wasm +0 -0
  720. data/rust-vendor/wit-bindgen-core/.cargo-checksum.json +1 -0
  721. data/rust-vendor/wit-bindgen-core/.cargo_vcs_info.json +6 -0
  722. data/rust-vendor/wit-bindgen-core/Cargo.lock +340 -0
  723. data/rust-vendor/wit-bindgen-core/Cargo.toml +75 -0
  724. data/rust-vendor/wit-bindgen-core/Cargo.toml.orig +30 -0
  725. data/rust-vendor/wit-bindgen-core/LICENSE-APACHE +201 -0
  726. data/rust-vendor/wit-bindgen-core/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  727. data/rust-vendor/wit-bindgen-core/LICENSE-MIT +23 -0
  728. data/rust-vendor/wit-bindgen-core/src/abi.rs +2526 -0
  729. data/rust-vendor/wit-bindgen-core/src/async_.rs +200 -0
  730. data/rust-vendor/wit-bindgen-core/src/lib.rs +239 -0
  731. data/rust-vendor/wit-bindgen-core/src/ns.rs +27 -0
  732. data/rust-vendor/wit-bindgen-core/src/path.rs +47 -0
  733. data/rust-vendor/wit-bindgen-core/src/source.rs +222 -0
  734. data/rust-vendor/wit-bindgen-core/src/types.rs +232 -0
  735. data/rust-vendor/wit-bindgen-rust/.cargo-checksum.json +1 -0
  736. data/rust-vendor/wit-bindgen-rust/.cargo_vcs_info.json +6 -0
  737. data/rust-vendor/wit-bindgen-rust/Cargo.lock +547 -0
  738. data/rust-vendor/wit-bindgen-rust/Cargo.toml +112 -0
  739. data/rust-vendor/wit-bindgen-rust/Cargo.toml.orig +44 -0
  740. data/rust-vendor/wit-bindgen-rust/LICENSE-APACHE +201 -0
  741. data/rust-vendor/wit-bindgen-rust/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  742. data/rust-vendor/wit-bindgen-rust/LICENSE-MIT +23 -0
  743. data/rust-vendor/wit-bindgen-rust/build.rs +4 -0
  744. data/rust-vendor/wit-bindgen-rust/src/bindgen.rs +1215 -0
  745. data/rust-vendor/wit-bindgen-rust/src/interface.rs +3020 -0
  746. data/rust-vendor/wit-bindgen-rust/src/lib.rs +1880 -0
  747. data/rust-vendor/wit-bindgen-rust/tests/codegen.rs +174 -0
  748. data/rust-vendor/wit-bindgen-rust/tests/wit/path1/world.wit +3 -0
  749. data/rust-vendor/wit-bindgen-rust/tests/wit/path2/world.wit +3 -0
  750. data/rust-vendor/wit-bindgen-rust/tests/wit/path3/package.wit +3 -0
  751. data/rust-vendor/wit-bindgen-rust-macro/.cargo-checksum.json +1 -0
  752. data/rust-vendor/wit-bindgen-rust-macro/.cargo_vcs_info.json +6 -0
  753. data/rust-vendor/wit-bindgen-rust-macro/Cargo.lock +306 -0
  754. data/rust-vendor/wit-bindgen-rust-macro/Cargo.toml +62 -0
  755. data/rust-vendor/wit-bindgen-rust-macro/Cargo.toml.orig +28 -0
  756. data/rust-vendor/wit-bindgen-rust-macro/LICENSE-APACHE +201 -0
  757. data/rust-vendor/wit-bindgen-rust-macro/LICENSE-Apache-2.0_WITH_LLVM-exception +220 -0
  758. data/rust-vendor/wit-bindgen-rust-macro/LICENSE-MIT +23 -0
  759. data/rust-vendor/wit-bindgen-rust-macro/build.rs +5 -0
  760. data/rust-vendor/wit-bindgen-rust-macro/src/lib.rs +606 -0
  761. data/rust-vendor/wit-component/.cargo-checksum.json +1 -0
  762. data/rust-vendor/wit-component/.cargo_vcs_info.json +6 -0
  763. data/rust-vendor/wit-component/Cargo.lock +1823 -0
  764. data/rust-vendor/wit-component/Cargo.toml +217 -0
  765. data/rust-vendor/wit-component/Cargo.toml.orig +61 -0
  766. data/rust-vendor/wit-component/README.md +251 -0
  767. data/rust-vendor/wit-component/src/dummy.rs +395 -0
  768. data/rust-vendor/wit-component/src/encoding/dedupe.rs +164 -0
  769. data/rust-vendor/wit-component/src/encoding/types.rs +510 -0
  770. data/rust-vendor/wit-component/src/encoding/wit.rs +393 -0
  771. data/rust-vendor/wit-component/src/encoding/world.rs +525 -0
  772. data/rust-vendor/wit-component/src/encoding.rs +3231 -0
  773. data/rust-vendor/wit-component/src/gc.rs +1134 -0
  774. data/rust-vendor/wit-component/src/lib.rs +178 -0
  775. data/rust-vendor/wit-component/src/linking/metadata.rs +515 -0
  776. data/rust-vendor/wit-component/src/linking.rs +1727 -0
  777. data/rust-vendor/wit-component/src/metadata.rs +447 -0
  778. data/rust-vendor/wit-component/src/printing.rs +1485 -0
  779. data/rust-vendor/wit-component/src/semver_check.rs +113 -0
  780. data/rust-vendor/wit-component/src/targets.rs +44 -0
  781. data/rust-vendor/wit-component/src/validation.rs +2679 -0
  782. data/rust-vendor/wit-component/tests/.gitignore +2 -0
  783. data/rust-vendor/wit-component/tests/components/adapt-empty-interface/adapt-old.wat +3 -0
  784. data/rust-vendor/wit-component/tests/components/adapt-empty-interface/adapt-old.wit +5 -0
  785. data/rust-vendor/wit-component/tests/components/adapt-empty-interface/component.wat +60 -0
  786. data/rust-vendor/wit-component/tests/components/adapt-empty-interface/component.wit.print +4 -0
  787. data/rust-vendor/wit-component/tests/components/adapt-empty-interface/module.wat +3 -0
  788. data/rust-vendor/wit-component/tests/components/adapt-empty-interface/module.wit +2 -0
  789. data/rust-vendor/wit-component/tests/components/adapt-export-default/adapt-old.wat +4 -0
  790. data/rust-vendor/wit-component/tests/components/adapt-export-default/adapt-old.wit +3 -0
  791. data/rust-vendor/wit-component/tests/components/adapt-export-default/component.wat +32 -0
  792. data/rust-vendor/wit-component/tests/components/adapt-export-default/component.wit.print +5 -0
  793. data/rust-vendor/wit-component/tests/components/adapt-export-default/module.wat +3 -0
  794. data/rust-vendor/wit-component/tests/components/adapt-export-default/module.wit +2 -0
  795. data/rust-vendor/wit-component/tests/components/adapt-export-namespaced/adapt-old.wat +4 -0
  796. data/rust-vendor/wit-component/tests/components/adapt-export-namespaced/adapt-old.wit +7 -0
  797. data/rust-vendor/wit-component/tests/components/adapt-export-namespaced/component.wat +42 -0
  798. data/rust-vendor/wit-component/tests/components/adapt-export-namespaced/component.wit.print +5 -0
  799. data/rust-vendor/wit-component/tests/components/adapt-export-namespaced/module.wat +3 -0
  800. data/rust-vendor/wit-component/tests/components/adapt-export-namespaced/module.wit +3 -0
  801. data/rust-vendor/wit-component/tests/components/adapt-export-reallocs/adapt-old.wat +47 -0
  802. data/rust-vendor/wit-component/tests/components/adapt-export-reallocs/adapt-old.wit +6 -0
  803. data/rust-vendor/wit-component/tests/components/adapt-export-reallocs/component.wat +131 -0
  804. data/rust-vendor/wit-component/tests/components/adapt-export-reallocs/component.wit.print +9 -0
  805. data/rust-vendor/wit-component/tests/components/adapt-export-reallocs/module.wat +8 -0
  806. data/rust-vendor/wit-component/tests/components/adapt-export-reallocs/module.wit +3 -0
  807. data/rust-vendor/wit-component/tests/components/adapt-export-save-args/adapt-old.wat +13 -0
  808. data/rust-vendor/wit-component/tests/components/adapt-export-save-args/adapt-old.wit +3 -0
  809. data/rust-vendor/wit-component/tests/components/adapt-export-save-args/component.wat +86 -0
  810. data/rust-vendor/wit-component/tests/components/adapt-export-save-args/component.wit.print +5 -0
  811. data/rust-vendor/wit-component/tests/components/adapt-export-save-args/module.wat +4 -0
  812. data/rust-vendor/wit-component/tests/components/adapt-export-save-args/module.wit +2 -0
  813. data/rust-vendor/wit-component/tests/components/adapt-export-with-post-return/adapt-old.wat +33 -0
  814. data/rust-vendor/wit-component/tests/components/adapt-export-with-post-return/adapt-old.wit +7 -0
  815. data/rust-vendor/wit-component/tests/components/adapt-export-with-post-return/component.wat +101 -0
  816. data/rust-vendor/wit-component/tests/components/adapt-export-with-post-return/component.wit.print +5 -0
  817. data/rust-vendor/wit-component/tests/components/adapt-export-with-post-return/module.wat +9 -0
  818. data/rust-vendor/wit-component/tests/components/adapt-export-with-post-return/module.wit +3 -0
  819. data/rust-vendor/wit-component/tests/components/adapt-import-only-used-in-adapter/adapt-unused.wat +7 -0
  820. data/rust-vendor/wit-component/tests/components/adapt-import-only-used-in-adapter/adapt-unused.wit +9 -0
  821. data/rust-vendor/wit-component/tests/components/adapt-import-only-used-in-adapter/component.wat +115 -0
  822. data/rust-vendor/wit-component/tests/components/adapt-import-only-used-in-adapter/component.wit.print +9 -0
  823. data/rust-vendor/wit-component/tests/components/adapt-import-only-used-in-adapter/module.wat +5 -0
  824. data/rust-vendor/wit-component/tests/components/adapt-import-only-used-in-adapter/module.wit +6 -0
  825. data/rust-vendor/wit-component/tests/components/adapt-inject-stack/adapt-old.wat +54 -0
  826. data/rust-vendor/wit-component/tests/components/adapt-inject-stack/adapt-old.wit +5 -0
  827. data/rust-vendor/wit-component/tests/components/adapt-inject-stack/component.wat +163 -0
  828. data/rust-vendor/wit-component/tests/components/adapt-inject-stack/component.wit.print +7 -0
  829. data/rust-vendor/wit-component/tests/components/adapt-inject-stack/module.wat +4 -0
  830. data/rust-vendor/wit-component/tests/components/adapt-inject-stack/module.wit +2 -0
  831. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/adapt-old.wat +76 -0
  832. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/adapt-old.wit +5 -0
  833. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/component.wat +174 -0
  834. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/component.wit.print +7 -0
  835. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/module.wat +12 -0
  836. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-adapt-realloc/module.wit +2 -0
  837. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc/adapt-old.wat +76 -0
  838. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc/adapt-old.wit +5 -0
  839. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc/component.wat +199 -0
  840. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc/component.wit.print +7 -0
  841. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc/module.wat +38 -0
  842. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc/module.wit +3 -0
  843. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/adapt-old.wat +68 -0
  844. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/adapt-old.wit +5 -0
  845. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/component.wat +216 -0
  846. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/component.wit.print +7 -0
  847. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/module.wat +38 -0
  848. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-realloc-no-state/module.wit +3 -0
  849. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/adapt-old.wat +62 -0
  850. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/adapt-old.wit +5 -0
  851. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/component.wat +187 -0
  852. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/component.wit.print +7 -0
  853. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/module.wat +38 -0
  854. data/rust-vendor/wit-component/tests/components/adapt-inject-stack-with-reallocing-adapter/module.wit +2 -0
  855. data/rust-vendor/wit-component/tests/components/adapt-list-return/adapt-old.wat +14 -0
  856. data/rust-vendor/wit-component/tests/components/adapt-list-return/adapt-old.wit +5 -0
  857. data/rust-vendor/wit-component/tests/components/adapt-list-return/component.wat +104 -0
  858. data/rust-vendor/wit-component/tests/components/adapt-list-return/component.wit.print +7 -0
  859. data/rust-vendor/wit-component/tests/components/adapt-list-return/module.wat +4 -0
  860. data/rust-vendor/wit-component/tests/components/adapt-list-return/module.wit +3 -0
  861. data/rust-vendor/wit-component/tests/components/adapt-memory-simple/adapt-old.wat +4 -0
  862. data/rust-vendor/wit-component/tests/components/adapt-memory-simple/adapt-old.wit +5 -0
  863. data/rust-vendor/wit-component/tests/components/adapt-memory-simple/component.wat +92 -0
  864. data/rust-vendor/wit-component/tests/components/adapt-memory-simple/component.wit.print +7 -0
  865. data/rust-vendor/wit-component/tests/components/adapt-memory-simple/module.wat +4 -0
  866. data/rust-vendor/wit-component/tests/components/adapt-memory-simple/module.wit +2 -0
  867. data/rust-vendor/wit-component/tests/components/adapt-multiple/adapt-foo.wat +10 -0
  868. data/rust-vendor/wit-component/tests/components/adapt-multiple/adapt-foo.wit +8 -0
  869. data/rust-vendor/wit-component/tests/components/adapt-multiple/component.wat +107 -0
  870. data/rust-vendor/wit-component/tests/components/adapt-multiple/component.wit.print +10 -0
  871. data/rust-vendor/wit-component/tests/components/adapt-multiple/module.wat +4 -0
  872. data/rust-vendor/wit-component/tests/components/adapt-multiple/module.wit +2 -0
  873. data/rust-vendor/wit-component/tests/components/adapt-preview1/adapt-wasi-snapshot-preview1.wat +13 -0
  874. data/rust-vendor/wit-component/tests/components/adapt-preview1/adapt-wasi-snapshot-preview1.wit +12 -0
  875. data/rust-vendor/wit-component/tests/components/adapt-preview1/component.wat +119 -0
  876. data/rust-vendor/wit-component/tests/components/adapt-preview1/component.wit.print +8 -0
  877. data/rust-vendor/wit-component/tests/components/adapt-preview1/module.wat +11 -0
  878. data/rust-vendor/wit-component/tests/components/adapt-preview1/module.wit +7 -0
  879. data/rust-vendor/wit-component/tests/components/adapt-stub-wasip2/adapt-wasip2.wat +8 -0
  880. data/rust-vendor/wit-component/tests/components/adapt-stub-wasip2/adapt-wasip2.wit +1 -0
  881. data/rust-vendor/wit-component/tests/components/adapt-stub-wasip2/component.wat +74 -0
  882. data/rust-vendor/wit-component/tests/components/adapt-stub-wasip2/component.wit.print +4 -0
  883. data/rust-vendor/wit-component/tests/components/adapt-stub-wasip2/deps/cli/environment.wit +5 -0
  884. data/rust-vendor/wit-component/tests/components/adapt-stub-wasip2/module.wat +11 -0
  885. data/rust-vendor/wit-component/tests/components/adapt-stub-wasip2/module.wit +5 -0
  886. data/rust-vendor/wit-component/tests/components/adapt-unused/adapt-old.wat +4 -0
  887. data/rust-vendor/wit-component/tests/components/adapt-unused/adapt-old.wit +5 -0
  888. data/rust-vendor/wit-component/tests/components/adapt-unused/component.wat +12 -0
  889. data/rust-vendor/wit-component/tests/components/adapt-unused/component.wit.print +4 -0
  890. data/rust-vendor/wit-component/tests/components/adapt-unused/module.wat +1 -0
  891. data/rust-vendor/wit-component/tests/components/adapt-unused/module.wit +2 -0
  892. data/rust-vendor/wit-component/tests/components/async-builtins/component.wat +259 -0
  893. data/rust-vendor/wit-component/tests/components/async-builtins/component.wit.print +6 -0
  894. data/rust-vendor/wit-component/tests/components/async-builtins/module.wat +28 -0
  895. data/rust-vendor/wit-component/tests/components/async-builtins/module.wit +10 -0
  896. data/rust-vendor/wit-component/tests/components/async-export/component.wat +91 -0
  897. data/rust-vendor/wit-component/tests/components/async-export/component.wit.print +6 -0
  898. data/rust-vendor/wit-component/tests/components/async-export/module.wat +8 -0
  899. data/rust-vendor/wit-component/tests/components/async-export/module.wit +30 -0
  900. data/rust-vendor/wit-component/tests/components/async-export-with-callback/component.wat +59 -0
  901. data/rust-vendor/wit-component/tests/components/async-export-with-callback/component.wit.print +6 -0
  902. data/rust-vendor/wit-component/tests/components/async-export-with-callback/module.wat +8 -0
  903. data/rust-vendor/wit-component/tests/components/async-export-with-callback/module.wit +10 -0
  904. data/rust-vendor/wit-component/tests/components/async-import/component.wat +125 -0
  905. data/rust-vendor/wit-component/tests/components/async-import/component.wit.print +6 -0
  906. data/rust-vendor/wit-component/tests/components/async-import/module.wat +8 -0
  907. data/rust-vendor/wit-component/tests/components/async-import/module.wit +10 -0
  908. data/rust-vendor/wit-component/tests/components/async-import-only-intrinsic/component.wat +34 -0
  909. data/rust-vendor/wit-component/tests/components/async-import-only-intrinsic/component.wit.print +5 -0
  910. data/rust-vendor/wit-component/tests/components/async-import-only-intrinsic/module.wat +4 -0
  911. data/rust-vendor/wit-component/tests/components/async-import-only-intrinsic/module.wit +17 -0
  912. data/rust-vendor/wit-component/tests/components/async-import-tricky/component.wat +39 -0
  913. data/rust-vendor/wit-component/tests/components/async-import-tricky/component.wit.print +5 -0
  914. data/rust-vendor/wit-component/tests/components/async-import-tricky/module.wat +6 -0
  915. data/rust-vendor/wit-component/tests/components/async-import-tricky/module.wit +17 -0
  916. data/rust-vendor/wit-component/tests/components/async-streams-and-futures/component.wat +649 -0
  917. data/rust-vendor/wit-component/tests/components/async-streams-and-futures/component.wit.print +9 -0
  918. data/rust-vendor/wit-component/tests/components/async-streams-and-futures/module.wat +92 -0
  919. data/rust-vendor/wit-component/tests/components/async-streams-and-futures/module.wit +12 -0
  920. data/rust-vendor/wit-component/tests/components/async-unit-builtins/component.wat +138 -0
  921. data/rust-vendor/wit-component/tests/components/async-unit-builtins/component.wit.print +4 -0
  922. data/rust-vendor/wit-component/tests/components/async-unit-builtins/module.wat +18 -0
  923. data/rust-vendor/wit-component/tests/components/async-unit-builtins/module.wit +4 -0
  924. data/rust-vendor/wit-component/tests/components/bare-funcs/component.wat +93 -0
  925. data/rust-vendor/wit-component/tests/components/bare-funcs/component.wit.print +9 -0
  926. data/rust-vendor/wit-component/tests/components/bare-funcs/module.wat +13 -0
  927. data/rust-vendor/wit-component/tests/components/bare-funcs/module.wit +7 -0
  928. data/rust-vendor/wit-component/tests/components/cm32-names/component.wat +366 -0
  929. data/rust-vendor/wit-component/tests/components/cm32-names/component.wit.print +25 -0
  930. data/rust-vendor/wit-component/tests/components/cm32-names/module.wat +32 -0
  931. data/rust-vendor/wit-component/tests/components/cm32-names/module.wit +30 -0
  932. data/rust-vendor/wit-component/tests/components/custom-page-sizes/component.wat +23 -0
  933. data/rust-vendor/wit-component/tests/components/custom-page-sizes/component.wit.print +4 -0
  934. data/rust-vendor/wit-component/tests/components/custom-page-sizes/module.wat +12 -0
  935. data/rust-vendor/wit-component/tests/components/custom-page-sizes/module.wit +3 -0
  936. data/rust-vendor/wit-component/tests/components/deduplicate-imports/adapt-wasi-snapshot-preview1.wat +10 -0
  937. data/rust-vendor/wit-component/tests/components/deduplicate-imports/adapt-wasi-snapshot-preview1.wit +10 -0
  938. data/rust-vendor/wit-component/tests/components/deduplicate-imports/component.wat +132 -0
  939. data/rust-vendor/wit-component/tests/components/deduplicate-imports/component.wit.print +9 -0
  940. data/rust-vendor/wit-component/tests/components/deduplicate-imports/module.wat +40 -0
  941. data/rust-vendor/wit-component/tests/components/deduplicate-imports/module.wit +9 -0
  942. data/rust-vendor/wit-component/tests/components/empty/component.wat +12 -0
  943. data/rust-vendor/wit-component/tests/components/empty/component.wit.print +4 -0
  944. data/rust-vendor/wit-component/tests/components/empty/module.wat +1 -0
  945. data/rust-vendor/wit-component/tests/components/empty/module.wit +2 -0
  946. data/rust-vendor/wit-component/tests/components/ensure-default-type-exports/component.wat +50 -0
  947. data/rust-vendor/wit-component/tests/components/ensure-default-type-exports/component.wit.print +7 -0
  948. data/rust-vendor/wit-component/tests/components/ensure-default-type-exports/module.wat +6 -0
  949. data/rust-vendor/wit-component/tests/components/ensure-default-type-exports/module.wit +17 -0
  950. data/rust-vendor/wit-component/tests/components/error-adapt-missing-memory/adapt-old.wat +4 -0
  951. data/rust-vendor/wit-component/tests/components/error-adapt-missing-memory/adapt-old.wit +5 -0
  952. data/rust-vendor/wit-component/tests/components/error-adapt-missing-memory/error.txt +1 -0
  953. data/rust-vendor/wit-component/tests/components/error-adapt-missing-memory/module.wat +3 -0
  954. data/rust-vendor/wit-component/tests/components/error-adapt-missing-memory/module.wit +2 -0
  955. data/rust-vendor/wit-component/tests/components/error-async-export-missing-callback/error.txt +1 -0
  956. data/rust-vendor/wit-component/tests/components/error-async-export-missing-callback/module.wat +6 -0
  957. data/rust-vendor/wit-component/tests/components/error-async-export-missing-callback/module.wit +10 -0
  958. data/rust-vendor/wit-component/tests/components/error-default-export-sig-mismatch/error.txt +1 -0
  959. data/rust-vendor/wit-component/tests/components/error-default-export-sig-mismatch/module.wat +3 -0
  960. data/rust-vendor/wit-component/tests/components/error-default-export-sig-mismatch/module.wit +5 -0
  961. data/rust-vendor/wit-component/tests/components/error-empty-module-import/error.txt +1 -0
  962. data/rust-vendor/wit-component/tests/components/error-empty-module-import/module.wat +3 -0
  963. data/rust-vendor/wit-component/tests/components/error-empty-module-import/module.wit +2 -0
  964. data/rust-vendor/wit-component/tests/components/error-export-sig-mismatch/error.txt +1 -0
  965. data/rust-vendor/wit-component/tests/components/error-export-sig-mismatch/module.wat +3 -0
  966. data/rust-vendor/wit-component/tests/components/error-export-sig-mismatch/module.wit +7 -0
  967. data/rust-vendor/wit-component/tests/components/error-import-resource-rep/error.txt +1 -0
  968. data/rust-vendor/wit-component/tests/components/error-import-resource-rep/module.wat +3 -0
  969. data/rust-vendor/wit-component/tests/components/error-import-resource-rep/module.wit +5 -0
  970. data/rust-vendor/wit-component/tests/components/error-import-resource-wrong-signature/error.txt +1 -0
  971. data/rust-vendor/wit-component/tests/components/error-import-resource-wrong-signature/module.wat +3 -0
  972. data/rust-vendor/wit-component/tests/components/error-import-resource-wrong-signature/module.wit +5 -0
  973. data/rust-vendor/wit-component/tests/components/error-import-sig-mismatch/error.txt +1 -0
  974. data/rust-vendor/wit-component/tests/components/error-import-sig-mismatch/module.wat +3 -0
  975. data/rust-vendor/wit-component/tests/components/error-import-sig-mismatch/module.wit +7 -0
  976. data/rust-vendor/wit-component/tests/components/error-invalid-module-import/error.txt +1 -0
  977. data/rust-vendor/wit-component/tests/components/error-invalid-module-import/module.wat +3 -0
  978. data/rust-vendor/wit-component/tests/components/error-invalid-module-import/module.wit +2 -0
  979. data/rust-vendor/wit-component/tests/components/error-link-duplicate-initializers/error.txt +1 -0
  980. data/rust-vendor/wit-component/tests/components/error-link-duplicate-initializers/lib-bar.wat +12 -0
  981. data/rust-vendor/wit-component/tests/components/error-link-duplicate-initializers/lib-bar.wit +3 -0
  982. data/rust-vendor/wit-component/tests/components/error-link-duplicate-initializers/lib-foo.wat +21 -0
  983. data/rust-vendor/wit-component/tests/components/error-link-duplicate-initializers/lib-foo.wit +10 -0
  984. data/rust-vendor/wit-component/tests/components/error-link-missing-needed/error.txt +2 -0
  985. data/rust-vendor/wit-component/tests/components/error-link-missing-needed/lib-foo.wat +15 -0
  986. data/rust-vendor/wit-component/tests/components/error-link-missing-needed/lib-foo.wit +10 -0
  987. data/rust-vendor/wit-component/tests/components/error-link-missing-symbols/error.txt +3 -0
  988. data/rust-vendor/wit-component/tests/components/error-link-missing-symbols/lib-foo.wat +13 -0
  989. data/rust-vendor/wit-component/tests/components/error-link-missing-symbols/lib-foo.wit +10 -0
  990. data/rust-vendor/wit-component/tests/components/error-missing-default-export/error.txt +1 -0
  991. data/rust-vendor/wit-component/tests/components/error-missing-default-export/module.wat +1 -0
  992. data/rust-vendor/wit-component/tests/components/error-missing-default-export/module.wit +4 -0
  993. data/rust-vendor/wit-component/tests/components/error-missing-export/error.txt +1 -0
  994. data/rust-vendor/wit-component/tests/components/error-missing-export/module.wat +1 -0
  995. data/rust-vendor/wit-component/tests/components/error-missing-export/module.wit +7 -0
  996. data/rust-vendor/wit-component/tests/components/error-missing-import/error.txt +1 -0
  997. data/rust-vendor/wit-component/tests/components/error-missing-import/module.wat +3 -0
  998. data/rust-vendor/wit-component/tests/components/error-missing-import/module.wit +2 -0
  999. data/rust-vendor/wit-component/tests/components/error-missing-import-func/error.txt +1 -0
  1000. data/rust-vendor/wit-component/tests/components/error-missing-import-func/module.wat +3 -0
  1001. data/rust-vendor/wit-component/tests/components/error-missing-import-func/module.wit +9 -0
  1002. data/rust-vendor/wit-component/tests/components/error-missing-module-metadata/adapt-old.wat +4 -0
  1003. data/rust-vendor/wit-component/tests/components/error-missing-module-metadata/adapt-old.wit +5 -0
  1004. data/rust-vendor/wit-component/tests/components/error-missing-module-metadata/error.txt +1 -0
  1005. data/rust-vendor/wit-component/tests/components/error-missing-module-metadata/module.wat +4 -0
  1006. data/rust-vendor/wit-component/tests/components/error-missing-module-metadata/module.wit +4 -0
  1007. data/rust-vendor/wit-component/tests/components/export-interface-using-import/component.wat +37 -0
  1008. data/rust-vendor/wit-component/tests/components/export-interface-using-import/component.wit.print +9 -0
  1009. data/rust-vendor/wit-component/tests/components/export-interface-using-import/module.wat +1 -0
  1010. data/rust-vendor/wit-component/tests/components/export-interface-using-import/module.wit +17 -0
  1011. data/rust-vendor/wit-component/tests/components/export-name-shuffling/component.wat +43 -0
  1012. data/rust-vendor/wit-component/tests/components/export-name-shuffling/component.wit.print +10 -0
  1013. data/rust-vendor/wit-component/tests/components/export-name-shuffling/module.wat +3 -0
  1014. data/rust-vendor/wit-component/tests/components/export-name-shuffling/module.wit +17 -0
  1015. data/rust-vendor/wit-component/tests/components/export-resource/component.wat +102 -0
  1016. data/rust-vendor/wit-component/tests/components/export-resource/component.wit.print +10 -0
  1017. data/rust-vendor/wit-component/tests/components/export-resource/module.wat +15 -0
  1018. data/rust-vendor/wit-component/tests/components/export-resource/module.wit +11 -0
  1019. data/rust-vendor/wit-component/tests/components/export-type-name-conflict/component.wat +46 -0
  1020. data/rust-vendor/wit-component/tests/components/export-type-name-conflict/component.wit.print +11 -0
  1021. data/rust-vendor/wit-component/tests/components/export-type-name-conflict/module.wat +5 -0
  1022. data/rust-vendor/wit-component/tests/components/export-type-name-conflict/module.wit +15 -0
  1023. data/rust-vendor/wit-component/tests/components/export-with-type-alias/component.wat +40 -0
  1024. data/rust-vendor/wit-component/tests/components/export-with-type-alias/component.wit.print +5 -0
  1025. data/rust-vendor/wit-component/tests/components/export-with-type-alias/module.wat +3 -0
  1026. data/rust-vendor/wit-component/tests/components/export-with-type-alias/module.wit +11 -0
  1027. data/rust-vendor/wit-component/tests/components/exports/component.wat +139 -0
  1028. data/rust-vendor/wit-component/tests/components/exports/component.wit.print +29 -0
  1029. data/rust-vendor/wit-component/tests/components/exports/module.wat +14 -0
  1030. data/rust-vendor/wit-component/tests/components/exports/module.wit +29 -0
  1031. data/rust-vendor/wit-component/tests/components/fallible-constructor/component.wat +73 -0
  1032. data/rust-vendor/wit-component/tests/components/fallible-constructor/component.wit.print +9 -0
  1033. data/rust-vendor/wit-component/tests/components/fallible-constructor/module.wat +5 -0
  1034. data/rust-vendor/wit-component/tests/components/fallible-constructor/module.wit +9 -0
  1035. data/rust-vendor/wit-component/tests/components/import-and-export-resource/component.wat +53 -0
  1036. data/rust-vendor/wit-component/tests/components/import-and-export-resource/component.wit.print +8 -0
  1037. data/rust-vendor/wit-component/tests/components/import-and-export-resource/module.wat +6 -0
  1038. data/rust-vendor/wit-component/tests/components/import-and-export-resource/module.wit +12 -0
  1039. data/rust-vendor/wit-component/tests/components/import-conflict/component.wat +118 -0
  1040. data/rust-vendor/wit-component/tests/components/import-conflict/component.wit.print +7 -0
  1041. data/rust-vendor/wit-component/tests/components/import-conflict/module.wat +7 -0
  1042. data/rust-vendor/wit-component/tests/components/import-conflict/module.wit +19 -0
  1043. data/rust-vendor/wit-component/tests/components/import-empty-interface/component.wat +12 -0
  1044. data/rust-vendor/wit-component/tests/components/import-empty-interface/component.wit.print +4 -0
  1045. data/rust-vendor/wit-component/tests/components/import-empty-interface/module.wat +1 -0
  1046. data/rust-vendor/wit-component/tests/components/import-empty-interface/module.wit +5 -0
  1047. data/rust-vendor/wit-component/tests/components/import-export/component.wat +124 -0
  1048. data/rust-vendor/wit-component/tests/components/import-export/component.wit.print +14 -0
  1049. data/rust-vendor/wit-component/tests/components/import-export/module.wat +10 -0
  1050. data/rust-vendor/wit-component/tests/components/import-export/module.wit +14 -0
  1051. data/rust-vendor/wit-component/tests/components/import-export-same-iface-name/component.wat +59 -0
  1052. data/rust-vendor/wit-component/tests/components/import-export-same-iface-name/component.wit.print +8 -0
  1053. data/rust-vendor/wit-component/tests/components/import-export-same-iface-name/deps/dep/foo.wit +5 -0
  1054. data/rust-vendor/wit-component/tests/components/import-export-same-iface-name/module.wat +5 -0
  1055. data/rust-vendor/wit-component/tests/components/import-export-same-iface-name/module.wit +11 -0
  1056. data/rust-vendor/wit-component/tests/components/import-in-adapter-and-main-module/adapt-old.wat +23 -0
  1057. data/rust-vendor/wit-component/tests/components/import-in-adapter-and-main-module/adapt-old.wit +9 -0
  1058. data/rust-vendor/wit-component/tests/components/import-in-adapter-and-main-module/component.wat +220 -0
  1059. data/rust-vendor/wit-component/tests/components/import-in-adapter-and-main-module/component.wit.print +16 -0
  1060. data/rust-vendor/wit-component/tests/components/import-in-adapter-and-main-module/deps/shared-dependency/doc.wit +13 -0
  1061. data/rust-vendor/wit-component/tests/components/import-in-adapter-and-main-module/deps/shared-dependency/types.wit +3 -0
  1062. data/rust-vendor/wit-component/tests/components/import-in-adapter-and-main-module/module.wat +15 -0
  1063. data/rust-vendor/wit-component/tests/components/import-in-adapter-and-main-module/module.wit +11 -0
  1064. data/rust-vendor/wit-component/tests/components/import-only-resource-static-function/component.wat +30 -0
  1065. data/rust-vendor/wit-component/tests/components/import-only-resource-static-function/component.wit.print +5 -0
  1066. data/rust-vendor/wit-component/tests/components/import-only-resource-static-function/module.wat +3 -0
  1067. data/rust-vendor/wit-component/tests/components/import-only-resource-static-function/module.wit +11 -0
  1068. data/rust-vendor/wit-component/tests/components/import-partial-export-full/component.wat +34 -0
  1069. data/rust-vendor/wit-component/tests/components/import-partial-export-full/component.wit.print +8 -0
  1070. data/rust-vendor/wit-component/tests/components/import-partial-export-full/module.wat +1 -0
  1071. data/rust-vendor/wit-component/tests/components/import-partial-export-full/module.wit +19 -0
  1072. data/rust-vendor/wit-component/tests/components/import-resource-in-interface/component.wat +41 -0
  1073. data/rust-vendor/wit-component/tests/components/import-resource-in-interface/component.wit.print +10 -0
  1074. data/rust-vendor/wit-component/tests/components/import-resource-in-interface/module.wat +5 -0
  1075. data/rust-vendor/wit-component/tests/components/import-resource-in-interface/module.wit +11 -0
  1076. data/rust-vendor/wit-component/tests/components/import-resource-simple/component.wat +33 -0
  1077. data/rust-vendor/wit-component/tests/components/import-resource-simple/component.wit.print +8 -0
  1078. data/rust-vendor/wit-component/tests/components/import-resource-simple/module.wat +5 -0
  1079. data/rust-vendor/wit-component/tests/components/import-resource-simple/module.wit +9 -0
  1080. data/rust-vendor/wit-component/tests/components/imports/component.wat +149 -0
  1081. data/rust-vendor/wit-component/tests/components/imports/component.wit.print +29 -0
  1082. data/rust-vendor/wit-component/tests/components/imports/module.wat +12 -0
  1083. data/rust-vendor/wit-component/tests/components/imports/module.wit +33 -0
  1084. data/rust-vendor/wit-component/tests/components/initialize/component.wat +38 -0
  1085. data/rust-vendor/wit-component/tests/components/initialize/component.wit.print +5 -0
  1086. data/rust-vendor/wit-component/tests/components/initialize/module.wat +6 -0
  1087. data/rust-vendor/wit-component/tests/components/initialize/module.wit +5 -0
  1088. data/rust-vendor/wit-component/tests/components/lift-options/component.wat +286 -0
  1089. data/rust-vendor/wit-component/tests/components/lift-options/component.wit.print +5 -0
  1090. data/rust-vendor/wit-component/tests/components/lift-options/module.wat +24 -0
  1091. data/rust-vendor/wit-component/tests/components/lift-options/module.wit +40 -0
  1092. data/rust-vendor/wit-component/tests/components/link/component.wat +271 -0
  1093. data/rust-vendor/wit-component/tests/components/link/component.wit.print +7 -0
  1094. data/rust-vendor/wit-component/tests/components/link/lib-bar.wat +29 -0
  1095. data/rust-vendor/wit-component/tests/components/link/lib-bar.wit +10 -0
  1096. data/rust-vendor/wit-component/tests/components/link/lib-c.wat +27 -0
  1097. data/rust-vendor/wit-component/tests/components/link/lib-c.wit +3 -0
  1098. data/rust-vendor/wit-component/tests/components/link/lib-foo.wat +55 -0
  1099. data/rust-vendor/wit-component/tests/components/link/lib-foo.wit +3 -0
  1100. data/rust-vendor/wit-component/tests/components/link/lib-unused.wat +55 -0
  1101. data/rust-vendor/wit-component/tests/components/link/lib-unused.wit +3 -0
  1102. data/rust-vendor/wit-component/tests/components/link-asyncify/component.wat +267 -0
  1103. data/rust-vendor/wit-component/tests/components/link-asyncify/component.wit.print +5 -0
  1104. data/rust-vendor/wit-component/tests/components/link-asyncify/lib-bar.wat +81 -0
  1105. data/rust-vendor/wit-component/tests/components/link-asyncify/lib-bar.wit +9 -0
  1106. data/rust-vendor/wit-component/tests/components/link-asyncify/lib-foo.wat +78 -0
  1107. data/rust-vendor/wit-component/tests/components/link-asyncify/lib-foo.wit +3 -0
  1108. data/rust-vendor/wit-component/tests/components/link-bare-funcs/component.wat +212 -0
  1109. data/rust-vendor/wit-component/tests/components/link-bare-funcs/component.wit.print +9 -0
  1110. data/rust-vendor/wit-component/tests/components/link-bare-funcs/lib-c.wat +27 -0
  1111. data/rust-vendor/wit-component/tests/components/link-bare-funcs/lib-c.wit +3 -0
  1112. data/rust-vendor/wit-component/tests/components/link-bare-funcs/lib-foo.wat +18 -0
  1113. data/rust-vendor/wit-component/tests/components/link-bare-funcs/lib-foo.wit +7 -0
  1114. data/rust-vendor/wit-component/tests/components/link-circular/component.wat +133 -0
  1115. data/rust-vendor/wit-component/tests/components/link-circular/component.wit.print +7 -0
  1116. data/rust-vendor/wit-component/tests/components/link-circular/lib-bar.wat +12 -0
  1117. data/rust-vendor/wit-component/tests/components/link-circular/lib-bar.wit +3 -0
  1118. data/rust-vendor/wit-component/tests/components/link-circular/lib-foo.wat +15 -0
  1119. data/rust-vendor/wit-component/tests/components/link-circular/lib-foo.wit +10 -0
  1120. data/rust-vendor/wit-component/tests/components/link-dl-openable/component.wat +108 -0
  1121. data/rust-vendor/wit-component/tests/components/link-dl-openable/component.wit.print +7 -0
  1122. data/rust-vendor/wit-component/tests/components/link-dl-openable/dlopen-lib-foo.wat +15 -0
  1123. data/rust-vendor/wit-component/tests/components/link-dl-openable/dlopen-lib-foo.wit +10 -0
  1124. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl/component.wat +657 -0
  1125. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl/component.wit.print +7 -0
  1126. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl/dlopen-lib-foo.wat +17 -0
  1127. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl/dlopen-lib-foo.wit +10 -0
  1128. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl/lib-c.wat +30 -0
  1129. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl/lib-c.wit +3 -0
  1130. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl/stub-missing-functions +0 -0
  1131. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl/use-built-in-libdl +0 -0
  1132. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/component.wat +654 -0
  1133. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/component.wit.print +7 -0
  1134. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/dlopen-lib-foo.wat +19 -0
  1135. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/dlopen-lib-foo.wit +10 -0
  1136. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/lib-c.wat +39 -0
  1137. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/lib-c.wit +3 -0
  1138. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/lib-unused.wat +55 -0
  1139. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/lib-unused.wit +3 -0
  1140. data/rust-vendor/wit-component/tests/components/link-dl-openable-builtin-libdl-with-unused/use-built-in-libdl +0 -0
  1141. data/rust-vendor/wit-component/tests/components/link-duplicate-symbols/component.wat +135 -0
  1142. data/rust-vendor/wit-component/tests/components/link-duplicate-symbols/component.wit.print +7 -0
  1143. data/rust-vendor/wit-component/tests/components/link-duplicate-symbols/lib-bar.wat +13 -0
  1144. data/rust-vendor/wit-component/tests/components/link-duplicate-symbols/lib-bar.wit +3 -0
  1145. data/rust-vendor/wit-component/tests/components/link-duplicate-symbols/lib-foo.wat +15 -0
  1146. data/rust-vendor/wit-component/tests/components/link-duplicate-symbols/lib-foo.wit +10 -0
  1147. data/rust-vendor/wit-component/tests/components/link-got-func/component.wat +125 -0
  1148. data/rust-vendor/wit-component/tests/components/link-got-func/component.wit.print +7 -0
  1149. data/rust-vendor/wit-component/tests/components/link-got-func/lib-bar.wat +10 -0
  1150. data/rust-vendor/wit-component/tests/components/link-got-func/lib-bar.wit +3 -0
  1151. data/rust-vendor/wit-component/tests/components/link-got-func/lib-foo.wat +10 -0
  1152. data/rust-vendor/wit-component/tests/components/link-got-func/lib-foo.wit +10 -0
  1153. data/rust-vendor/wit-component/tests/components/link-initialize/component.wat +271 -0
  1154. data/rust-vendor/wit-component/tests/components/link-initialize/component.wit.print +7 -0
  1155. data/rust-vendor/wit-component/tests/components/link-initialize/lib-bar.wat +29 -0
  1156. data/rust-vendor/wit-component/tests/components/link-initialize/lib-bar.wit +10 -0
  1157. data/rust-vendor/wit-component/tests/components/link-initialize/lib-c.wat +27 -0
  1158. data/rust-vendor/wit-component/tests/components/link-initialize/lib-c.wit +3 -0
  1159. data/rust-vendor/wit-component/tests/components/link-initialize/lib-foo.wat +55 -0
  1160. data/rust-vendor/wit-component/tests/components/link-initialize/lib-foo.wit +3 -0
  1161. data/rust-vendor/wit-component/tests/components/link-lib-with-async-export/component.wat +148 -0
  1162. data/rust-vendor/wit-component/tests/components/link-lib-with-async-export/component.wit.print +19 -0
  1163. data/rust-vendor/wit-component/tests/components/link-lib-with-async-export/lib-c.wat +4 -0
  1164. data/rust-vendor/wit-component/tests/components/link-lib-with-async-export/lib-c.wit +3 -0
  1165. data/rust-vendor/wit-component/tests/components/link-lib-with-async-export/lib-foo.wat +12 -0
  1166. data/rust-vendor/wit-component/tests/components/link-lib-with-async-export/lib-foo.wit +16 -0
  1167. data/rust-vendor/wit-component/tests/components/link-resources/component.wat +150 -0
  1168. data/rust-vendor/wit-component/tests/components/link-resources/component.wit.print +6 -0
  1169. data/rust-vendor/wit-component/tests/components/link-resources/lib-bar.wat +15 -0
  1170. data/rust-vendor/wit-component/tests/components/link-resources/lib-bar.wit +13 -0
  1171. data/rust-vendor/wit-component/tests/components/link-resources/lib-foo.wat +17 -0
  1172. data/rust-vendor/wit-component/tests/components/link-resources/lib-foo.wit +13 -0
  1173. data/rust-vendor/wit-component/tests/components/link-stack-high-and-low/component.wat +146 -0
  1174. data/rust-vendor/wit-component/tests/components/link-stack-high-and-low/component.wit.print +5 -0
  1175. data/rust-vendor/wit-component/tests/components/link-stack-high-and-low/lib-bar.wat +19 -0
  1176. data/rust-vendor/wit-component/tests/components/link-stack-high-and-low/lib-bar.wit +9 -0
  1177. data/rust-vendor/wit-component/tests/components/link-stack-high-and-low/lib-foo.wat +17 -0
  1178. data/rust-vendor/wit-component/tests/components/link-stack-high-and-low/lib-foo.wit +3 -0
  1179. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/adapt-wasip2.wat +8 -0
  1180. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/adapt-wasip2.wit +1 -0
  1181. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/component.wat +330 -0
  1182. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/component.wit.print +7 -0
  1183. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/deps/cli/environment.wit +5 -0
  1184. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/lib-bar.wat +29 -0
  1185. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/lib-bar.wit +10 -0
  1186. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/lib-c.wat +29 -0
  1187. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/lib-c.wit +5 -0
  1188. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/lib-foo.wat +55 -0
  1189. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/lib-foo.wit +3 -0
  1190. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/lib-unused.wat +55 -0
  1191. data/rust-vendor/wit-component/tests/components/link-stub-wasip2/lib-unused.wit +3 -0
  1192. data/rust-vendor/wit-component/tests/components/link-stubs/component.wat +118 -0
  1193. data/rust-vendor/wit-component/tests/components/link-stubs/component.wit.print +7 -0
  1194. data/rust-vendor/wit-component/tests/components/link-stubs/lib-foo.wat +13 -0
  1195. data/rust-vendor/wit-component/tests/components/link-stubs/lib-foo.wit +10 -0
  1196. data/rust-vendor/wit-component/tests/components/link-stubs/stub-missing-functions +0 -0
  1197. data/rust-vendor/wit-component/tests/components/link-tag/component.wat +123 -0
  1198. data/rust-vendor/wit-component/tests/components/link-tag/component.wit.print +5 -0
  1199. data/rust-vendor/wit-component/tests/components/link-tag/lib-bar.wat +6 -0
  1200. data/rust-vendor/wit-component/tests/components/link-tag/lib-bar.wit +3 -0
  1201. data/rust-vendor/wit-component/tests/components/link-tag/lib-foo.wat +7 -0
  1202. data/rust-vendor/wit-component/tests/components/link-tag/lib-foo.wit +5 -0
  1203. data/rust-vendor/wit-component/tests/components/link-weak-cabi-realloc/component.wat +99 -0
  1204. data/rust-vendor/wit-component/tests/components/link-weak-cabi-realloc/component.wit.print +5 -0
  1205. data/rust-vendor/wit-component/tests/components/link-weak-cabi-realloc/lib-foo.wat +14 -0
  1206. data/rust-vendor/wit-component/tests/components/link-weak-cabi-realloc/lib-foo.wit +9 -0
  1207. data/rust-vendor/wit-component/tests/components/link-weak-import/component.wat +120 -0
  1208. data/rust-vendor/wit-component/tests/components/link-weak-import/component.wit.print +7 -0
  1209. data/rust-vendor/wit-component/tests/components/link-weak-import/lib-foo.wat +15 -0
  1210. data/rust-vendor/wit-component/tests/components/link-weak-import/lib-foo.wit +10 -0
  1211. data/rust-vendor/wit-component/tests/components/live-exports-dead-imports/component.wat +38 -0
  1212. data/rust-vendor/wit-component/tests/components/live-exports-dead-imports/component.wit.print +5 -0
  1213. data/rust-vendor/wit-component/tests/components/live-exports-dead-imports/module.wat +4 -0
  1214. data/rust-vendor/wit-component/tests/components/live-exports-dead-imports/module.wit +12 -0
  1215. data/rust-vendor/wit-component/tests/components/lower-options/component.wat +281 -0
  1216. data/rust-vendor/wit-component/tests/components/lower-options/component.wit.print +5 -0
  1217. data/rust-vendor/wit-component/tests/components/lower-options/module.wat +20 -0
  1218. data/rust-vendor/wit-component/tests/components/lower-options/module.wit +40 -0
  1219. data/rust-vendor/wit-component/tests/components/many-same-names/component.wat +48 -0
  1220. data/rust-vendor/wit-component/tests/components/many-same-names/component.wit.print +10 -0
  1221. data/rust-vendor/wit-component/tests/components/many-same-names/module.wat +3 -0
  1222. data/rust-vendor/wit-component/tests/components/many-same-names/module.wit +21 -0
  1223. data/rust-vendor/wit-component/tests/components/merge-import-versions/component.wat +125 -0
  1224. data/rust-vendor/wit-component/tests/components/merge-import-versions/component.wit.print +5 -0
  1225. data/rust-vendor/wit-component/tests/components/merge-import-versions/module.wat +15 -0
  1226. data/rust-vendor/wit-component/tests/components/merge-import-versions/module.wit +30 -0
  1227. data/rust-vendor/wit-component/tests/components/merge-import-versions-with-adapter/adapt-old.wat +10 -0
  1228. data/rust-vendor/wit-component/tests/components/merge-import-versions-with-adapter/adapt-old.wit +19 -0
  1229. data/rust-vendor/wit-component/tests/components/merge-import-versions-with-adapter/component.wat +104 -0
  1230. data/rust-vendor/wit-component/tests/components/merge-import-versions-with-adapter/component.wit.print +5 -0
  1231. data/rust-vendor/wit-component/tests/components/merge-import-versions-with-adapter/module.wat +9 -0
  1232. data/rust-vendor/wit-component/tests/components/merge-import-versions-with-adapter/module.wit +14 -0
  1233. data/rust-vendor/wit-component/tests/components/multi-package/baz/qux/component.wat +90 -0
  1234. data/rust-vendor/wit-component/tests/components/multi-package/baz/qux/component.wit.print +13 -0
  1235. data/rust-vendor/wit-component/tests/components/multi-package/baz/qux/module.wat +7 -0
  1236. data/rust-vendor/wit-component/tests/components/multi-package/component.wat +44 -0
  1237. data/rust-vendor/wit-component/tests/components/multi-package/component.wit.print +4 -0
  1238. data/rust-vendor/wit-component/tests/components/multi-package/foo/bar/component.wat +82 -0
  1239. data/rust-vendor/wit-component/tests/components/multi-package/foo/bar/component.wit.print +13 -0
  1240. data/rust-vendor/wit-component/tests/components/multi-package/foo/bar/module.wat +6 -0
  1241. data/rust-vendor/wit-component/tests/components/multi-package/module.wit +25 -0
  1242. data/rust-vendor/wit-component/tests/components/no-realloc-required/component.wat +67 -0
  1243. data/rust-vendor/wit-component/tests/components/no-realloc-required/component.wit.print +7 -0
  1244. data/rust-vendor/wit-component/tests/components/no-realloc-required/module.wat +4 -0
  1245. data/rust-vendor/wit-component/tests/components/no-realloc-required/module.wit +7 -0
  1246. data/rust-vendor/wit-component/tests/components/post-return/component.wat +36 -0
  1247. data/rust-vendor/wit-component/tests/components/post-return/component.wit.print +5 -0
  1248. data/rust-vendor/wit-component/tests/components/post-return/module.wat +6 -0
  1249. data/rust-vendor/wit-component/tests/components/post-return/module.wit +5 -0
  1250. data/rust-vendor/wit-component/tests/components/rename-import-interface/component.wat +29 -0
  1251. data/rust-vendor/wit-component/tests/components/rename-import-interface/component.wit.print +5 -0
  1252. data/rust-vendor/wit-component/tests/components/rename-import-interface/module.wat +3 -0
  1253. data/rust-vendor/wit-component/tests/components/rename-import-interface/module.wit +9 -0
  1254. data/rust-vendor/wit-component/tests/components/rename-interface/component.wat +39 -0
  1255. data/rust-vendor/wit-component/tests/components/rename-interface/component.wit.print +10 -0
  1256. data/rust-vendor/wit-component/tests/components/rename-interface/module.wat +3 -0
  1257. data/rust-vendor/wit-component/tests/components/rename-interface/module.wit +18 -0
  1258. data/rust-vendor/wit-component/tests/components/resource-intrinsics-with-just-import/component.wat +28 -0
  1259. data/rust-vendor/wit-component/tests/components/resource-intrinsics-with-just-import/component.wit.print +7 -0
  1260. data/rust-vendor/wit-component/tests/components/resource-intrinsics-with-just-import/module.wat +3 -0
  1261. data/rust-vendor/wit-component/tests/components/resource-intrinsics-with-just-import/module.wit +7 -0
  1262. data/rust-vendor/wit-component/tests/components/resource-used-through-import/component.wat +57 -0
  1263. data/rust-vendor/wit-component/tests/components/resource-used-through-import/component.wit.print +11 -0
  1264. data/rust-vendor/wit-component/tests/components/resource-used-through-import/module.wat +6 -0
  1265. data/rust-vendor/wit-component/tests/components/resource-used-through-import/module.wit +13 -0
  1266. data/rust-vendor/wit-component/tests/components/resource-using-export/component.wat +64 -0
  1267. data/rust-vendor/wit-component/tests/components/resource-using-export/component.wit.print +10 -0
  1268. data/rust-vendor/wit-component/tests/components/resource-using-export/module.wat +6 -0
  1269. data/rust-vendor/wit-component/tests/components/resource-using-export/module.wit +16 -0
  1270. data/rust-vendor/wit-component/tests/components/simple/component.wat +64 -0
  1271. data/rust-vendor/wit-component/tests/components/simple/component.wit.print +7 -0
  1272. data/rust-vendor/wit-component/tests/components/simple/module.wat +10 -0
  1273. data/rust-vendor/wit-component/tests/components/simple/module.wit +7 -0
  1274. data/rust-vendor/wit-component/tests/components/threading/component.wat +163 -0
  1275. data/rust-vendor/wit-component/tests/components/threading/component.wit.print +6 -0
  1276. data/rust-vendor/wit-component/tests/components/threading/module.wat +22 -0
  1277. data/rust-vendor/wit-component/tests/components/threading/module.wit +10 -0
  1278. data/rust-vendor/wit-component/tests/components/tricky-order/component.wat +44 -0
  1279. data/rust-vendor/wit-component/tests/components/tricky-order/component.wit.print +11 -0
  1280. data/rust-vendor/wit-component/tests/components/tricky-order/module.wat +1 -0
  1281. data/rust-vendor/wit-component/tests/components/tricky-order/module.wit +20 -0
  1282. data/rust-vendor/wit-component/tests/components/tricky-resources/component.wat +75 -0
  1283. data/rust-vendor/wit-component/tests/components/tricky-resources/component.wit.print +11 -0
  1284. data/rust-vendor/wit-component/tests/components/tricky-resources/module.wat +7 -0
  1285. data/rust-vendor/wit-component/tests/components/tricky-resources/module.wit +19 -0
  1286. data/rust-vendor/wit-component/tests/components/tricky-resources2/component.wat +50 -0
  1287. data/rust-vendor/wit-component/tests/components/tricky-resources2/component.wit.print +10 -0
  1288. data/rust-vendor/wit-component/tests/components/tricky-resources2/module.wat +4 -0
  1289. data/rust-vendor/wit-component/tests/components/tricky-resources2/module.wit +14 -0
  1290. data/rust-vendor/wit-component/tests/components/tricky-resources3/component.wat +44 -0
  1291. data/rust-vendor/wit-component/tests/components/tricky-resources3/component.wit.print +9 -0
  1292. data/rust-vendor/wit-component/tests/components/tricky-resources3/module.wat +1 -0
  1293. data/rust-vendor/wit-component/tests/components/tricky-resources3/module.wit +17 -0
  1294. data/rust-vendor/wit-component/tests/components/tricky-resources4/component.wat +64 -0
  1295. data/rust-vendor/wit-component/tests/components/tricky-resources4/component.wit.print +8 -0
  1296. data/rust-vendor/wit-component/tests/components/tricky-resources4/module.wat +6 -0
  1297. data/rust-vendor/wit-component/tests/components/tricky-resources4/module.wit +16 -0
  1298. data/rust-vendor/wit-component/tests/components/unused-import/component.wat +29 -0
  1299. data/rust-vendor/wit-component/tests/components/unused-import/component.wit.print +5 -0
  1300. data/rust-vendor/wit-component/tests/components/unused-import/module.wat +3 -0
  1301. data/rust-vendor/wit-component/tests/components/unused-import/module.wit +12 -0
  1302. data/rust-vendor/wit-component/tests/components/worlds-with-type-renamings/component.wat +67 -0
  1303. data/rust-vendor/wit-component/tests/components/worlds-with-type-renamings/component.wit.print +8 -0
  1304. data/rust-vendor/wit-component/tests/components/worlds-with-type-renamings/module.wat +12 -0
  1305. data/rust-vendor/wit-component/tests/components/worlds-with-type-renamings/module.wit +17 -0
  1306. data/rust-vendor/wit-component/tests/components/worlds-with-types/component.wat +25 -0
  1307. data/rust-vendor/wit-component/tests/components/worlds-with-types/component.wit.print +11 -0
  1308. data/rust-vendor/wit-component/tests/components/worlds-with-types/module.wat +3 -0
  1309. data/rust-vendor/wit-component/tests/components/worlds-with-types/module.wit +10 -0
  1310. data/rust-vendor/wit-component/tests/components.rs +291 -0
  1311. data/rust-vendor/wit-component/tests/interfaces/console.wat +18 -0
  1312. data/rust-vendor/wit-component/tests/interfaces/console.wit +5 -0
  1313. data/rust-vendor/wit-component/tests/interfaces/console.wit.print +6 -0
  1314. data/rust-vendor/wit-component/tests/interfaces/diamond-disambiguate/foo.wit.print +20 -0
  1315. data/rust-vendor/wit-component/tests/interfaces/diamond-disambiguate/join.wit +10 -0
  1316. data/rust-vendor/wit-component/tests/interfaces/diamond-disambiguate/shared1.wit +3 -0
  1317. data/rust-vendor/wit-component/tests/interfaces/diamond-disambiguate/shared2.wit +3 -0
  1318. data/rust-vendor/wit-component/tests/interfaces/diamond-disambiguate.wat +70 -0
  1319. data/rust-vendor/wit-component/tests/interfaces/diamond.wat +107 -0
  1320. data/rust-vendor/wit-component/tests/interfaces/diamond.wit +31 -0
  1321. data/rust-vendor/wit-component/tests/interfaces/diamond.wit.print +34 -0
  1322. data/rust-vendor/wit-component/tests/interfaces/doc-comments/foo.wit +79 -0
  1323. data/rust-vendor/wit-component/tests/interfaces/doc-comments/foo.wit.print +78 -0
  1324. data/rust-vendor/wit-component/tests/interfaces/doc-comments.wat +73 -0
  1325. data/rust-vendor/wit-component/tests/interfaces/empty.wat +50 -0
  1326. data/rust-vendor/wit-component/tests/interfaces/empty.wit +12 -0
  1327. data/rust-vendor/wit-component/tests/interfaces/empty.wit.print +16 -0
  1328. data/rust-vendor/wit-component/tests/interfaces/export-other-packages-interface/deps/the-dep/the-doc.wit +9 -0
  1329. data/rust-vendor/wit-component/tests/interfaces/export-other-packages-interface/foo.wit +5 -0
  1330. data/rust-vendor/wit-component/tests/interfaces/export-other-packages-interface/foo.wit.print +5 -0
  1331. data/rust-vendor/wit-component/tests/interfaces/export-other-packages-interface.wat +23 -0
  1332. data/rust-vendor/wit-component/tests/interfaces/exports.wat +39 -0
  1333. data/rust-vendor/wit-component/tests/interfaces/exports.wit +13 -0
  1334. data/rust-vendor/wit-component/tests/interfaces/exports.wit.print +13 -0
  1335. data/rust-vendor/wit-component/tests/interfaces/flags.wat +79 -0
  1336. data/rust-vendor/wit-component/tests/interfaces/flags.wit +100 -0
  1337. data/rust-vendor/wit-component/tests/interfaces/flags.wit.print +100 -0
  1338. data/rust-vendor/wit-component/tests/interfaces/floats.wat +47 -0
  1339. data/rust-vendor/wit-component/tests/interfaces/floats.wit +12 -0
  1340. data/rust-vendor/wit-component/tests/interfaces/floats.wit.print +15 -0
  1341. data/rust-vendor/wit-component/tests/interfaces/foreign-use-chain/deps/bar/bar.wit +9 -0
  1342. data/rust-vendor/wit-component/tests/interfaces/foreign-use-chain/foo.wit +5 -0
  1343. data/rust-vendor/wit-component/tests/interfaces/foreign-use-chain/foo.wit.print +6 -0
  1344. data/rust-vendor/wit-component/tests/interfaces/foreign-use-chain.wat +31 -0
  1345. data/rust-vendor/wit-component/tests/interfaces/import-and-export.wat +54 -0
  1346. data/rust-vendor/wit-component/tests/interfaces/import-and-export.wit +14 -0
  1347. data/rust-vendor/wit-component/tests/interfaces/import-and-export.wit.print +15 -0
  1348. data/rust-vendor/wit-component/tests/interfaces/integers.wat +107 -0
  1349. data/rust-vendor/wit-component/tests/interfaces/integers.wit +27 -0
  1350. data/rust-vendor/wit-component/tests/interfaces/integers.wit.print +45 -0
  1351. data/rust-vendor/wit-component/tests/interfaces/lists.wat +211 -0
  1352. data/rust-vendor/wit-component/tests/interfaces/lists.wit +96 -0
  1353. data/rust-vendor/wit-component/tests/interfaces/lists.wit.print +96 -0
  1354. data/rust-vendor/wit-component/tests/interfaces/maps.wat +186 -0
  1355. data/rust-vendor/wit-component/tests/interfaces/maps.wit +38 -0
  1356. data/rust-vendor/wit-component/tests/interfaces/maps.wit.print +57 -0
  1357. data/rust-vendor/wit-component/tests/interfaces/multi-doc/a.wit +9 -0
  1358. data/rust-vendor/wit-component/tests/interfaces/multi-doc/b.wit +9 -0
  1359. data/rust-vendor/wit-component/tests/interfaces/multi-doc/foo.wit.print +20 -0
  1360. data/rust-vendor/wit-component/tests/interfaces/multi-doc.wat +78 -0
  1361. data/rust-vendor/wit-component/tests/interfaces/multiple-use.wat +67 -0
  1362. data/rust-vendor/wit-component/tests/interfaces/multiple-use.wit +16 -0
  1363. data/rust-vendor/wit-component/tests/interfaces/multiple-use.wit.print +18 -0
  1364. data/rust-vendor/wit-component/tests/interfaces/pkg-use-chain/chain.wit.print +18 -0
  1365. data/rust-vendor/wit-component/tests/interfaces/pkg-use-chain/def.wit +13 -0
  1366. data/rust-vendor/wit-component/tests/interfaces/pkg-use-chain/the-use.wit +5 -0
  1367. data/rust-vendor/wit-component/tests/interfaces/pkg-use-chain.wat +70 -0
  1368. data/rust-vendor/wit-component/tests/interfaces/pkg-use-chain2/bar.wit +13 -0
  1369. data/rust-vendor/wit-component/tests/interfaces/pkg-use-chain2/foo.wit +5 -0
  1370. data/rust-vendor/wit-component/tests/interfaces/pkg-use-chain2/foo.wit.print +20 -0
  1371. data/rust-vendor/wit-component/tests/interfaces/pkg-use-chain2.wat +70 -0
  1372. data/rust-vendor/wit-component/tests/interfaces/preserve-dep-type-order/deps/dep/foo.wit +11 -0
  1373. data/rust-vendor/wit-component/tests/interfaces/preserve-dep-type-order/foo.wit +9 -0
  1374. data/rust-vendor/wit-component/tests/interfaces/preserve-dep-type-order/foo.wit.print +9 -0
  1375. data/rust-vendor/wit-component/tests/interfaces/preserve-dep-type-order.wat +47 -0
  1376. data/rust-vendor/wit-component/tests/interfaces/preserve-foreign-reexport/deps/my-dep/my-doc.wit +8 -0
  1377. data/rust-vendor/wit-component/tests/interfaces/preserve-foreign-reexport/foo.wit +5 -0
  1378. data/rust-vendor/wit-component/tests/interfaces/preserve-foreign-reexport/foo.wit.print +5 -0
  1379. data/rust-vendor/wit-component/tests/interfaces/preserve-foreign-reexport.wat +24 -0
  1380. data/rust-vendor/wit-component/tests/interfaces/print-keyword.wat +21 -0
  1381. data/rust-vendor/wit-component/tests/interfaces/print-keyword.wit +10 -0
  1382. data/rust-vendor/wit-component/tests/interfaces/print-keyword.wit.print +12 -0
  1383. data/rust-vendor/wit-component/tests/interfaces/records.wat +141 -0
  1384. data/rust-vendor/wit-component/tests/interfaces/records.wit +63 -0
  1385. data/rust-vendor/wit-component/tests/interfaces/records.wit.print +64 -0
  1386. data/rust-vendor/wit-component/tests/interfaces/reference-out-of-order.wat +63 -0
  1387. data/rust-vendor/wit-component/tests/interfaces/reference-out-of-order.wit +28 -0
  1388. data/rust-vendor/wit-component/tests/interfaces/reference-out-of-order.wit.print +31 -0
  1389. data/rust-vendor/wit-component/tests/interfaces/resources.wat +192 -0
  1390. data/rust-vendor/wit-component/tests/interfaces/resources.wit +80 -0
  1391. data/rust-vendor/wit-component/tests/interfaces/resources.wit.print +81 -0
  1392. data/rust-vendor/wit-component/tests/interfaces/simple-deps/deps/some-dep/types.wit +5 -0
  1393. data/rust-vendor/wit-component/tests/interfaces/simple-deps/foo.wit +4 -0
  1394. data/rust-vendor/wit-component/tests/interfaces/simple-deps/foo.wit.print +6 -0
  1395. data/rust-vendor/wit-component/tests/interfaces/simple-deps.wat +26 -0
  1396. data/rust-vendor/wit-component/tests/interfaces/simple-multi/bar.wit +1 -0
  1397. data/rust-vendor/wit-component/tests/interfaces/simple-multi/foo.wit +3 -0
  1398. data/rust-vendor/wit-component/tests/interfaces/simple-multi/foo.wit.print +8 -0
  1399. data/rust-vendor/wit-component/tests/interfaces/simple-multi.wat +24 -0
  1400. data/rust-vendor/wit-component/tests/interfaces/simple-use.wat +40 -0
  1401. data/rust-vendor/wit-component/tests/interfaces/simple-use.wit +13 -0
  1402. data/rust-vendor/wit-component/tests/interfaces/simple-use.wit.print +15 -0
  1403. data/rust-vendor/wit-component/tests/interfaces/simple-world.wat +35 -0
  1404. data/rust-vendor/wit-component/tests/interfaces/simple-world.wit +9 -0
  1405. data/rust-vendor/wit-component/tests/interfaces/simple-world.wit.print +9 -0
  1406. data/rust-vendor/wit-component/tests/interfaces/single-named-result.wat +18 -0
  1407. data/rust-vendor/wit-component/tests/interfaces/type-alias.wat +51 -0
  1408. data/rust-vendor/wit-component/tests/interfaces/type-alias.wit +13 -0
  1409. data/rust-vendor/wit-component/tests/interfaces/type-alias.wit.print +15 -0
  1410. data/rust-vendor/wit-component/tests/interfaces/type-alias2.wat +41 -0
  1411. data/rust-vendor/wit-component/tests/interfaces/type-alias2.wit +15 -0
  1412. data/rust-vendor/wit-component/tests/interfaces/type-alias2.wit.print +15 -0
  1413. data/rust-vendor/wit-component/tests/interfaces/upstream-deps-same-name/deps/a/the-name.wit +4 -0
  1414. data/rust-vendor/wit-component/tests/interfaces/upstream-deps-same-name/deps/b/the-name.wit +4 -0
  1415. data/rust-vendor/wit-component/tests/interfaces/upstream-deps-same-name/foo.wit +6 -0
  1416. data/rust-vendor/wit-component/tests/interfaces/upstream-deps-same-name/foo.wit.print +7 -0
  1417. data/rust-vendor/wit-component/tests/interfaces/upstream-deps-same-name.wat +36 -0
  1418. data/rust-vendor/wit-component/tests/interfaces/use-chain.wat +72 -0
  1419. data/rust-vendor/wit-component/tests/interfaces/use-chain.wit +15 -0
  1420. data/rust-vendor/wit-component/tests/interfaces/use-chain.wit.print +18 -0
  1421. data/rust-vendor/wit-component/tests/interfaces/use-for-type.wat +49 -0
  1422. data/rust-vendor/wit-component/tests/interfaces/use-for-type.wit +16 -0
  1423. data/rust-vendor/wit-component/tests/interfaces/use-for-type.wit.print +17 -0
  1424. data/rust-vendor/wit-component/tests/interfaces/variants.wat +197 -0
  1425. data/rust-vendor/wit-component/tests/interfaces/variants.wit +78 -0
  1426. data/rust-vendor/wit-component/tests/interfaces/variants.wit.print +95 -0
  1427. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/cli/command.wit +7 -0
  1428. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/cli/environment.wit +18 -0
  1429. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/cli/exit.wit +4 -0
  1430. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/cli/imports.wit +20 -0
  1431. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/cli/run.wit +4 -0
  1432. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/cli/stdio.wit +17 -0
  1433. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/cli/terminal.wit +47 -0
  1434. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/clocks/monotonic-clock.wit +45 -0
  1435. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/clocks/wall-clock.wit +42 -0
  1436. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/clocks/world.wit +6 -0
  1437. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/filesystem/preopens.wit +8 -0
  1438. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/filesystem/types.wit +634 -0
  1439. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/filesystem/world.wit +6 -0
  1440. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/io/error.wit +34 -0
  1441. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/io/poll.wit +41 -0
  1442. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/io/streams.wit +251 -0
  1443. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/io/world.wit +6 -0
  1444. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/random/insecure-seed.wit +25 -0
  1445. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/random/insecure.wit +22 -0
  1446. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/random/random.wit +26 -0
  1447. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/random/world.wit +7 -0
  1448. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/sockets/instance-network.wit +9 -0
  1449. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/sockets/ip-name-lookup.wit +51 -0
  1450. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/sockets/network.wit +147 -0
  1451. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/sockets/tcp-create-socket.wit +26 -0
  1452. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/sockets/tcp.wit +321 -0
  1453. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/sockets/udp-create-socket.wit +26 -0
  1454. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/sockets/udp.wit +277 -0
  1455. data/rust-vendor/wit-component/tests/interfaces/wasi-http/deps/sockets/world.wit +11 -0
  1456. data/rust-vendor/wit-component/tests/interfaces/wasi-http/handler.wit +43 -0
  1457. data/rust-vendor/wit-component/tests/interfaces/wasi-http/http.wit.print +571 -0
  1458. data/rust-vendor/wit-component/tests/interfaces/wasi-http/proxy.wit +32 -0
  1459. data/rust-vendor/wit-component/tests/interfaces/wasi-http/types.wit +570 -0
  1460. data/rust-vendor/wit-component/tests/interfaces/wasi-http.wat +881 -0
  1461. data/rust-vendor/wit-component/tests/interfaces/world-inline-interface.wat +24 -0
  1462. data/rust-vendor/wit-component/tests/interfaces/world-inline-interface.wit +6 -0
  1463. data/rust-vendor/wit-component/tests/interfaces/world-inline-interface.wit.print +9 -0
  1464. data/rust-vendor/wit-component/tests/interfaces/world-pkg-conflict/bar.wit +3 -0
  1465. data/rust-vendor/wit-component/tests/interfaces/world-pkg-conflict/foo.wit +9 -0
  1466. data/rust-vendor/wit-component/tests/interfaces/world-pkg-conflict/foo.wit.print +12 -0
  1467. data/rust-vendor/wit-component/tests/interfaces/world-pkg-conflict.wat +47 -0
  1468. data/rust-vendor/wit-component/tests/interfaces/world-top-level.wat +55 -0
  1469. data/rust-vendor/wit-component/tests/interfaces/world-top-level.wit +20 -0
  1470. data/rust-vendor/wit-component/tests/interfaces/world-top-level.wit.print +19 -0
  1471. data/rust-vendor/wit-component/tests/interfaces/worlds-with-types.wat +56 -0
  1472. data/rust-vendor/wit-component/tests/interfaces/worlds-with-types.wit +23 -0
  1473. data/rust-vendor/wit-component/tests/interfaces/worlds-with-types.wit.print +23 -0
  1474. data/rust-vendor/wit-component/tests/interfaces.rs +123 -0
  1475. data/rust-vendor/wit-component/tests/linking.rs +299 -0
  1476. data/rust-vendor/wit-component/tests/merge/bad-interface1/error.txt +1 -0
  1477. data/rust-vendor/wit-component/tests/merge/bad-interface1/from/a.wit +5 -0
  1478. data/rust-vendor/wit-component/tests/merge/bad-interface1/from/deps/foo/a.wit +5 -0
  1479. data/rust-vendor/wit-component/tests/merge/bad-interface1/into/a.wit +5 -0
  1480. data/rust-vendor/wit-component/tests/merge/bad-interface1/into/deps/foo/a.wit +5 -0
  1481. data/rust-vendor/wit-component/tests/merge/bad-interface2/error.txt +1 -0
  1482. data/rust-vendor/wit-component/tests/merge/bad-interface2/from/a.wit +5 -0
  1483. data/rust-vendor/wit-component/tests/merge/bad-interface2/from/deps/foo/a.wit +7 -0
  1484. data/rust-vendor/wit-component/tests/merge/bad-interface2/into/a.wit +5 -0
  1485. data/rust-vendor/wit-component/tests/merge/bad-interface2/into/deps/foo/a.wit +7 -0
  1486. data/rust-vendor/wit-component/tests/merge/bad-world1/error.txt +1 -0
  1487. data/rust-vendor/wit-component/tests/merge/bad-world1/from/a.wit +4 -0
  1488. data/rust-vendor/wit-component/tests/merge/bad-world1/from/deps/foo/a.wit +11 -0
  1489. data/rust-vendor/wit-component/tests/merge/bad-world1/into/a.wit +4 -0
  1490. data/rust-vendor/wit-component/tests/merge/bad-world1/into/deps/foo/a.wit +9 -0
  1491. data/rust-vendor/wit-component/tests/merge/bad-world2/error.txt +1 -0
  1492. data/rust-vendor/wit-component/tests/merge/bad-world2/from/a.wit +5 -0
  1493. data/rust-vendor/wit-component/tests/merge/bad-world2/from/deps/foo/a.wit +8 -0
  1494. data/rust-vendor/wit-component/tests/merge/bad-world2/into/a.wit +5 -0
  1495. data/rust-vendor/wit-component/tests/merge/bad-world2/into/deps/foo/a.wit +9 -0
  1496. data/rust-vendor/wit-component/tests/merge/bad-world3/error.txt +1 -0
  1497. data/rust-vendor/wit-component/tests/merge/bad-world3/from/a.wit +5 -0
  1498. data/rust-vendor/wit-component/tests/merge/bad-world3/from/deps/foo/a.wit +8 -0
  1499. data/rust-vendor/wit-component/tests/merge/bad-world3/into/a.wit +5 -0
  1500. data/rust-vendor/wit-component/tests/merge/bad-world3/into/deps/foo/a.wit +9 -0
  1501. data/rust-vendor/wit-component/tests/merge/bad-world4/error.txt +1 -0
  1502. data/rust-vendor/wit-component/tests/merge/bad-world4/from/a.wit +5 -0
  1503. data/rust-vendor/wit-component/tests/merge/bad-world4/from/deps/foo/a.wit +11 -0
  1504. data/rust-vendor/wit-component/tests/merge/bad-world4/into/a.wit +5 -0
  1505. data/rust-vendor/wit-component/tests/merge/bad-world4/into/deps/foo/a.wit +9 -0
  1506. data/rust-vendor/wit-component/tests/merge/bad-world5/error.txt +1 -0
  1507. data/rust-vendor/wit-component/tests/merge/bad-world5/from/a.wit +5 -0
  1508. data/rust-vendor/wit-component/tests/merge/bad-world5/from/deps/foo/a.wit +11 -0
  1509. data/rust-vendor/wit-component/tests/merge/bad-world5/into/a.wit +5 -0
  1510. data/rust-vendor/wit-component/tests/merge/bad-world5/into/deps/foo/a.wit +9 -0
  1511. data/rust-vendor/wit-component/tests/merge/success/from/a.wit +7 -0
  1512. data/rust-vendor/wit-component/tests/merge/success/from/deps/foo/only-from.wit +5 -0
  1513. data/rust-vendor/wit-component/tests/merge/success/from/deps/foo/shared.wit +46 -0
  1514. data/rust-vendor/wit-component/tests/merge/success/from/deps/only-from-dep/a.wit +5 -0
  1515. data/rust-vendor/wit-component/tests/merge/success/into/b.wit +7 -0
  1516. data/rust-vendor/wit-component/tests/merge/success/into/deps/foo/only-into.wit +5 -0
  1517. data/rust-vendor/wit-component/tests/merge/success/into/deps/foo/shared.wit +44 -0
  1518. data/rust-vendor/wit-component/tests/merge/success/merge/foo.wit +77 -0
  1519. data/rust-vendor/wit-component/tests/merge/success/merge/from.wit +8 -0
  1520. data/rust-vendor/wit-component/tests/merge/success/merge/into.wit +8 -0
  1521. data/rust-vendor/wit-component/tests/merge/success/merge/only-from-dep.wit +6 -0
  1522. data/rust-vendor/wit-component/tests/merge.rs +80 -0
  1523. data/rust-vendor/wit-component/tests/targets/error-missing-export/error.txt +2 -0
  1524. data/rust-vendor/wit-component/tests/targets/error-missing-export/test.wat +39 -0
  1525. data/rust-vendor/wit-component/tests/targets/error-missing-export/test.wit +18 -0
  1526. data/rust-vendor/wit-component/tests/targets/error-missing-import/error.txt +2 -0
  1527. data/rust-vendor/wit-component/tests/targets/error-missing-import/test.wat +37 -0
  1528. data/rust-vendor/wit-component/tests/targets/error-missing-import/test.wit +13 -0
  1529. data/rust-vendor/wit-component/tests/targets/success/test.wat +56 -0
  1530. data/rust-vendor/wit-component/tests/targets/success/test.wit +14 -0
  1531. data/rust-vendor/wit-component/tests/targets/success-empty/test.wat +1 -0
  1532. data/rust-vendor/wit-component/tests/targets/success-empty/test.wit +9 -0
  1533. data/rust-vendor/wit-component/tests/targets.rs +89 -0
  1534. data/rust-vendor/wit-component/tests/wit/parse-dir/wit/deps/bar/bar.wit +9 -0
  1535. data/rust-vendor/wit-component/tests/wit/parse-dir/wit/world.wit +5 -0
  1536. data/rust-vendor/wit-component/tests/wit.rs +49 -0
  1537. data/rust-vendor/wit-parser/.cargo-checksum.json +1 -0
  1538. data/rust-vendor/wit-parser/.cargo_vcs_info.json +6 -0
  1539. data/rust-vendor/wit-parser/Cargo.lock +576 -0
  1540. data/rust-vendor/wit-parser/Cargo.toml +157 -0
  1541. data/rust-vendor/wit-parser/Cargo.toml.orig +56 -0
  1542. data/rust-vendor/wit-parser/README.md +13 -0
  1543. data/rust-vendor/wit-parser/src/abi.rs +410 -0
  1544. data/rust-vendor/wit-parser/src/ast/lex.rs +751 -0
  1545. data/rust-vendor/wit-parser/src/ast/resolve.rs +1813 -0
  1546. data/rust-vendor/wit-parser/src/ast/toposort.rs +249 -0
  1547. data/rust-vendor/wit-parser/src/ast.rs +1958 -0
  1548. data/rust-vendor/wit-parser/src/decoding.rs +1864 -0
  1549. data/rust-vendor/wit-parser/src/lib.rs +1413 -0
  1550. data/rust-vendor/wit-parser/src/live.rs +264 -0
  1551. data/rust-vendor/wit-parser/src/metadata.rs +772 -0
  1552. data/rust-vendor/wit-parser/src/resolve/clone.rs +227 -0
  1553. data/rust-vendor/wit-parser/src/resolve.rs +4636 -0
  1554. data/rust-vendor/wit-parser/src/serde_.rs +140 -0
  1555. data/rust-vendor/wit-parser/src/sizealign.rs +626 -0
  1556. data/rust-vendor/wit-parser/tests/.gitignore +2 -0
  1557. data/rust-vendor/wit-parser/tests/all.rs +153 -0
  1558. data/rust-vendor/wit-parser/tests/ui/async.wit +24 -0
  1559. data/rust-vendor/wit-parser/tests/ui/async.wit.json +151 -0
  1560. data/rust-vendor/wit-parser/tests/ui/comments.wit +25 -0
  1561. data/rust-vendor/wit-parser/tests/ui/comments.wit.json +46 -0
  1562. data/rust-vendor/wit-parser/tests/ui/complex-include/deps/bar/root.wit +9 -0
  1563. data/rust-vendor/wit-parser/tests/ui/complex-include/deps/baz/root.wit +9 -0
  1564. data/rust-vendor/wit-parser/tests/ui/complex-include/root.wit +26 -0
  1565. data/rust-vendor/wit-parser/tests/ui/complex-include.wit.json +200 -0
  1566. data/rust-vendor/wit-parser/tests/ui/cross-package-resource/deps/foo/foo.wit +5 -0
  1567. data/rust-vendor/wit-parser/tests/ui/cross-package-resource/foo.wit +7 -0
  1568. data/rust-vendor/wit-parser/tests/ui/cross-package-resource.wit.json +67 -0
  1569. data/rust-vendor/wit-parser/tests/ui/diamond1/deps/dep1/types.wit +2 -0
  1570. data/rust-vendor/wit-parser/tests/ui/diamond1/deps/dep2/types.wit +2 -0
  1571. data/rust-vendor/wit-parser/tests/ui/diamond1/join.wit +6 -0
  1572. data/rust-vendor/wit-parser/tests/ui/diamond1.wit.json +59 -0
  1573. data/rust-vendor/wit-parser/tests/ui/disambiguate-diamond/shared1.wit +3 -0
  1574. data/rust-vendor/wit-parser/tests/ui/disambiguate-diamond/shared2.wit +3 -0
  1575. data/rust-vendor/wit-parser/tests/ui/disambiguate-diamond/world.wit +13 -0
  1576. data/rust-vendor/wit-parser/tests/ui/disambiguate-diamond.wit.json +115 -0
  1577. data/rust-vendor/wit-parser/tests/ui/empty.wit +1 -0
  1578. data/rust-vendor/wit-parser/tests/ui/empty.wit.json +12 -0
  1579. data/rust-vendor/wit-parser/tests/ui/error-context.wit +7 -0
  1580. data/rust-vendor/wit-parser/tests/ui/error-context.wit.json +59 -0
  1581. data/rust-vendor/wit-parser/tests/ui/feature-gates.wit +118 -0
  1582. data/rust-vendor/wit-parser/tests/ui/feature-gates.wit.json +301 -0
  1583. data/rust-vendor/wit-parser/tests/ui/feature-types.wit +13 -0
  1584. data/rust-vendor/wit-parser/tests/ui/feature-types.wit.json +66 -0
  1585. data/rust-vendor/wit-parser/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +3 -0
  1586. data/rust-vendor/wit-parser/tests/ui/foreign-deps/deps/corp/saas.wit +4 -0
  1587. data/rust-vendor/wit-parser/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +2 -0
  1588. data/rust-vendor/wit-parser/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +5 -0
  1589. data/rust-vendor/wit-parser/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +13 -0
  1590. data/rust-vendor/wit-parser/tests/ui/foreign-deps/deps/wasi/clocks.wit +5 -0
  1591. data/rust-vendor/wit-parser/tests/ui/foreign-deps/deps/wasi/filesystem.wit +7 -0
  1592. data/rust-vendor/wit-parser/tests/ui/foreign-deps/root.wit +44 -0
  1593. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +3 -0
  1594. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/deps/corp/saas.wit +4 -0
  1595. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +2 -0
  1596. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +5 -0
  1597. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +13 -0
  1598. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +5 -0
  1599. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +7 -0
  1600. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +6 -0
  1601. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union/root.wit +50 -0
  1602. data/rust-vendor/wit-parser/tests/ui/foreign-deps-union.wit.json +410 -0
  1603. data/rust-vendor/wit-parser/tests/ui/foreign-deps.wit.json +362 -0
  1604. data/rust-vendor/wit-parser/tests/ui/foreign-interface-dep-gated.wit +17 -0
  1605. data/rust-vendor/wit-parser/tests/ui/foreign-interface-dep-gated.wit.json +39 -0
  1606. data/rust-vendor/wit-parser/tests/ui/foreign-world-dep-gated.wit +17 -0
  1607. data/rust-vendor/wit-parser/tests/ui/foreign-world-dep-gated.wit.json +39 -0
  1608. data/rust-vendor/wit-parser/tests/ui/functions.wit +11 -0
  1609. data/rust-vendor/wit-parser/tests/ui/functions.wit.json +115 -0
  1610. data/rust-vendor/wit-parser/tests/ui/gated-include.wit +67 -0
  1611. data/rust-vendor/wit-parser/tests/ui/gated-include.wit.json +346 -0
  1612. data/rust-vendor/wit-parser/tests/ui/gated-use.wit +13 -0
  1613. data/rust-vendor/wit-parser/tests/ui/gated-use.wit.json +34 -0
  1614. data/rust-vendor/wit-parser/tests/ui/ignore-files-deps/deps/bar/types.wit +2 -0
  1615. data/rust-vendor/wit-parser/tests/ui/ignore-files-deps/deps/ignore-me.txt +1 -0
  1616. data/rust-vendor/wit-parser/tests/ui/ignore-files-deps/world.wit +5 -0
  1617. data/rust-vendor/wit-parser/tests/ui/ignore-files-deps.wit.json +41 -0
  1618. data/rust-vendor/wit-parser/tests/ui/import-export-overlap1.wit +5 -0
  1619. data/rust-vendor/wit-parser/tests/ui/import-export-overlap1.wit.json +37 -0
  1620. data/rust-vendor/wit-parser/tests/ui/import-export-overlap2.wit +5 -0
  1621. data/rust-vendor/wit-parser/tests/ui/import-export-overlap2.wit.json +42 -0
  1622. data/rust-vendor/wit-parser/tests/ui/include-reps.wit +15 -0
  1623. data/rust-vendor/wit-parser/tests/ui/include-reps.wit.json +68 -0
  1624. data/rust-vendor/wit-parser/tests/ui/kebab-name-include-with.wit +8 -0
  1625. data/rust-vendor/wit-parser/tests/ui/kebab-name-include-with.wit.json +66 -0
  1626. data/rust-vendor/wit-parser/tests/ui/kinds-of-deps/a.wit +8 -0
  1627. data/rust-vendor/wit-parser/tests/ui/kinds-of-deps/deps/b/root.wit +3 -0
  1628. data/rust-vendor/wit-parser/tests/ui/kinds-of-deps/deps/c.wit +3 -0
  1629. data/rust-vendor/wit-parser/tests/ui/kinds-of-deps/deps/d.wat +6 -0
  1630. data/rust-vendor/wit-parser/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  1631. data/rust-vendor/wit-parser/tests/ui/kinds-of-deps.wit.json +95 -0
  1632. data/rust-vendor/wit-parser/tests/ui/many-names/a.wit +2 -0
  1633. data/rust-vendor/wit-parser/tests/ui/many-names/b.wit +5 -0
  1634. data/rust-vendor/wit-parser/tests/ui/many-names.wit.json +42 -0
  1635. data/rust-vendor/wit-parser/tests/ui/maps.wit +34 -0
  1636. data/rust-vendor/wit-parser/tests/ui/maps.wit.json +255 -0
  1637. data/rust-vendor/wit-parser/tests/ui/multi-file/bar.wit +21 -0
  1638. data/rust-vendor/wit-parser/tests/ui/multi-file/cycle-a.wit +7 -0
  1639. data/rust-vendor/wit-parser/tests/ui/multi-file/cycle-b.wit +3 -0
  1640. data/rust-vendor/wit-parser/tests/ui/multi-file/foo.wit +31 -0
  1641. data/rust-vendor/wit-parser/tests/ui/multi-file-multi-package/a.wit +24 -0
  1642. data/rust-vendor/wit-parser/tests/ui/multi-file-multi-package/b.wit +23 -0
  1643. data/rust-vendor/wit-parser/tests/ui/multi-file-multi-package.wit.json +255 -0
  1644. data/rust-vendor/wit-parser/tests/ui/multi-file.wit.json +300 -0
  1645. data/rust-vendor/wit-parser/tests/ui/multi-package-deps/deps/dep.wit +13 -0
  1646. data/rust-vendor/wit-parser/tests/ui/multi-package-deps/root.wit +16 -0
  1647. data/rust-vendor/wit-parser/tests/ui/multi-package-deps.wit.json +161 -0
  1648. data/rust-vendor/wit-parser/tests/ui/multi-package-gated-include.wit +114 -0
  1649. data/rust-vendor/wit-parser/tests/ui/multi-package-gated-include.wit.json +697 -0
  1650. data/rust-vendor/wit-parser/tests/ui/multi-package-shared-deps/deps/dep1/types.wit +4 -0
  1651. data/rust-vendor/wit-parser/tests/ui/multi-package-shared-deps/deps/dep2/types.wit +4 -0
  1652. data/rust-vendor/wit-parser/tests/ui/multi-package-shared-deps/packages.wit +41 -0
  1653. data/rust-vendor/wit-parser/tests/ui/multi-package-shared-deps.wit.json +261 -0
  1654. data/rust-vendor/wit-parser/tests/ui/multi-package-transitive-deps/deps/dep1/types.wit +8 -0
  1655. data/rust-vendor/wit-parser/tests/ui/multi-package-transitive-deps/deps/dep2/types.wit +14 -0
  1656. data/rust-vendor/wit-parser/tests/ui/multi-package-transitive-deps/packages.wit +12 -0
  1657. data/rust-vendor/wit-parser/tests/ui/multi-package-transitive-deps.wit.json +174 -0
  1658. data/rust-vendor/wit-parser/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +5 -0
  1659. data/rust-vendor/wit-parser/tests/ui/name-both-resource-and-type/foo.wit +9 -0
  1660. data/rust-vendor/wit-parser/tests/ui/name-both-resource-and-type.wit.json +89 -0
  1661. data/rust-vendor/wit-parser/tests/ui/package-syntax1.wit +1 -0
  1662. data/rust-vendor/wit-parser/tests/ui/package-syntax1.wit.json +12 -0
  1663. data/rust-vendor/wit-parser/tests/ui/package-syntax3.wit +1 -0
  1664. data/rust-vendor/wit-parser/tests/ui/package-syntax3.wit.json +12 -0
  1665. data/rust-vendor/wit-parser/tests/ui/package-syntax4.wit +1 -0
  1666. data/rust-vendor/wit-parser/tests/ui/package-syntax4.wit.json +12 -0
  1667. data/rust-vendor/wit-parser/tests/ui/packages-multiple-nested.wit +35 -0
  1668. data/rust-vendor/wit-parser/tests/ui/packages-multiple-nested.wit.json +184 -0
  1669. data/rust-vendor/wit-parser/tests/ui/packages-nested-colliding-decl-names.wit +24 -0
  1670. data/rust-vendor/wit-parser/tests/ui/packages-nested-colliding-decl-names.wit.json +135 -0
  1671. data/rust-vendor/wit-parser/tests/ui/packages-nested-internal-references.wit +16 -0
  1672. data/rust-vendor/wit-parser/tests/ui/packages-nested-internal-references.wit.json +91 -0
  1673. data/rust-vendor/wit-parser/tests/ui/packages-nested-with-semver.wit +24 -0
  1674. data/rust-vendor/wit-parser/tests/ui/packages-nested-with-semver.wit.json +135 -0
  1675. data/rust-vendor/wit-parser/tests/ui/packages-single-nested.wit +12 -0
  1676. data/rust-vendor/wit-parser/tests/ui/packages-single-nested.wit.json +75 -0
  1677. data/rust-vendor/wit-parser/tests/ui/parse-fail/alias-no-type.wit +6 -0
  1678. data/rust-vendor/wit-parser/tests/ui/parse-fail/alias-no-type.wit.result +5 -0
  1679. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad-world.wit +6 -0
  1680. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad-world.wit.result +5 -0
  1681. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad-world2.wit +6 -0
  1682. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad-world2.wit.result +5 -0
  1683. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad-world3.wit +6 -0
  1684. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad-world3.wit.result +5 -0
  1685. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad-world4.wit +11 -0
  1686. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad-world4.wit.result +5 -0
  1687. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad1.wit +7 -0
  1688. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad1.wit.result +5 -0
  1689. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad2.wit +7 -0
  1690. data/rust-vendor/wit-parser/tests/ui/parse-fail/async-bad2.wit.result +5 -0
  1691. data/rust-vendor/wit-parser/tests/ui/parse-fail/async.wit.result +5 -0
  1692. data/rust-vendor/wit-parser/tests/ui/parse-fail/async1.wit.result +5 -0
  1693. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-deprecated1.wit +4 -0
  1694. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-deprecated1.wit.result +5 -0
  1695. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-deprecated2.wit +4 -0
  1696. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-deprecated2.wit.result +5 -0
  1697. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-deprecated3.wit +4 -0
  1698. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-deprecated3.wit.result +5 -0
  1699. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-deprecated4.wit +5 -0
  1700. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-deprecated4.wit.result +5 -0
  1701. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-function.wit +7 -0
  1702. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-function.wit.result +5 -0
  1703. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-function2.wit +7 -0
  1704. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-function2.wit.result +5 -0
  1705. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate1.wit +8 -0
  1706. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate1.wit.result +5 -0
  1707. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate2.wit +8 -0
  1708. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate2.wit.result +5 -0
  1709. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate3.wit +6 -0
  1710. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate3.wit.result +5 -0
  1711. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate4.wit +8 -0
  1712. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate4.wit.result +5 -0
  1713. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate5.wit +11 -0
  1714. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-gate5.wit.result +5 -0
  1715. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-include1.wit +5 -0
  1716. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-include1.wit.result +5 -0
  1717. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-include2.wit +9 -0
  1718. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-include2.wit.result +5 -0
  1719. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-include3.wit +5 -0
  1720. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-include3.wit.result +5 -0
  1721. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-list.wit +7 -0
  1722. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-list.wit.result +5 -0
  1723. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-list2.wit +7 -0
  1724. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-list2.wit.result +5 -0
  1725. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-list3.wit +7 -0
  1726. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-list3.wit.result +5 -0
  1727. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-list4.wit +7 -0
  1728. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-list4.wit.result +5 -0
  1729. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg1/root.wit +5 -0
  1730. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg1.wit.result +5 -0
  1731. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +1 -0
  1732. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg2/root.wit +5 -0
  1733. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg2.wit.result +5 -0
  1734. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg3/deps/bar/.gitkeep +0 -0
  1735. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +2 -0
  1736. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg3/root.wit +5 -0
  1737. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg3.wit.result +5 -0
  1738. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg4/deps/bar/.gitkeep +0 -0
  1739. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +4 -0
  1740. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg4/root.wit +4 -0
  1741. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg4.wit.result +5 -0
  1742. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg5/deps/bar/.gitkeep +0 -0
  1743. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +3 -0
  1744. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg5/root.wit +4 -0
  1745. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg5.wit.result +5 -0
  1746. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg6/deps/bar/.gitkeep +0 -0
  1747. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +4 -0
  1748. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg6/root.wit +4 -0
  1749. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-pkg6.wit.result +8 -0
  1750. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource1.wit +5 -0
  1751. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource1.wit.result +5 -0
  1752. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource10.wit +5 -0
  1753. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource10.wit.result +5 -0
  1754. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource11.wit +5 -0
  1755. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource11.wit.result +5 -0
  1756. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource12.wit +6 -0
  1757. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource12.wit.result +5 -0
  1758. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource13.wit +6 -0
  1759. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource13.wit.result +5 -0
  1760. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource14.wit +7 -0
  1761. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource14.wit.result +5 -0
  1762. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +5 -0
  1763. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource15/foo.wit +7 -0
  1764. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource15.wit.result +5 -0
  1765. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource16.wit +7 -0
  1766. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource16.wit.result +5 -0
  1767. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource17.wit +8 -0
  1768. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource17.wit.result +5 -0
  1769. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource2.wit +5 -0
  1770. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource2.wit.result +5 -0
  1771. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource3.wit +6 -0
  1772. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource3.wit.result +5 -0
  1773. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource4.wit +6 -0
  1774. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource4.wit.result +5 -0
  1775. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource5.wit +7 -0
  1776. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource5.wit.result +5 -0
  1777. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource6.wit +7 -0
  1778. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource6.wit.result +5 -0
  1779. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource7.wit +8 -0
  1780. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource7.wit.result +5 -0
  1781. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource8.wit +8 -0
  1782. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource8.wit.result +5 -0
  1783. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource9.wit +7 -0
  1784. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-resource9.wit.result +5 -0
  1785. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-since1.wit +4 -0
  1786. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-since1.wit.result +5 -0
  1787. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-since3.wit +5 -0
  1788. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-since3.wit.result +5 -0
  1789. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-world-type1.wit +5 -0
  1790. data/rust-vendor/wit-parser/tests/ui/parse-fail/bad-world-type1.wit.result +5 -0
  1791. data/rust-vendor/wit-parser/tests/ui/parse-fail/case-insensitive-duplicates.wit +9 -0
  1792. data/rust-vendor/wit-parser/tests/ui/parse-fail/case-insensitive-duplicates.wit.result +1 -0
  1793. data/rust-vendor/wit-parser/tests/ui/parse-fail/conflicting-package/a.wit +1 -0
  1794. data/rust-vendor/wit-parser/tests/ui/parse-fail/conflicting-package/b.wit +1 -0
  1795. data/rust-vendor/wit-parser/tests/ui/parse-fail/conflicting-package.wit.result +5 -0
  1796. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle.wit +6 -0
  1797. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle.wit.result +5 -0
  1798. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle2.wit +7 -0
  1799. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle2.wit.result +5 -0
  1800. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle3.wit +7 -0
  1801. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle3.wit.result +5 -0
  1802. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle4.wit +7 -0
  1803. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle4.wit.result +5 -0
  1804. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle5.wit +7 -0
  1805. data/rust-vendor/wit-parser/tests/ui/parse-fail/cycle5.wit.result +5 -0
  1806. data/rust-vendor/wit-parser/tests/ui/parse-fail/dangling-type.wit +5 -0
  1807. data/rust-vendor/wit-parser/tests/ui/parse-fail/dangling-type.wit.result +5 -0
  1808. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-function-params.wit +7 -0
  1809. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-function-params.wit.result +5 -0
  1810. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-functions.wit +8 -0
  1811. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-functions.wit.result +5 -0
  1812. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-interface.wit +6 -0
  1813. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-interface.wit.result +5 -0
  1814. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo.wit +3 -0
  1815. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-interface2/foo2.wit +3 -0
  1816. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-interface2.wit.result +5 -0
  1817. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-type.wit +7 -0
  1818. data/rust-vendor/wit-parser/tests/ui/parse-fail/duplicate-type.wit.result +5 -0
  1819. data/rust-vendor/wit-parser/tests/ui/parse-fail/empty-enum.wit +6 -0
  1820. data/rust-vendor/wit-parser/tests/ui/parse-fail/empty-enum.wit.result +5 -0
  1821. data/rust-vendor/wit-parser/tests/ui/parse-fail/empty-variant1.wit +6 -0
  1822. data/rust-vendor/wit-parser/tests/ui/parse-fail/empty-variant1.wit.result +5 -0
  1823. data/rust-vendor/wit-parser/tests/ui/parse-fail/export-twice.wit +8 -0
  1824. data/rust-vendor/wit-parser/tests/ui/parse-fail/export-twice.wit.result +5 -0
  1825. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export1.wit +17 -0
  1826. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export1.wit.result +5 -0
  1827. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export2.wit +18 -0
  1828. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export2.wit.result +5 -0
  1829. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export3.wit +37 -0
  1830. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export3.wit.result +5 -0
  1831. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export4.wit +44 -0
  1832. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export4.wit.result +5 -0
  1833. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export5.wit +18 -0
  1834. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-and-export5.wit.result +5 -0
  1835. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-twice.wit +8 -0
  1836. data/rust-vendor/wit-parser/tests/ui/parse-fail/import-twice.wit.result +5 -0
  1837. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-cycle.wit +9 -0
  1838. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-cycle.wit.result +5 -0
  1839. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +3 -0
  1840. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-foreign/root.wit +5 -0
  1841. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-foreign.wit.result +5 -0
  1842. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-with-id.wit +11 -0
  1843. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-with-id.wit.result +5 -0
  1844. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-with-on-id.wit +11 -0
  1845. data/rust-vendor/wit-parser/tests/ui/parse-fail/include-with-on-id.wit.result +5 -0
  1846. data/rust-vendor/wit-parser/tests/ui/parse-fail/invalid-toplevel.wit +5 -0
  1847. data/rust-vendor/wit-parser/tests/ui/parse-fail/invalid-toplevel.wit.result +5 -0
  1848. data/rust-vendor/wit-parser/tests/ui/parse-fail/invalid-type-reference.wit +10 -0
  1849. data/rust-vendor/wit-parser/tests/ui/parse-fail/invalid-type-reference.wit.result +5 -0
  1850. data/rust-vendor/wit-parser/tests/ui/parse-fail/invalid-type-reference2.wit +6 -0
  1851. data/rust-vendor/wit-parser/tests/ui/parse-fail/invalid-type-reference2.wit.result +5 -0
  1852. data/rust-vendor/wit-parser/tests/ui/parse-fail/kebab-name-include-not-found.wit +8 -0
  1853. data/rust-vendor/wit-parser/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +5 -0
  1854. data/rust-vendor/wit-parser/tests/ui/parse-fail/kebab-name-include.wit +8 -0
  1855. data/rust-vendor/wit-parser/tests/ui/parse-fail/kebab-name-include.wit.result +5 -0
  1856. data/rust-vendor/wit-parser/tests/ui/parse-fail/keyword.wit +5 -0
  1857. data/rust-vendor/wit-parser/tests/ui/parse-fail/keyword.wit.result +5 -0
  1858. data/rust-vendor/wit-parser/tests/ui/parse-fail/map-invalid-key.wit +7 -0
  1859. data/rust-vendor/wit-parser/tests/ui/parse-fail/map-invalid-key.wit.result +5 -0
  1860. data/rust-vendor/wit-parser/tests/ui/parse-fail/missing-main-declaration-initial-main.wit +23 -0
  1861. data/rust-vendor/wit-parser/tests/ui/parse-fail/missing-main-declaration-initial-main.wit.result +1 -0
  1862. data/rust-vendor/wit-parser/tests/ui/parse-fail/missing-main-declaration-initial-nested.wit +23 -0
  1863. data/rust-vendor/wit-parser/tests/ui/parse-fail/missing-main-declaration-initial-nested.wit.result +1 -0
  1864. data/rust-vendor/wit-parser/tests/ui/parse-fail/missing-package.wit +0 -0
  1865. data/rust-vendor/wit-parser/tests/ui/parse-fail/missing-package.wit.result +1 -0
  1866. data/rust-vendor/wit-parser/tests/ui/parse-fail/multi-file-missing-delimiter/observe.wit +5 -0
  1867. data/rust-vendor/wit-parser/tests/ui/parse-fail/multi-file-missing-delimiter/world.wit +5 -0
  1868. data/rust-vendor/wit-parser/tests/ui/parse-fail/multi-file-missing-delimiter.wit.result +5 -0
  1869. data/rust-vendor/wit-parser/tests/ui/parse-fail/multi-package-deps-share-nest/deps/dep1/types.wit +12 -0
  1870. data/rust-vendor/wit-parser/tests/ui/parse-fail/multi-package-deps-share-nest/deps/dep2/types.wit +12 -0
  1871. data/rust-vendor/wit-parser/tests/ui/parse-fail/multi-package-deps-share-nest/root.wit +8 -0
  1872. data/rust-vendor/wit-parser/tests/ui/parse-fail/multi-package-deps-share-nest.wit.result +3 -0
  1873. data/rust-vendor/wit-parser/tests/ui/parse-fail/multiple-package-docs/a.wit +2 -0
  1874. data/rust-vendor/wit-parser/tests/ui/parse-fail/multiple-package-docs/b.wit +2 -0
  1875. data/rust-vendor/wit-parser/tests/ui/parse-fail/multiple-package-docs.wit.result +5 -0
  1876. data/rust-vendor/wit-parser/tests/ui/parse-fail/multiple-package-inline-cycle.wit +12 -0
  1877. data/rust-vendor/wit-parser/tests/ui/parse-fail/multiple-package-inline-cycle.wit.result +5 -0
  1878. data/rust-vendor/wit-parser/tests/ui/parse-fail/multiple-packages-no-scope-blocks.wit +15 -0
  1879. data/rust-vendor/wit-parser/tests/ui/parse-fail/multiple-packages-no-scope-blocks.wit.result +5 -0
  1880. data/rust-vendor/wit-parser/tests/ui/parse-fail/nested-packages-colliding-names.wit +5 -0
  1881. data/rust-vendor/wit-parser/tests/ui/parse-fail/nested-packages-colliding-names.wit.result +3 -0
  1882. data/rust-vendor/wit-parser/tests/ui/parse-fail/nested-packages-with-error.wit +14 -0
  1883. data/rust-vendor/wit-parser/tests/ui/parse-fail/nested-packages-with-error.wit.result +5 -0
  1884. data/rust-vendor/wit-parser/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +1 -0
  1885. data/rust-vendor/wit-parser/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +5 -0
  1886. data/rust-vendor/wit-parser/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +5 -0
  1887. data/rust-vendor/wit-parser/tests/ui/parse-fail/non-existance-world-include/deps/bar/.gitkeep +0 -0
  1888. data/rust-vendor/wit-parser/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +4 -0
  1889. data/rust-vendor/wit-parser/tests/ui/parse-fail/non-existance-world-include/root.wit +5 -0
  1890. data/rust-vendor/wit-parser/tests/ui/parse-fail/non-existance-world-include.wit.result +5 -0
  1891. data/rust-vendor/wit-parser/tests/ui/parse-fail/old-float-types.wit +5 -0
  1892. data/rust-vendor/wit-parser/tests/ui/parse-fail/old-float-types.wit.result +5 -0
  1893. data/rust-vendor/wit-parser/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +4 -0
  1894. data/rust-vendor/wit-parser/tests/ui/parse-fail/pkg-cycle/root.wit +4 -0
  1895. data/rust-vendor/wit-parser/tests/ui/parse-fail/pkg-cycle.wit.result +5 -0
  1896. data/rust-vendor/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +4 -0
  1897. data/rust-vendor/wit-parser/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +4 -0
  1898. data/rust-vendor/wit-parser/tests/ui/parse-fail/pkg-cycle2/root.wit +4 -0
  1899. data/rust-vendor/wit-parser/tests/ui/parse-fail/pkg-cycle2.wit.result +5 -0
  1900. data/rust-vendor/wit-parser/tests/ui/parse-fail/resources-multiple-returns-borrow.wit +10 -0
  1901. data/rust-vendor/wit-parser/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +5 -0
  1902. data/rust-vendor/wit-parser/tests/ui/parse-fail/resources-return-borrow.wit +10 -0
  1903. data/rust-vendor/wit-parser/tests/ui/parse-fail/resources-return-borrow.wit.result +5 -0
  1904. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow1.wit +7 -0
  1905. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow1.wit.result +5 -0
  1906. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow2.wit +8 -0
  1907. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow2.wit.result +5 -0
  1908. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow3.wit +7 -0
  1909. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow3.wit.result +5 -0
  1910. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow4.wit +7 -0
  1911. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow4.wit.result +5 -0
  1912. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow5.wit +7 -0
  1913. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow5.wit.result +5 -0
  1914. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow6.wit +7 -0
  1915. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow6.wit.result +5 -0
  1916. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow7.wit +11 -0
  1917. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow7.wit.result +5 -0
  1918. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow8/deps/baz.wit +9 -0
  1919. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow8/foo.wit +7 -0
  1920. data/rust-vendor/wit-parser/tests/ui/parse-fail/return-borrow8.wit.result +5 -0
  1921. data/rust-vendor/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +5 -0
  1922. data/rust-vendor/wit-parser/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +8 -0
  1923. data/rust-vendor/wit-parser/tests/ui/parse-fail/type-and-resource-same-name.wit.result +5 -0
  1924. data/rust-vendor/wit-parser/tests/ui/parse-fail/undefined-typed.wit +6 -0
  1925. data/rust-vendor/wit-parser/tests/ui/parse-fail/undefined-typed.wit.result +5 -0
  1926. data/rust-vendor/wit-parser/tests/ui/parse-fail/unknown-interface.wit +7 -0
  1927. data/rust-vendor/wit-parser/tests/ui/parse-fail/unknown-interface.wit.result +5 -0
  1928. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-interface1.wit +7 -0
  1929. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-interface1.wit.result +5 -0
  1930. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-interface2.wit +8 -0
  1931. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-interface2.wit.result +5 -0
  1932. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-interface3.wit +5 -0
  1933. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-interface3.wit.result +5 -0
  1934. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-interface4.wit +7 -0
  1935. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-interface4.wit.result +7 -0
  1936. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use1.wit +7 -0
  1937. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use1.wit.result +5 -0
  1938. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use10/bar.wit +5 -0
  1939. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use10/foo.wit +2 -0
  1940. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use10.wit.result +5 -0
  1941. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use2.wit +10 -0
  1942. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use2.wit.result +5 -0
  1943. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use3.wit +11 -0
  1944. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use3.wit.result +5 -0
  1945. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use7.wit +10 -0
  1946. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use7.wit.result +5 -0
  1947. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use8.wit +9 -0
  1948. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use8.wit.result +5 -0
  1949. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use9.wit +9 -0
  1950. data/rust-vendor/wit-parser/tests/ui/parse-fail/unresolved-use9.wit.result +5 -0
  1951. data/rust-vendor/wit-parser/tests/ui/parse-fail/unterminated-string.wit.result +5 -0
  1952. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-and-include-world/deps/bar/.gitkeep +0 -0
  1953. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +4 -0
  1954. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-and-include-world/root.wit +7 -0
  1955. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-and-include-world.wit.result +5 -0
  1956. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-conflict.wit +11 -0
  1957. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-conflict.wit.result +5 -0
  1958. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-conflict2.wit +13 -0
  1959. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-conflict2.wit.result +5 -0
  1960. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-conflict3.wit +13 -0
  1961. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-conflict3.wit.result +5 -0
  1962. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-cycle1.wit +7 -0
  1963. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-cycle1.wit.result +5 -0
  1964. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-cycle4.wit +14 -0
  1965. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-cycle4.wit.result +5 -0
  1966. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-shadow1.wit +7 -0
  1967. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-shadow1.wit.result +5 -0
  1968. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-world/deps/bar/.gitkeep +0 -0
  1969. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-world/deps/bar/baz.wit +4 -0
  1970. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-world/root.wit +7 -0
  1971. data/rust-vendor/wit-parser/tests/ui/parse-fail/use-world.wit.result +5 -0
  1972. data/rust-vendor/wit-parser/tests/ui/parse-fail/very-nested-packages.wit +8 -0
  1973. data/rust-vendor/wit-parser/tests/ui/parse-fail/very-nested-packages.wit.result +5 -0
  1974. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-interface-clash.wit +3 -0
  1975. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-interface-clash.wit.result +5 -0
  1976. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-same-fields2.wit +8 -0
  1977. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-same-fields2.wit.result +5 -0
  1978. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-same-fields3.wit +8 -0
  1979. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-same-fields3.wit.result +5 -0
  1980. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-top-level-func.wit +5 -0
  1981. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-top-level-func.wit.result +5 -0
  1982. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-top-level-func2.wit +4 -0
  1983. data/rust-vendor/wit-parser/tests/ui/parse-fail/world-top-level-func2.wit.result +5 -0
  1984. data/rust-vendor/wit-parser/tests/ui/random.wit +27 -0
  1985. data/rust-vendor/wit-parser/tests/ui/random.wit.json +56 -0
  1986. data/rust-vendor/wit-parser/tests/ui/resources-empty.wit +10 -0
  1987. data/rust-vendor/wit-parser/tests/ui/resources-empty.wit.json +70 -0
  1988. data/rust-vendor/wit-parser/tests/ui/resources-multiple-returns-own.wit +10 -0
  1989. data/rust-vendor/wit-parser/tests/ui/resources-multiple-returns-own.wit.json +85 -0
  1990. data/rust-vendor/wit-parser/tests/ui/resources-multiple.wit +17 -0
  1991. data/rust-vendor/wit-parser/tests/ui/resources-multiple.wit.json +207 -0
  1992. data/rust-vendor/wit-parser/tests/ui/resources-return-own.wit +10 -0
  1993. data/rust-vendor/wit-parser/tests/ui/resources-return-own.wit.json +73 -0
  1994. data/rust-vendor/wit-parser/tests/ui/resources.wit +55 -0
  1995. data/rust-vendor/wit-parser/tests/ui/resources.wit.json +387 -0
  1996. data/rust-vendor/wit-parser/tests/ui/resources1.wit +12 -0
  1997. data/rust-vendor/wit-parser/tests/ui/resources1.wit.json +92 -0
  1998. data/rust-vendor/wit-parser/tests/ui/same-name-import-export.wit +6 -0
  1999. data/rust-vendor/wit-parser/tests/ui/same-name-import-export.wit.json +39 -0
  2000. data/rust-vendor/wit-parser/tests/ui/shared-types.wit +10 -0
  2001. data/rust-vendor/wit-parser/tests/ui/shared-types.wit.json +79 -0
  2002. data/rust-vendor/wit-parser/tests/ui/simple-wasm-text.wat +6 -0
  2003. data/rust-vendor/wit-parser/tests/ui/simple-wasm-text.wit.json +21 -0
  2004. data/rust-vendor/wit-parser/tests/ui/since-and-unstable.wit +107 -0
  2005. data/rust-vendor/wit-parser/tests/ui/since-and-unstable.wit.json +608 -0
  2006. data/rust-vendor/wit-parser/tests/ui/streams-and-futures.wit +15 -0
  2007. data/rust-vendor/wit-parser/tests/ui/streams-and-futures.wit.json +205 -0
  2008. data/rust-vendor/wit-parser/tests/ui/stress-export-elaborate.wit +54 -0
  2009. data/rust-vendor/wit-parser/tests/ui/stress-export-elaborate.wit.json +1156 -0
  2010. data/rust-vendor/wit-parser/tests/ui/type-then-eof.wit +5 -0
  2011. data/rust-vendor/wit-parser/tests/ui/type-then-eof.wit.json +28 -0
  2012. data/rust-vendor/wit-parser/tests/ui/types.wit +59 -0
  2013. data/rust-vendor/wit-parser/tests/ui/types.wit.json +768 -0
  2014. data/rust-vendor/wit-parser/tests/ui/union-fuzz-1.wit +9 -0
  2015. data/rust-vendor/wit-parser/tests/ui/union-fuzz-1.wit.json +35 -0
  2016. data/rust-vendor/wit-parser/tests/ui/union-fuzz-2.wit +12 -0
  2017. data/rust-vendor/wit-parser/tests/ui/union-fuzz-2.wit.json +62 -0
  2018. data/rust-vendor/wit-parser/tests/ui/unstable-resource.wit +17 -0
  2019. data/rust-vendor/wit-parser/tests/ui/unstable-resource.wit.json +44 -0
  2020. data/rust-vendor/wit-parser/tests/ui/use-chain.wit +11 -0
  2021. data/rust-vendor/wit-parser/tests/ui/use-chain.wit.json +53 -0
  2022. data/rust-vendor/wit-parser/tests/ui/use.wit +34 -0
  2023. data/rust-vendor/wit-parser/tests/ui/use.wit.json +168 -0
  2024. data/rust-vendor/wit-parser/tests/ui/version-syntax.wit +10 -0
  2025. data/rust-vendor/wit-parser/tests/ui/version-syntax.wit.json +57 -0
  2026. data/rust-vendor/wit-parser/tests/ui/versions/deps/a1/foo.wit +5 -0
  2027. data/rust-vendor/wit-parser/tests/ui/versions/deps/a2/foo.wit +5 -0
  2028. data/rust-vendor/wit-parser/tests/ui/versions/foo.wit +7 -0
  2029. data/rust-vendor/wit-parser/tests/ui/versions.wit.json +91 -0
  2030. data/rust-vendor/wit-parser/tests/ui/wasi.wit +178 -0
  2031. data/rust-vendor/wit-parser/tests/ui/wasi.wit.json +539 -0
  2032. data/rust-vendor/wit-parser/tests/ui/with-resource-as.wit +15 -0
  2033. data/rust-vendor/wit-parser/tests/ui/with-resource-as.wit.json +221 -0
  2034. data/rust-vendor/wit-parser/tests/ui/world-diamond.wit +23 -0
  2035. data/rust-vendor/wit-parser/tests/ui/world-diamond.wit.json +115 -0
  2036. data/rust-vendor/wit-parser/tests/ui/world-iface-no-collide.wit +11 -0
  2037. data/rust-vendor/wit-parser/tests/ui/world-iface-no-collide.wit.json +67 -0
  2038. data/rust-vendor/wit-parser/tests/ui/world-implicit-import1.wit +12 -0
  2039. data/rust-vendor/wit-parser/tests/ui/world-implicit-import1.wit.json +81 -0
  2040. data/rust-vendor/wit-parser/tests/ui/world-implicit-import2.wit +11 -0
  2041. data/rust-vendor/wit-parser/tests/ui/world-implicit-import2.wit.json +68 -0
  2042. data/rust-vendor/wit-parser/tests/ui/world-implicit-import3.wit +11 -0
  2043. data/rust-vendor/wit-parser/tests/ui/world-implicit-import3.wit.json +69 -0
  2044. data/rust-vendor/wit-parser/tests/ui/world-same-fields4.wit +13 -0
  2045. data/rust-vendor/wit-parser/tests/ui/world-same-fields4.wit.json +82 -0
  2046. data/rust-vendor/wit-parser/tests/ui/world-top-level-funcs.wit +9 -0
  2047. data/rust-vendor/wit-parser/tests/ui/world-top-level-funcs.wit.json +79 -0
  2048. data/rust-vendor/wit-parser/tests/ui/world-top-level-resources.wit +24 -0
  2049. data/rust-vendor/wit-parser/tests/ui/world-top-level-resources.wit.json +225 -0
  2050. data/rust-vendor/wit-parser/tests/ui/worlds-union-dedup.wit +23 -0
  2051. data/rust-vendor/wit-parser/tests/ui/worlds-union-dedup.wit.json +112 -0
  2052. data/rust-vendor/wit-parser/tests/ui/worlds-with-types.wit +34 -0
  2053. data/rust-vendor/wit-parser/tests/ui/worlds-with-types.wit.json +188 -0
  2054. data/rust-vendor/zerocopy/.cargo-checksum.json +1 -1
  2055. data/rust-vendor/zerocopy/.cargo_vcs_info.json +1 -2
  2056. data/rust-vendor/zerocopy/Cargo.lock +3 -3
  2057. data/rust-vendor/zerocopy/Cargo.toml +4 -4
  2058. data/rust-vendor/zerocopy/Cargo.toml.orig +4 -4
  2059. data/rust-vendor/zerocopy/agent_docs/reviewing.md +8 -0
  2060. data/rust-vendor/zerocopy/build.rs +1 -0
  2061. data/rust-vendor/zerocopy/ci/release_crate_version.sh +3 -0
  2062. data/rust-vendor/zerocopy/src/doctests.rs +18 -2
  2063. data/rust-vendor/zerocopy/src/impls.rs +7 -4
  2064. data/rust-vendor/zerocopy/src/lib.rs +60 -28
  2065. data/rust-vendor/zerocopy/src/macros.rs +24 -4
  2066. data/rust-vendor/zerocopy/src/pointer/invariant.rs +31 -3
  2067. data/rust-vendor/zerocopy/src/pointer/mod.rs +2 -2
  2068. data/rust-vendor/zerocopy/src/pointer/ptr.rs +3 -3
  2069. data/rust-vendor/zerocopy/src/util/macros.rs +21 -6
  2070. data/rust-vendor/zerocopy/tests/trybuild.rs +3 -18
  2071. data/rust-vendor/zerocopy-derive/.cargo-checksum.json +1 -1
  2072. data/rust-vendor/zerocopy-derive/.cargo_vcs_info.json +1 -1
  2073. data/rust-vendor/zerocopy-derive/Cargo.lock +1 -1
  2074. data/rust-vendor/zerocopy-derive/Cargo.toml +9 -2
  2075. data/rust-vendor/zerocopy-derive/Cargo.toml.orig +5 -2
  2076. data/rust-vendor/zerocopy-derive/src/derive/from_bytes.rs +9 -7
  2077. data/rust-vendor/zerocopy-derive/src/derive/into_bytes.rs +8 -4
  2078. data/rust-vendor/zerocopy-derive/src/derive/try_from_bytes.rs +52 -18
  2079. data/rust-vendor/zerocopy-derive/src/derive/unaligned.rs +3 -3
  2080. data/rust-vendor/zerocopy-derive/src/output_tests/expected/from_bytes_enum.expected.rs +7 -3
  2081. data/rust-vendor/zerocopy-derive/src/output_tests/expected/from_bytes_struct.expected.rs +7 -3
  2082. data/rust-vendor/zerocopy-derive/src/output_tests/expected/from_bytes_union.expected.rs +7 -3
  2083. data/rust-vendor/zerocopy-derive/src/output_tests/expected/from_zeros.expected.rs +7 -3
  2084. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes.expected.rs +7 -3
  2085. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes_enum_1.expected.rs +22 -10
  2086. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes_enum_2.expected.rs +22 -10
  2087. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes_enum_3.expected.rs +22 -10
  2088. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes_trivial_is_bit_valid_enum.expected.rs +7 -3
  2089. data/rust-vendor/zerocopy-derive/src/util.rs +72 -5
  2090. data/rust-vendor/zerocopy-derive/tests/on_error.rs +169 -0
  2091. data/rust-vendor/zerocopy-derive/tests/trybuild.rs +9 -7
  2092. data/rust-vendor/zerocopy-derive/tests/ui-msrv/cfgs/on_error.rs +19 -0
  2093. data/rust-vendor/zerocopy-derive/tests/ui-msrv/cfgs/on_error.stderr +16 -0
  2094. data/rust-vendor/zerocopy-derive/tests/ui-msrv/{union_into_bytes_cfg → cfgs}/union_into_bytes_cfg.stderr +1 -1
  2095. data/rust-vendor/zerocopy-derive/tests/ui-nightly/cfgs/on_error.rs +19 -0
  2096. data/rust-vendor/zerocopy-derive/tests/ui-nightly/cfgs/on_error.stderr +31 -0
  2097. data/rust-vendor/zerocopy-derive/tests/ui-nightly/cfgs/union_into_bytes_cfg.stderr +8 -0
  2098. data/rust-vendor/zerocopy-derive/tests/ui-nightly/union.stderr +0 -14
  2099. data/rust-vendor/zerocopy-derive/tests/ui-stable/cfgs/on_error.rs +19 -0
  2100. data/rust-vendor/zerocopy-derive/tests/ui-stable/cfgs/on_error.stderr +27 -0
  2101. data/rust-vendor/zerocopy-derive/tests/ui-stable/cfgs/union_into_bytes_cfg.stderr +8 -0
  2102. data/rust-vendor/zerocopy-derive/tests/ui-stable/union.stderr +0 -14
  2103. data/rust-vendor/zmij/.cargo-checksum.json +1 -1
  2104. data/rust-vendor/zmij/.cargo_vcs_info.json +1 -1
  2105. data/rust-vendor/zmij/.github/workflows/ci.yml +9 -6
  2106. data/rust-vendor/zmij/Cargo.lock +281 -58
  2107. data/rust-vendor/zmij/Cargo.toml +3 -3
  2108. data/rust-vendor/zmij/Cargo.toml.orig +3 -3
  2109. data/rust-vendor/zmij/README.md +1 -1
  2110. data/rust-vendor/zmij/src/lib.rs +124 -79
  2111. data/rust-vendor/zmij/src/tests.rs +11 -5
  2112. data/rust-vendor/zmij/tests/ryu_comparison.rs +3 -3
  2113. metadata +1841 -55
  2114. data/rust-vendor/libc/src/qurt/hexagon.rs +0 -340
  2115. data/rust-vendor/regex/.vim/coc-settings.json +0 -6
  2116. data/rust-vendor/regex/Cross.toml +0 -7
  2117. data/rust-vendor/regex/rustfmt.toml +0 -2
  2118. data/rust-vendor/regex/test +0 -46
  2119. data/rust-vendor/regex/testdata/README.md +0 -22
  2120. data/rust-vendor/regex/testdata/fowler/basic.toml +0 -1611
  2121. data/rust-vendor/regex/testdata/fowler/dat/README +0 -25
  2122. data/rust-vendor/regex/testdata/fowler/dat/basic.dat +0 -223
  2123. data/rust-vendor/regex/testdata/fowler/dat/nullsubexpr.dat +0 -74
  2124. data/rust-vendor/regex/testdata/fowler/dat/repetition.dat +0 -169
  2125. data/rust-vendor/regex/testdata/fowler/nullsubexpr.toml +0 -405
  2126. data/rust-vendor/regex/testdata/fowler/repetition.toml +0 -746
  2127. data/rust-vendor/regex-automata/test +0 -95
  2128. data/rust-vendor/regex-automata/tests/fuzz/mod.rs +0 -2
  2129. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_dense_crash-9486fb7c8a93b12c12a62166b43d31640c0208a9 +0 -0
  2130. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_dense_minimized-from-9486fb7c8a93b12c12a62166b43d31640c0208a9 +0 -0
  2131. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-0da59c0434eaf35e5a6b470fa9244bb79c72b000 +0 -0
  2132. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-18cfc246f2ddfc3dfc92b0c7893178c7cf65efa9 +0 -0
  2133. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-61fd8e3003bf9d99f6c1e5a8488727eefd234b98 +0 -0
  2134. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-a1b839d899ced76d5d7d0f78f9edb7a421505838 +0 -0
  2135. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-c383ae07ec5e191422eadc492117439011816570 +0 -0
  2136. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-d07703ceb94b10dcd9e4acb809f2051420449e2b +0 -0
  2137. data/rust-vendor/regex-automata/tests/fuzz/testdata/deserialize_sparse_crash-dbb8172d3984e7e7d03f4b5f8bb86ecd1460eff9 +0 -0
  2138. data/rust-vendor/regex-automata/tests/gen/README.md +0 -65
  2139. data/rust-vendor/regex-automata/tests/gen/dense/multi_pattern_v2_fwd.bigendian.dfa +0 -0
  2140. data/rust-vendor/regex-automata/tests/gen/dense/multi_pattern_v2_fwd.littleendian.dfa +0 -0
  2141. data/rust-vendor/regex-automata/tests/gen/dense/multi_pattern_v2_rev.bigendian.dfa +0 -0
  2142. data/rust-vendor/regex-automata/tests/gen/dense/multi_pattern_v2_rev.littleendian.dfa +0 -0
  2143. data/rust-vendor/regex-automata/tests/gen/sparse/multi_pattern_v2_fwd.bigendian.dfa +0 -0
  2144. data/rust-vendor/regex-automata/tests/gen/sparse/multi_pattern_v2_fwd.littleendian.dfa +0 -0
  2145. data/rust-vendor/regex-automata/tests/gen/sparse/multi_pattern_v2_rev.bigendian.dfa +0 -0
  2146. data/rust-vendor/regex-automata/tests/gen/sparse/multi_pattern_v2_rev.littleendian.dfa +0 -0
  2147. data/rust-vendor/regex-syntax/benches/bench.rs +0 -63
  2148. data/rust-vendor/regex-syntax/test +0 -30
  2149. data/rust-vendor/zerocopy/tests/ui-msrv/invalid-impls/invalid-impls.rs +0 -31
  2150. data/rust-vendor/zerocopy/tests/ui-msrv/invalid-impls/invalid-impls.stderr +0 -159
  2151. data/rust-vendor/zerocopy/tests/ui-nightly/invalid-impls/invalid-impls.rs +0 -31
  2152. data/rust-vendor/zerocopy/tests/ui-nightly/invalid-impls/invalid-impls.stderr +0 -139
  2153. data/rust-vendor/zerocopy/tests/ui-stable/invalid-impls/invalid-impls.rs +0 -31
  2154. data/rust-vendor/zerocopy/tests/ui-stable/invalid-impls/invalid-impls.stderr +0 -155
  2155. data/rust-vendor/zerocopy-derive/tests/ui-nightly/union_into_bytes_cfg/union_into_bytes_cfg.stderr +0 -22
  2156. data/rust-vendor/zerocopy-derive/tests/ui-stable/union_into_bytes_cfg/union_into_bytes_cfg.stderr +0 -22
  2157. /data/rust-vendor/{getrandom → getrandom-0.3.4}/src/backends/sanitizer.rs +0 -0
  2158. /data/rust-vendor/{getrandom → getrandom-0.3.4}/src/backends/wasi_p2.rs +0 -0
  2159. /data/rust-vendor/{getrandom → getrandom-0.3.4}/src/lazy.rs +0 -0
  2160. /data/rust-vendor/{getrandom → getrandom-0.3.4}/src/util_libc.rs +0 -0
  2161. /data/rust-vendor/{wit-bindgen → wit-bindgen-0.46.0}/src/rt/wit_bindgen_cabi.c +0 -0
  2162. /data/rust-vendor/{wit-bindgen → wit-bindgen-0.46.0}/src/rt/wit_bindgen_cabi.o +0 -0
  2163. /data/rust-vendor/zerocopy-derive/tests/ui-msrv/{union_into_bytes_cfg → cfgs}/union_into_bytes_cfg.rs +0 -0
  2164. /data/rust-vendor/zerocopy-derive/tests/ui-nightly/{union_into_bytes_cfg → cfgs}/union_into_bytes_cfg.rs +0 -0
  2165. /data/rust-vendor/zerocopy-derive/tests/ui-stable/{union_into_bytes_cfg → cfgs}/union_into_bytes_cfg.rs +0 -0
@@ -0,0 +1,4686 @@
1
+ #[allow(unused_imports)]
2
+ use crate::Instruction;
3
+ use crate::{
4
+ BlockType, Catch, Encode, Handle, HeapType, Ieee32, Ieee64, Lane, MemArg, Ordering, RefType,
5
+ ValType, encode_vec,
6
+ };
7
+ use alloc::vec::Vec;
8
+
9
+ /// An encoder for Wasm instructions.
10
+ #[derive(Debug)]
11
+ pub struct InstructionSink<'a> {
12
+ sink: &'a mut Vec<u8>,
13
+ }
14
+
15
+ impl<'a> InstructionSink<'a> {
16
+ /// Create an instruction encoder pointing to the given byte sink.
17
+ pub fn new(sink: &'a mut Vec<u8>) -> Self {
18
+ Self { sink }
19
+ }
20
+
21
+ // Control instructions.
22
+
23
+ /// Encode [`Instruction::Unreachable`].
24
+ pub fn unreachable(&mut self) -> &mut Self {
25
+ self.sink.push(0x00);
26
+ self
27
+ }
28
+
29
+ /// Encode [`Instruction::Nop`].
30
+ pub fn nop(&mut self) -> &mut Self {
31
+ self.sink.push(0x01);
32
+ self
33
+ }
34
+
35
+ /// Encode [`Instruction::Block`].
36
+ pub fn block(&mut self, bt: BlockType) -> &mut Self {
37
+ self.sink.push(0x02);
38
+ bt.encode(self.sink);
39
+ self
40
+ }
41
+
42
+ /// Encode [`Instruction::Loop`].
43
+ pub fn loop_(&mut self, bt: BlockType) -> &mut Self {
44
+ self.sink.push(0x03);
45
+ bt.encode(self.sink);
46
+ self
47
+ }
48
+
49
+ /// Encode [`Instruction::If`].
50
+ pub fn if_(&mut self, bt: BlockType) -> &mut Self {
51
+ self.sink.push(0x04);
52
+ bt.encode(self.sink);
53
+ self
54
+ }
55
+
56
+ /// Encode [`Instruction::Else`].
57
+ pub fn else_(&mut self) -> &mut Self {
58
+ self.sink.push(0x05);
59
+ self
60
+ }
61
+
62
+ /// Encode [`Instruction::End`].
63
+ pub fn end(&mut self) -> &mut Self {
64
+ self.sink.push(0x0B);
65
+ self
66
+ }
67
+
68
+ /// Encode [`Instruction::Br`].
69
+ pub fn br(&mut self, l: u32) -> &mut Self {
70
+ self.sink.push(0x0C);
71
+ l.encode(self.sink);
72
+ self
73
+ }
74
+
75
+ /// Encode [`Instruction::BrIf`].
76
+ pub fn br_if(&mut self, l: u32) -> &mut Self {
77
+ self.sink.push(0x0D);
78
+ l.encode(self.sink);
79
+ self
80
+ }
81
+
82
+ /// Encode [`Instruction::BrTable`].
83
+ pub fn br_table<V: IntoIterator<Item = u32>>(&mut self, ls: V, l: u32) -> &mut Self
84
+ where
85
+ V::IntoIter: ExactSizeIterator,
86
+ {
87
+ self.sink.push(0x0E);
88
+ encode_vec(ls, self.sink);
89
+ l.encode(self.sink);
90
+ self
91
+ }
92
+
93
+ /// Encode [`Instruction::BrOnNull`].
94
+ pub fn br_on_null(&mut self, l: u32) -> &mut Self {
95
+ self.sink.push(0xD5);
96
+ l.encode(self.sink);
97
+ self
98
+ }
99
+
100
+ /// Encode [`Instruction::BrOnNonNull`].
101
+ pub fn br_on_non_null(&mut self, l: u32) -> &mut Self {
102
+ self.sink.push(0xD6);
103
+ l.encode(self.sink);
104
+ self
105
+ }
106
+
107
+ /// Encode [`Instruction::Return`].
108
+ pub fn return_(&mut self) -> &mut Self {
109
+ self.sink.push(0x0F);
110
+ self
111
+ }
112
+
113
+ /// Encode [`Instruction::Call`].
114
+ pub fn call(&mut self, f: u32) -> &mut Self {
115
+ self.sink.push(0x10);
116
+ f.encode(self.sink);
117
+ self
118
+ }
119
+
120
+ /// Encode [`Instruction::CallRef`].
121
+ pub fn call_ref(&mut self, ty: u32) -> &mut Self {
122
+ self.sink.push(0x14);
123
+ ty.encode(self.sink);
124
+ self
125
+ }
126
+
127
+ /// Encode [`Instruction::CallIndirect`].
128
+ pub fn call_indirect(&mut self, table_index: u32, type_index: u32) -> &mut Self {
129
+ self.sink.push(0x11);
130
+ type_index.encode(self.sink);
131
+ table_index.encode(self.sink);
132
+ self
133
+ }
134
+
135
+ /// Encode [`Instruction::ReturnCallRef`].
136
+ pub fn return_call_ref(&mut self, ty: u32) -> &mut Self {
137
+ self.sink.push(0x15);
138
+ ty.encode(self.sink);
139
+ self
140
+ }
141
+
142
+ /// Encode [`Instruction::ReturnCall`].
143
+ pub fn return_call(&mut self, f: u32) -> &mut Self {
144
+ self.sink.push(0x12);
145
+ f.encode(self.sink);
146
+ self
147
+ }
148
+
149
+ /// Encode [`Instruction::ReturnCallIndirect`].
150
+ pub fn return_call_indirect(&mut self, table_index: u32, type_index: u32) -> &mut Self {
151
+ self.sink.push(0x13);
152
+ type_index.encode(self.sink);
153
+ table_index.encode(self.sink);
154
+ self
155
+ }
156
+
157
+ /// Encode [`Instruction::TryTable`].
158
+ pub fn try_table<V: IntoIterator<Item = Catch>>(
159
+ &mut self,
160
+ ty: BlockType,
161
+ catches: V,
162
+ ) -> &mut Self
163
+ where
164
+ V::IntoIter: ExactSizeIterator,
165
+ {
166
+ self.sink.push(0x1f);
167
+ ty.encode(self.sink);
168
+ encode_vec(catches, self.sink);
169
+ self
170
+ }
171
+
172
+ /// Encode [`Instruction::Throw`].
173
+ pub fn throw(&mut self, t: u32) -> &mut Self {
174
+ self.sink.push(0x08);
175
+ t.encode(self.sink);
176
+ self
177
+ }
178
+
179
+ /// Encode [`Instruction::ThrowRef`].
180
+ pub fn throw_ref(&mut self) -> &mut Self {
181
+ self.sink.push(0x0A);
182
+ self
183
+ }
184
+
185
+ // Deprecated exception-handling instructions
186
+
187
+ /// Encode [`Instruction::Try`].
188
+ pub fn try_(&mut self, bt: BlockType) -> &mut Self {
189
+ self.sink.push(0x06);
190
+ bt.encode(self.sink);
191
+ self
192
+ }
193
+
194
+ /// Encode [`Instruction::Delegate`].
195
+ pub fn delegate(&mut self, l: u32) -> &mut Self {
196
+ self.sink.push(0x18);
197
+ l.encode(self.sink);
198
+ self
199
+ }
200
+
201
+ /// Encode [`Instruction::Catch`].
202
+ pub fn catch(&mut self, t: u32) -> &mut Self {
203
+ self.sink.push(0x07);
204
+ t.encode(self.sink);
205
+ self
206
+ }
207
+
208
+ /// Encode [`Instruction::CatchAll`].
209
+ pub fn catch_all(&mut self) -> &mut Self {
210
+ self.sink.push(0x19);
211
+ self
212
+ }
213
+
214
+ /// Encode [`Instruction::Rethrow`].
215
+ pub fn rethrow(&mut self, l: u32) -> &mut Self {
216
+ self.sink.push(0x09);
217
+ l.encode(self.sink);
218
+ self
219
+ }
220
+
221
+ // Parametric instructions.
222
+
223
+ /// Encode [`Instruction::Drop`].
224
+ pub fn drop(&mut self) -> &mut Self {
225
+ self.sink.push(0x1A);
226
+ self
227
+ }
228
+
229
+ /// Encode [`Instruction::Select`].
230
+ pub fn select(&mut self) -> &mut Self {
231
+ self.sink.push(0x1B);
232
+ self
233
+ }
234
+
235
+ // Variable instructions.
236
+
237
+ /// Encode [`Instruction::LocalGet`].
238
+ pub fn local_get(&mut self, l: u32) -> &mut Self {
239
+ self.sink.push(0x20);
240
+ l.encode(self.sink);
241
+ self
242
+ }
243
+
244
+ /// Encode [`Instruction::LocalSet`].
245
+ pub fn local_set(&mut self, l: u32) -> &mut Self {
246
+ self.sink.push(0x21);
247
+ l.encode(self.sink);
248
+ self
249
+ }
250
+
251
+ /// Encode [`Instruction::LocalTee`].
252
+ pub fn local_tee(&mut self, l: u32) -> &mut Self {
253
+ self.sink.push(0x22);
254
+ l.encode(self.sink);
255
+ self
256
+ }
257
+
258
+ /// Encode [`Instruction::GlobalGet`].
259
+ pub fn global_get(&mut self, g: u32) -> &mut Self {
260
+ self.sink.push(0x23);
261
+ g.encode(self.sink);
262
+ self
263
+ }
264
+
265
+ /// Encode [`Instruction::GlobalSet`].
266
+ pub fn global_set(&mut self, g: u32) -> &mut Self {
267
+ self.sink.push(0x24);
268
+ g.encode(self.sink);
269
+ self
270
+ }
271
+
272
+ // Memory instructions.
273
+
274
+ /// Encode [`Instruction::I32Load`].
275
+ pub fn i32_load(&mut self, m: MemArg) -> &mut Self {
276
+ self.sink.push(0x28);
277
+ m.encode(self.sink);
278
+ self
279
+ }
280
+
281
+ /// Encode [`Instruction::I64Load`].
282
+ pub fn i64_load(&mut self, m: MemArg) -> &mut Self {
283
+ self.sink.push(0x29);
284
+ m.encode(self.sink);
285
+ self
286
+ }
287
+
288
+ /// Encode [`Instruction::F32Load`].
289
+ pub fn f32_load(&mut self, m: MemArg) -> &mut Self {
290
+ self.sink.push(0x2A);
291
+ m.encode(self.sink);
292
+ self
293
+ }
294
+
295
+ /// Encode [`Instruction::F64Load`].
296
+ pub fn f64_load(&mut self, m: MemArg) -> &mut Self {
297
+ self.sink.push(0x2B);
298
+ m.encode(self.sink);
299
+ self
300
+ }
301
+
302
+ /// Encode [`Instruction::I32Load8S`].
303
+ pub fn i32_load8_s(&mut self, m: MemArg) -> &mut Self {
304
+ self.sink.push(0x2C);
305
+ m.encode(self.sink);
306
+ self
307
+ }
308
+
309
+ /// Encode [`Instruction::I32Load8U`].
310
+ pub fn i32_load8_u(&mut self, m: MemArg) -> &mut Self {
311
+ self.sink.push(0x2D);
312
+ m.encode(self.sink);
313
+ self
314
+ }
315
+
316
+ /// Encode [`Instruction::I32Load16S`].
317
+ pub fn i32_load16_s(&mut self, m: MemArg) -> &mut Self {
318
+ self.sink.push(0x2E);
319
+ m.encode(self.sink);
320
+ self
321
+ }
322
+
323
+ /// Encode [`Instruction::I32Load16U`].
324
+ pub fn i32_load16_u(&mut self, m: MemArg) -> &mut Self {
325
+ self.sink.push(0x2F);
326
+ m.encode(self.sink);
327
+ self
328
+ }
329
+
330
+ /// Encode [`Instruction::I64Load8S`].
331
+ pub fn i64_load8_s(&mut self, m: MemArg) -> &mut Self {
332
+ self.sink.push(0x30);
333
+ m.encode(self.sink);
334
+ self
335
+ }
336
+
337
+ /// Encode [`Instruction::I64Load8U`].
338
+ pub fn i64_load8_u(&mut self, m: MemArg) -> &mut Self {
339
+ self.sink.push(0x31);
340
+ m.encode(self.sink);
341
+ self
342
+ }
343
+
344
+ /// Encode [`Instruction::I64Load16S`].
345
+ pub fn i64_load16_s(&mut self, m: MemArg) -> &mut Self {
346
+ self.sink.push(0x32);
347
+ m.encode(self.sink);
348
+ self
349
+ }
350
+
351
+ /// Encode [`Instruction::I64Load16U`].
352
+ pub fn i64_load16_u(&mut self, m: MemArg) -> &mut Self {
353
+ self.sink.push(0x33);
354
+ m.encode(self.sink);
355
+ self
356
+ }
357
+
358
+ /// Encode [`Instruction::I64Load32S`].
359
+ pub fn i64_load32_s(&mut self, m: MemArg) -> &mut Self {
360
+ self.sink.push(0x34);
361
+ m.encode(self.sink);
362
+ self
363
+ }
364
+
365
+ /// Encode [`Instruction::I64Load32U`].
366
+ pub fn i64_load32_u(&mut self, m: MemArg) -> &mut Self {
367
+ self.sink.push(0x35);
368
+ m.encode(self.sink);
369
+ self
370
+ }
371
+
372
+ /// Encode [`Instruction::I32Store`].
373
+ pub fn i32_store(&mut self, m: MemArg) -> &mut Self {
374
+ self.sink.push(0x36);
375
+ m.encode(self.sink);
376
+ self
377
+ }
378
+
379
+ /// Encode [`Instruction::I64Store`].
380
+ pub fn i64_store(&mut self, m: MemArg) -> &mut Self {
381
+ self.sink.push(0x37);
382
+ m.encode(self.sink);
383
+ self
384
+ }
385
+
386
+ /// Encode [`Instruction::F32Store`].
387
+ pub fn f32_store(&mut self, m: MemArg) -> &mut Self {
388
+ self.sink.push(0x38);
389
+ m.encode(self.sink);
390
+ self
391
+ }
392
+
393
+ /// Encode [`Instruction::F64Store`].
394
+ pub fn f64_store(&mut self, m: MemArg) -> &mut Self {
395
+ self.sink.push(0x39);
396
+ m.encode(self.sink);
397
+ self
398
+ }
399
+
400
+ /// Encode [`Instruction::I32Store8`].
401
+ pub fn i32_store8(&mut self, m: MemArg) -> &mut Self {
402
+ self.sink.push(0x3A);
403
+ m.encode(self.sink);
404
+ self
405
+ }
406
+
407
+ /// Encode [`Instruction::I32Store16`].
408
+ pub fn i32_store16(&mut self, m: MemArg) -> &mut Self {
409
+ self.sink.push(0x3B);
410
+ m.encode(self.sink);
411
+ self
412
+ }
413
+
414
+ /// Encode [`Instruction::I64Store8`].
415
+ pub fn i64_store8(&mut self, m: MemArg) -> &mut Self {
416
+ self.sink.push(0x3C);
417
+ m.encode(self.sink);
418
+ self
419
+ }
420
+
421
+ /// Encode [`Instruction::I64Store16`].
422
+ pub fn i64_store16(&mut self, m: MemArg) -> &mut Self {
423
+ self.sink.push(0x3D);
424
+ m.encode(self.sink);
425
+ self
426
+ }
427
+
428
+ /// Encode [`Instruction::I64Store32`].
429
+ pub fn i64_store32(&mut self, m: MemArg) -> &mut Self {
430
+ self.sink.push(0x3E);
431
+ m.encode(self.sink);
432
+ self
433
+ }
434
+
435
+ /// Encode [`Instruction::MemorySize`].
436
+ pub fn memory_size(&mut self, i: u32) -> &mut Self {
437
+ self.sink.push(0x3F);
438
+ i.encode(self.sink);
439
+ self
440
+ }
441
+
442
+ /// Encode [`Instruction::MemoryGrow`].
443
+ pub fn memory_grow(&mut self, i: u32) -> &mut Self {
444
+ self.sink.push(0x40);
445
+ i.encode(self.sink);
446
+ self
447
+ }
448
+
449
+ /// Encode [`Instruction::MemoryInit`].
450
+ pub fn memory_init(&mut self, mem: u32, data_index: u32) -> &mut Self {
451
+ self.sink.push(0xfc);
452
+ self.sink.push(0x08);
453
+ data_index.encode(self.sink);
454
+ mem.encode(self.sink);
455
+ self
456
+ }
457
+
458
+ /// Encode [`Instruction::DataDrop`].
459
+ pub fn data_drop(&mut self, data: u32) -> &mut Self {
460
+ self.sink.push(0xfc);
461
+ self.sink.push(0x09);
462
+ data.encode(self.sink);
463
+ self
464
+ }
465
+
466
+ /// Encode [`Instruction::MemoryCopy`].
467
+ pub fn memory_copy(&mut self, dst_mem: u32, src_mem: u32) -> &mut Self {
468
+ self.sink.push(0xfc);
469
+ self.sink.push(0x0a);
470
+ dst_mem.encode(self.sink);
471
+ src_mem.encode(self.sink);
472
+ self
473
+ }
474
+
475
+ /// Encode [`Instruction::MemoryFill`].
476
+ pub fn memory_fill(&mut self, mem: u32) -> &mut Self {
477
+ self.sink.push(0xfc);
478
+ self.sink.push(0x0b);
479
+ mem.encode(self.sink);
480
+ self
481
+ }
482
+
483
+ /// Encode [`Instruction::MemoryDiscard`].
484
+ pub fn memory_discard(&mut self, mem: u32) -> &mut Self {
485
+ self.sink.push(0xfc);
486
+ self.sink.push(0x12);
487
+ mem.encode(self.sink);
488
+ self
489
+ }
490
+
491
+ // Numeric instructions.
492
+
493
+ /// Encode [`Instruction::I32Const`].
494
+ pub fn i32_const(&mut self, x: i32) -> &mut Self {
495
+ self.sink.push(0x41);
496
+ x.encode(self.sink);
497
+ self
498
+ }
499
+
500
+ /// Encode [`Instruction::I64Const`].
501
+ pub fn i64_const(&mut self, x: i64) -> &mut Self {
502
+ self.sink.push(0x42);
503
+ x.encode(self.sink);
504
+ self
505
+ }
506
+
507
+ /// Encode [`Instruction::F32Const`].
508
+ pub fn f32_const(&mut self, x: Ieee32) -> &mut Self {
509
+ self.sink.push(0x43);
510
+ let x = x.bits();
511
+ self.sink.extend(x.to_le_bytes().iter().copied());
512
+ self
513
+ }
514
+
515
+ /// Encode [`Instruction::F64Const`].
516
+ pub fn f64_const(&mut self, x: Ieee64) -> &mut Self {
517
+ self.sink.push(0x44);
518
+ let x = x.bits();
519
+ self.sink.extend(x.to_le_bytes().iter().copied());
520
+ self
521
+ }
522
+
523
+ /// Encode [`Instruction::I32Eqz`].
524
+ pub fn i32_eqz(&mut self) -> &mut Self {
525
+ self.sink.push(0x45);
526
+ self
527
+ }
528
+
529
+ /// Encode [`Instruction::I32Eq`].
530
+ pub fn i32_eq(&mut self) -> &mut Self {
531
+ self.sink.push(0x46);
532
+ self
533
+ }
534
+
535
+ /// Encode [`Instruction::I32Ne`].
536
+ pub fn i32_ne(&mut self) -> &mut Self {
537
+ self.sink.push(0x47);
538
+ self
539
+ }
540
+
541
+ /// Encode [`Instruction::I32LtS`].
542
+ pub fn i32_lt_s(&mut self) -> &mut Self {
543
+ self.sink.push(0x48);
544
+ self
545
+ }
546
+
547
+ /// Encode [`Instruction::I32LtU`].
548
+ pub fn i32_lt_u(&mut self) -> &mut Self {
549
+ self.sink.push(0x49);
550
+ self
551
+ }
552
+
553
+ /// Encode [`Instruction::I32GtS`].
554
+ pub fn i32_gt_s(&mut self) -> &mut Self {
555
+ self.sink.push(0x4A);
556
+ self
557
+ }
558
+
559
+ /// Encode [`Instruction::I32GtU`].
560
+ pub fn i32_gt_u(&mut self) -> &mut Self {
561
+ self.sink.push(0x4B);
562
+ self
563
+ }
564
+
565
+ /// Encode [`Instruction::I32LeS`].
566
+ pub fn i32_le_s(&mut self) -> &mut Self {
567
+ self.sink.push(0x4C);
568
+ self
569
+ }
570
+
571
+ /// Encode [`Instruction::I32LeU`].
572
+ pub fn i32_le_u(&mut self) -> &mut Self {
573
+ self.sink.push(0x4D);
574
+ self
575
+ }
576
+
577
+ /// Encode [`Instruction::I32GeS`].
578
+ pub fn i32_ge_s(&mut self) -> &mut Self {
579
+ self.sink.push(0x4E);
580
+ self
581
+ }
582
+
583
+ /// Encode [`Instruction::I32GeU`].
584
+ pub fn i32_ge_u(&mut self) -> &mut Self {
585
+ self.sink.push(0x4F);
586
+ self
587
+ }
588
+
589
+ /// Encode [`Instruction::I64Eqz`].
590
+ pub fn i64_eqz(&mut self) -> &mut Self {
591
+ self.sink.push(0x50);
592
+ self
593
+ }
594
+
595
+ /// Encode [`Instruction::I64Eq`].
596
+ pub fn i64_eq(&mut self) -> &mut Self {
597
+ self.sink.push(0x51);
598
+ self
599
+ }
600
+
601
+ /// Encode [`Instruction::I64Ne`].
602
+ pub fn i64_ne(&mut self) -> &mut Self {
603
+ self.sink.push(0x52);
604
+ self
605
+ }
606
+
607
+ /// Encode [`Instruction::I64LtS`].
608
+ pub fn i64_lt_s(&mut self) -> &mut Self {
609
+ self.sink.push(0x53);
610
+ self
611
+ }
612
+
613
+ /// Encode [`Instruction::I64LtU`].
614
+ pub fn i64_lt_u(&mut self) -> &mut Self {
615
+ self.sink.push(0x54);
616
+ self
617
+ }
618
+
619
+ /// Encode [`Instruction::I64GtS`].
620
+ pub fn i64_gt_s(&mut self) -> &mut Self {
621
+ self.sink.push(0x55);
622
+ self
623
+ }
624
+
625
+ /// Encode [`Instruction::I64GtU`].
626
+ pub fn i64_gt_u(&mut self) -> &mut Self {
627
+ self.sink.push(0x56);
628
+ self
629
+ }
630
+
631
+ /// Encode [`Instruction::I64LeS`].
632
+ pub fn i64_le_s(&mut self) -> &mut Self {
633
+ self.sink.push(0x57);
634
+ self
635
+ }
636
+
637
+ /// Encode [`Instruction::I64LeU`].
638
+ pub fn i64_le_u(&mut self) -> &mut Self {
639
+ self.sink.push(0x58);
640
+ self
641
+ }
642
+
643
+ /// Encode [`Instruction::I64GeS`].
644
+ pub fn i64_ge_s(&mut self) -> &mut Self {
645
+ self.sink.push(0x59);
646
+ self
647
+ }
648
+
649
+ /// Encode [`Instruction::I64GeU`].
650
+ pub fn i64_ge_u(&mut self) -> &mut Self {
651
+ self.sink.push(0x5A);
652
+ self
653
+ }
654
+
655
+ /// Encode [`Instruction::F32Eq`].
656
+ pub fn f32_eq(&mut self) -> &mut Self {
657
+ self.sink.push(0x5B);
658
+ self
659
+ }
660
+
661
+ /// Encode [`Instruction::F32Ne`].
662
+ pub fn f32_ne(&mut self) -> &mut Self {
663
+ self.sink.push(0x5C);
664
+ self
665
+ }
666
+
667
+ /// Encode [`Instruction::F32Lt`].
668
+ pub fn f32_lt(&mut self) -> &mut Self {
669
+ self.sink.push(0x5D);
670
+ self
671
+ }
672
+
673
+ /// Encode [`Instruction::F32Gt`].
674
+ pub fn f32_gt(&mut self) -> &mut Self {
675
+ self.sink.push(0x5E);
676
+ self
677
+ }
678
+
679
+ /// Encode [`Instruction::F32Le`].
680
+ pub fn f32_le(&mut self) -> &mut Self {
681
+ self.sink.push(0x5F);
682
+ self
683
+ }
684
+
685
+ /// Encode [`Instruction::F32Ge`].
686
+ pub fn f32_ge(&mut self) -> &mut Self {
687
+ self.sink.push(0x60);
688
+ self
689
+ }
690
+
691
+ /// Encode [`Instruction::F64Eq`].
692
+ pub fn f64_eq(&mut self) -> &mut Self {
693
+ self.sink.push(0x61);
694
+ self
695
+ }
696
+
697
+ /// Encode [`Instruction::F64Ne`].
698
+ pub fn f64_ne(&mut self) -> &mut Self {
699
+ self.sink.push(0x62);
700
+ self
701
+ }
702
+
703
+ /// Encode [`Instruction::F64Lt`].
704
+ pub fn f64_lt(&mut self) -> &mut Self {
705
+ self.sink.push(0x63);
706
+ self
707
+ }
708
+
709
+ /// Encode [`Instruction::F64Gt`].
710
+ pub fn f64_gt(&mut self) -> &mut Self {
711
+ self.sink.push(0x64);
712
+ self
713
+ }
714
+
715
+ /// Encode [`Instruction::F64Le`].
716
+ pub fn f64_le(&mut self) -> &mut Self {
717
+ self.sink.push(0x65);
718
+ self
719
+ }
720
+
721
+ /// Encode [`Instruction::F64Ge`].
722
+ pub fn f64_ge(&mut self) -> &mut Self {
723
+ self.sink.push(0x66);
724
+ self
725
+ }
726
+
727
+ /// Encode [`Instruction::I32Clz`].
728
+ pub fn i32_clz(&mut self) -> &mut Self {
729
+ self.sink.push(0x67);
730
+ self
731
+ }
732
+
733
+ /// Encode [`Instruction::I32Ctz`].
734
+ pub fn i32_ctz(&mut self) -> &mut Self {
735
+ self.sink.push(0x68);
736
+ self
737
+ }
738
+
739
+ /// Encode [`Instruction::I32Popcnt`].
740
+ pub fn i32_popcnt(&mut self) -> &mut Self {
741
+ self.sink.push(0x69);
742
+ self
743
+ }
744
+
745
+ /// Encode [`Instruction::I32Add`].
746
+ pub fn i32_add(&mut self) -> &mut Self {
747
+ self.sink.push(0x6A);
748
+ self
749
+ }
750
+
751
+ /// Encode [`Instruction::I32Sub`].
752
+ pub fn i32_sub(&mut self) -> &mut Self {
753
+ self.sink.push(0x6B);
754
+ self
755
+ }
756
+
757
+ /// Encode [`Instruction::I32Mul`].
758
+ pub fn i32_mul(&mut self) -> &mut Self {
759
+ self.sink.push(0x6C);
760
+ self
761
+ }
762
+
763
+ /// Encode [`Instruction::I32DivS`].
764
+ pub fn i32_div_s(&mut self) -> &mut Self {
765
+ self.sink.push(0x6D);
766
+ self
767
+ }
768
+
769
+ /// Encode [`Instruction::I32DivU`].
770
+ pub fn i32_div_u(&mut self) -> &mut Self {
771
+ self.sink.push(0x6E);
772
+ self
773
+ }
774
+
775
+ /// Encode [`Instruction::I32RemS`].
776
+ pub fn i32_rem_s(&mut self) -> &mut Self {
777
+ self.sink.push(0x6F);
778
+ self
779
+ }
780
+
781
+ /// Encode [`Instruction::I32RemU`].
782
+ pub fn i32_rem_u(&mut self) -> &mut Self {
783
+ self.sink.push(0x70);
784
+ self
785
+ }
786
+
787
+ /// Encode [`Instruction::I32And`].
788
+ pub fn i32_and(&mut self) -> &mut Self {
789
+ self.sink.push(0x71);
790
+ self
791
+ }
792
+
793
+ /// Encode [`Instruction::I32Or`].
794
+ pub fn i32_or(&mut self) -> &mut Self {
795
+ self.sink.push(0x72);
796
+ self
797
+ }
798
+
799
+ /// Encode [`Instruction::I32Xor`].
800
+ pub fn i32_xor(&mut self) -> &mut Self {
801
+ self.sink.push(0x73);
802
+ self
803
+ }
804
+
805
+ /// Encode [`Instruction::I32Shl`].
806
+ pub fn i32_shl(&mut self) -> &mut Self {
807
+ self.sink.push(0x74);
808
+ self
809
+ }
810
+
811
+ /// Encode [`Instruction::I32ShrS`].
812
+ pub fn i32_shr_s(&mut self) -> &mut Self {
813
+ self.sink.push(0x75);
814
+ self
815
+ }
816
+
817
+ /// Encode [`Instruction::I32ShrU`].
818
+ pub fn i32_shr_u(&mut self) -> &mut Self {
819
+ self.sink.push(0x76);
820
+ self
821
+ }
822
+
823
+ /// Encode [`Instruction::I32Rotl`].
824
+ pub fn i32_rotl(&mut self) -> &mut Self {
825
+ self.sink.push(0x77);
826
+ self
827
+ }
828
+
829
+ /// Encode [`Instruction::I32Rotr`].
830
+ pub fn i32_rotr(&mut self) -> &mut Self {
831
+ self.sink.push(0x78);
832
+ self
833
+ }
834
+
835
+ /// Encode [`Instruction::I64Clz`].
836
+ pub fn i64_clz(&mut self) -> &mut Self {
837
+ self.sink.push(0x79);
838
+ self
839
+ }
840
+
841
+ /// Encode [`Instruction::I64Ctz`].
842
+ pub fn i64_ctz(&mut self) -> &mut Self {
843
+ self.sink.push(0x7A);
844
+ self
845
+ }
846
+
847
+ /// Encode [`Instruction::I64Popcnt`].
848
+ pub fn i64_popcnt(&mut self) -> &mut Self {
849
+ self.sink.push(0x7B);
850
+ self
851
+ }
852
+
853
+ /// Encode [`Instruction::I64Add`].
854
+ pub fn i64_add(&mut self) -> &mut Self {
855
+ self.sink.push(0x7C);
856
+ self
857
+ }
858
+
859
+ /// Encode [`Instruction::I64Sub`].
860
+ pub fn i64_sub(&mut self) -> &mut Self {
861
+ self.sink.push(0x7D);
862
+ self
863
+ }
864
+
865
+ /// Encode [`Instruction::I64Mul`].
866
+ pub fn i64_mul(&mut self) -> &mut Self {
867
+ self.sink.push(0x7E);
868
+ self
869
+ }
870
+
871
+ /// Encode [`Instruction::I64DivS`].
872
+ pub fn i64_div_s(&mut self) -> &mut Self {
873
+ self.sink.push(0x7F);
874
+ self
875
+ }
876
+
877
+ /// Encode [`Instruction::I64DivU`].
878
+ pub fn i64_div_u(&mut self) -> &mut Self {
879
+ self.sink.push(0x80);
880
+ self
881
+ }
882
+
883
+ /// Encode [`Instruction::I64RemS`].
884
+ pub fn i64_rem_s(&mut self) -> &mut Self {
885
+ self.sink.push(0x81);
886
+ self
887
+ }
888
+
889
+ /// Encode [`Instruction::I64RemU`].
890
+ pub fn i64_rem_u(&mut self) -> &mut Self {
891
+ self.sink.push(0x82);
892
+ self
893
+ }
894
+
895
+ /// Encode [`Instruction::I64And`].
896
+ pub fn i64_and(&mut self) -> &mut Self {
897
+ self.sink.push(0x83);
898
+ self
899
+ }
900
+
901
+ /// Encode [`Instruction::I64Or`].
902
+ pub fn i64_or(&mut self) -> &mut Self {
903
+ self.sink.push(0x84);
904
+ self
905
+ }
906
+
907
+ /// Encode [`Instruction::I64Xor`].
908
+ pub fn i64_xor(&mut self) -> &mut Self {
909
+ self.sink.push(0x85);
910
+ self
911
+ }
912
+
913
+ /// Encode [`Instruction::I64Shl`].
914
+ pub fn i64_shl(&mut self) -> &mut Self {
915
+ self.sink.push(0x86);
916
+ self
917
+ }
918
+
919
+ /// Encode [`Instruction::I64ShrS`].
920
+ pub fn i64_shr_s(&mut self) -> &mut Self {
921
+ self.sink.push(0x87);
922
+ self
923
+ }
924
+
925
+ /// Encode [`Instruction::I64ShrU`].
926
+ pub fn i64_shr_u(&mut self) -> &mut Self {
927
+ self.sink.push(0x88);
928
+ self
929
+ }
930
+
931
+ /// Encode [`Instruction::I64Rotl`].
932
+ pub fn i64_rotl(&mut self) -> &mut Self {
933
+ self.sink.push(0x89);
934
+ self
935
+ }
936
+
937
+ /// Encode [`Instruction::I64Rotr`].
938
+ pub fn i64_rotr(&mut self) -> &mut Self {
939
+ self.sink.push(0x8A);
940
+ self
941
+ }
942
+
943
+ /// Encode [`Instruction::F32Abs`].
944
+ pub fn f32_abs(&mut self) -> &mut Self {
945
+ self.sink.push(0x8B);
946
+ self
947
+ }
948
+
949
+ /// Encode [`Instruction::F32Neg`].
950
+ pub fn f32_neg(&mut self) -> &mut Self {
951
+ self.sink.push(0x8C);
952
+ self
953
+ }
954
+
955
+ /// Encode [`Instruction::F32Ceil`].
956
+ pub fn f32_ceil(&mut self) -> &mut Self {
957
+ self.sink.push(0x8D);
958
+ self
959
+ }
960
+
961
+ /// Encode [`Instruction::F32Floor`].
962
+ pub fn f32_floor(&mut self) -> &mut Self {
963
+ self.sink.push(0x8E);
964
+ self
965
+ }
966
+
967
+ /// Encode [`Instruction::F32Trunc`].
968
+ pub fn f32_trunc(&mut self) -> &mut Self {
969
+ self.sink.push(0x8F);
970
+ self
971
+ }
972
+
973
+ /// Encode [`Instruction::F32Nearest`].
974
+ pub fn f32_nearest(&mut self) -> &mut Self {
975
+ self.sink.push(0x90);
976
+ self
977
+ }
978
+
979
+ /// Encode [`Instruction::F32Sqrt`].
980
+ pub fn f32_sqrt(&mut self) -> &mut Self {
981
+ self.sink.push(0x91);
982
+ self
983
+ }
984
+
985
+ /// Encode [`Instruction::F32Add`].
986
+ pub fn f32_add(&mut self) -> &mut Self {
987
+ self.sink.push(0x92);
988
+ self
989
+ }
990
+
991
+ /// Encode [`Instruction::F32Sub`].
992
+ pub fn f32_sub(&mut self) -> &mut Self {
993
+ self.sink.push(0x93);
994
+ self
995
+ }
996
+
997
+ /// Encode [`Instruction::F32Mul`].
998
+ pub fn f32_mul(&mut self) -> &mut Self {
999
+ self.sink.push(0x94);
1000
+ self
1001
+ }
1002
+
1003
+ /// Encode [`Instruction::F32Div`].
1004
+ pub fn f32_div(&mut self) -> &mut Self {
1005
+ self.sink.push(0x95);
1006
+ self
1007
+ }
1008
+
1009
+ /// Encode [`Instruction::F32Min`].
1010
+ pub fn f32_min(&mut self) -> &mut Self {
1011
+ self.sink.push(0x96);
1012
+ self
1013
+ }
1014
+
1015
+ /// Encode [`Instruction::F32Max`].
1016
+ pub fn f32_max(&mut self) -> &mut Self {
1017
+ self.sink.push(0x97);
1018
+ self
1019
+ }
1020
+
1021
+ /// Encode [`Instruction::F32Copysign`].
1022
+ pub fn f32_copysign(&mut self) -> &mut Self {
1023
+ self.sink.push(0x98);
1024
+ self
1025
+ }
1026
+
1027
+ /// Encode [`Instruction::F64Abs`].
1028
+ pub fn f64_abs(&mut self) -> &mut Self {
1029
+ self.sink.push(0x99);
1030
+ self
1031
+ }
1032
+
1033
+ /// Encode [`Instruction::F64Neg`].
1034
+ pub fn f64_neg(&mut self) -> &mut Self {
1035
+ self.sink.push(0x9A);
1036
+ self
1037
+ }
1038
+
1039
+ /// Encode [`Instruction::F64Ceil`].
1040
+ pub fn f64_ceil(&mut self) -> &mut Self {
1041
+ self.sink.push(0x9B);
1042
+ self
1043
+ }
1044
+
1045
+ /// Encode [`Instruction::F64Floor`].
1046
+ pub fn f64_floor(&mut self) -> &mut Self {
1047
+ self.sink.push(0x9C);
1048
+ self
1049
+ }
1050
+
1051
+ /// Encode [`Instruction::F64Trunc`].
1052
+ pub fn f64_trunc(&mut self) -> &mut Self {
1053
+ self.sink.push(0x9D);
1054
+ self
1055
+ }
1056
+
1057
+ /// Encode [`Instruction::F64Nearest`].
1058
+ pub fn f64_nearest(&mut self) -> &mut Self {
1059
+ self.sink.push(0x9E);
1060
+ self
1061
+ }
1062
+
1063
+ /// Encode [`Instruction::F64Sqrt`].
1064
+ pub fn f64_sqrt(&mut self) -> &mut Self {
1065
+ self.sink.push(0x9F);
1066
+ self
1067
+ }
1068
+
1069
+ /// Encode [`Instruction::F64Add`].
1070
+ pub fn f64_add(&mut self) -> &mut Self {
1071
+ self.sink.push(0xA0);
1072
+ self
1073
+ }
1074
+
1075
+ /// Encode [`Instruction::F64Sub`].
1076
+ pub fn f64_sub(&mut self) -> &mut Self {
1077
+ self.sink.push(0xA1);
1078
+ self
1079
+ }
1080
+
1081
+ /// Encode [`Instruction::F64Mul`].
1082
+ pub fn f64_mul(&mut self) -> &mut Self {
1083
+ self.sink.push(0xA2);
1084
+ self
1085
+ }
1086
+
1087
+ /// Encode [`Instruction::F64Div`].
1088
+ pub fn f64_div(&mut self) -> &mut Self {
1089
+ self.sink.push(0xA3);
1090
+ self
1091
+ }
1092
+
1093
+ /// Encode [`Instruction::F64Min`].
1094
+ pub fn f64_min(&mut self) -> &mut Self {
1095
+ self.sink.push(0xA4);
1096
+ self
1097
+ }
1098
+
1099
+ /// Encode [`Instruction::F64Max`].
1100
+ pub fn f64_max(&mut self) -> &mut Self {
1101
+ self.sink.push(0xA5);
1102
+ self
1103
+ }
1104
+
1105
+ /// Encode [`Instruction::F64Copysign`].
1106
+ pub fn f64_copysign(&mut self) -> &mut Self {
1107
+ self.sink.push(0xA6);
1108
+ self
1109
+ }
1110
+
1111
+ /// Encode [`Instruction::I32WrapI64`].
1112
+ pub fn i32_wrap_i64(&mut self) -> &mut Self {
1113
+ self.sink.push(0xA7);
1114
+ self
1115
+ }
1116
+
1117
+ /// Encode [`Instruction::I32TruncF32S`].
1118
+ pub fn i32_trunc_f32_s(&mut self) -> &mut Self {
1119
+ self.sink.push(0xA8);
1120
+ self
1121
+ }
1122
+
1123
+ /// Encode [`Instruction::I32TruncF32U`].
1124
+ pub fn i32_trunc_f32_u(&mut self) -> &mut Self {
1125
+ self.sink.push(0xA9);
1126
+ self
1127
+ }
1128
+
1129
+ /// Encode [`Instruction::I32TruncF64S`].
1130
+ pub fn i32_trunc_f64_s(&mut self) -> &mut Self {
1131
+ self.sink.push(0xAA);
1132
+ self
1133
+ }
1134
+
1135
+ /// Encode [`Instruction::I32TruncF64U`].
1136
+ pub fn i32_trunc_f64_u(&mut self) -> &mut Self {
1137
+ self.sink.push(0xAB);
1138
+ self
1139
+ }
1140
+
1141
+ /// Encode [`Instruction::I64ExtendI32S`].
1142
+ pub fn i64_extend_i32_s(&mut self) -> &mut Self {
1143
+ self.sink.push(0xAC);
1144
+ self
1145
+ }
1146
+
1147
+ /// Encode [`Instruction::I64ExtendI32U`].
1148
+ pub fn i64_extend_i32_u(&mut self) -> &mut Self {
1149
+ self.sink.push(0xAD);
1150
+ self
1151
+ }
1152
+
1153
+ /// Encode [`Instruction::I64TruncF32S`].
1154
+ pub fn i64_trunc_f32_s(&mut self) -> &mut Self {
1155
+ self.sink.push(0xAE);
1156
+ self
1157
+ }
1158
+
1159
+ /// Encode [`Instruction::I64TruncF32U`].
1160
+ pub fn i64_trunc_f32_u(&mut self) -> &mut Self {
1161
+ self.sink.push(0xAF);
1162
+ self
1163
+ }
1164
+
1165
+ /// Encode [`Instruction::I64TruncF64S`].
1166
+ pub fn i64_trunc_f64_s(&mut self) -> &mut Self {
1167
+ self.sink.push(0xB0);
1168
+ self
1169
+ }
1170
+
1171
+ /// Encode [`Instruction::I64TruncF64U`].
1172
+ pub fn i64_trunc_f64_u(&mut self) -> &mut Self {
1173
+ self.sink.push(0xB1);
1174
+ self
1175
+ }
1176
+
1177
+ /// Encode [`Instruction::F32ConvertI32S`].
1178
+ pub fn f32_convert_i32_s(&mut self) -> &mut Self {
1179
+ self.sink.push(0xB2);
1180
+ self
1181
+ }
1182
+
1183
+ /// Encode [`Instruction::F32ConvertI32U`].
1184
+ pub fn f32_convert_i32_u(&mut self) -> &mut Self {
1185
+ self.sink.push(0xB3);
1186
+ self
1187
+ }
1188
+
1189
+ /// Encode [`Instruction::F32ConvertI64S`].
1190
+ pub fn f32_convert_i64_s(&mut self) -> &mut Self {
1191
+ self.sink.push(0xB4);
1192
+ self
1193
+ }
1194
+
1195
+ /// Encode [`Instruction::F32ConvertI64U`].
1196
+ pub fn f32_convert_i64_u(&mut self) -> &mut Self {
1197
+ self.sink.push(0xB5);
1198
+ self
1199
+ }
1200
+
1201
+ /// Encode [`Instruction::F32DemoteF64`].
1202
+ pub fn f32_demote_f64(&mut self) -> &mut Self {
1203
+ self.sink.push(0xB6);
1204
+ self
1205
+ }
1206
+
1207
+ /// Encode [`Instruction::F64ConvertI32S`].
1208
+ pub fn f64_convert_i32_s(&mut self) -> &mut Self {
1209
+ self.sink.push(0xB7);
1210
+ self
1211
+ }
1212
+
1213
+ /// Encode [`Instruction::F64ConvertI32U`].
1214
+ pub fn f64_convert_i32_u(&mut self) -> &mut Self {
1215
+ self.sink.push(0xB8);
1216
+ self
1217
+ }
1218
+
1219
+ /// Encode [`Instruction::F64ConvertI64S`].
1220
+ pub fn f64_convert_i64_s(&mut self) -> &mut Self {
1221
+ self.sink.push(0xB9);
1222
+ self
1223
+ }
1224
+
1225
+ /// Encode [`Instruction::F64ConvertI64U`].
1226
+ pub fn f64_convert_i64_u(&mut self) -> &mut Self {
1227
+ self.sink.push(0xBA);
1228
+ self
1229
+ }
1230
+
1231
+ /// Encode [`Instruction::F64PromoteF32`].
1232
+ pub fn f64_promote_f32(&mut self) -> &mut Self {
1233
+ self.sink.push(0xBB);
1234
+ self
1235
+ }
1236
+
1237
+ /// Encode [`Instruction::I32ReinterpretF32`].
1238
+ pub fn i32_reinterpret_f32(&mut self) -> &mut Self {
1239
+ self.sink.push(0xBC);
1240
+ self
1241
+ }
1242
+
1243
+ /// Encode [`Instruction::I64ReinterpretF64`].
1244
+ pub fn i64_reinterpret_f64(&mut self) -> &mut Self {
1245
+ self.sink.push(0xBD);
1246
+ self
1247
+ }
1248
+
1249
+ /// Encode [`Instruction::F32ReinterpretI32`].
1250
+ pub fn f32_reinterpret_i32(&mut self) -> &mut Self {
1251
+ self.sink.push(0xBE);
1252
+ self
1253
+ }
1254
+
1255
+ /// Encode [`Instruction::F64ReinterpretI64`].
1256
+ pub fn f64_reinterpret_i64(&mut self) -> &mut Self {
1257
+ self.sink.push(0xBF);
1258
+ self
1259
+ }
1260
+
1261
+ /// Encode [`Instruction::I32Extend8S`].
1262
+ pub fn i32_extend8_s(&mut self) -> &mut Self {
1263
+ self.sink.push(0xC0);
1264
+ self
1265
+ }
1266
+
1267
+ /// Encode [`Instruction::I32Extend16S`].
1268
+ pub fn i32_extend16_s(&mut self) -> &mut Self {
1269
+ self.sink.push(0xC1);
1270
+ self
1271
+ }
1272
+
1273
+ /// Encode [`Instruction::I64Extend8S`].
1274
+ pub fn i64_extend8_s(&mut self) -> &mut Self {
1275
+ self.sink.push(0xC2);
1276
+ self
1277
+ }
1278
+
1279
+ /// Encode [`Instruction::I64Extend16S`].
1280
+ pub fn i64_extend16_s(&mut self) -> &mut Self {
1281
+ self.sink.push(0xC3);
1282
+ self
1283
+ }
1284
+
1285
+ /// Encode [`Instruction::I64Extend32S`].
1286
+ pub fn i64_extend32_s(&mut self) -> &mut Self {
1287
+ self.sink.push(0xC4);
1288
+ self
1289
+ }
1290
+
1291
+ /// Encode [`Instruction::I32TruncSatF32S`].
1292
+ pub fn i32_trunc_sat_f32_s(&mut self) -> &mut Self {
1293
+ self.sink.push(0xFC);
1294
+ self.sink.push(0x00);
1295
+ self
1296
+ }
1297
+
1298
+ /// Encode [`Instruction::I32TruncSatF32U`].
1299
+ pub fn i32_trunc_sat_f32_u(&mut self) -> &mut Self {
1300
+ self.sink.push(0xFC);
1301
+ self.sink.push(0x01);
1302
+ self
1303
+ }
1304
+
1305
+ /// Encode [`Instruction::I32TruncSatF64S`].
1306
+ pub fn i32_trunc_sat_f64_s(&mut self) -> &mut Self {
1307
+ self.sink.push(0xFC);
1308
+ self.sink.push(0x02);
1309
+ self
1310
+ }
1311
+
1312
+ /// Encode [`Instruction::I32TruncSatF64U`].
1313
+ pub fn i32_trunc_sat_f64_u(&mut self) -> &mut Self {
1314
+ self.sink.push(0xFC);
1315
+ self.sink.push(0x03);
1316
+ self
1317
+ }
1318
+
1319
+ /// Encode [`Instruction::I64TruncSatF32S`].
1320
+ pub fn i64_trunc_sat_f32_s(&mut self) -> &mut Self {
1321
+ self.sink.push(0xFC);
1322
+ self.sink.push(0x04);
1323
+ self
1324
+ }
1325
+
1326
+ /// Encode [`Instruction::I64TruncSatF32U`].
1327
+ pub fn i64_trunc_sat_f32_u(&mut self) -> &mut Self {
1328
+ self.sink.push(0xFC);
1329
+ self.sink.push(0x05);
1330
+ self
1331
+ }
1332
+
1333
+ /// Encode [`Instruction::I64TruncSatF64S`].
1334
+ pub fn i64_trunc_sat_f64_s(&mut self) -> &mut Self {
1335
+ self.sink.push(0xFC);
1336
+ self.sink.push(0x06);
1337
+ self
1338
+ }
1339
+
1340
+ /// Encode [`Instruction::I64TruncSatF64U`].
1341
+ pub fn i64_trunc_sat_f64_u(&mut self) -> &mut Self {
1342
+ self.sink.push(0xFC);
1343
+ self.sink.push(0x07);
1344
+ self
1345
+ }
1346
+
1347
+ // Reference types instructions.
1348
+
1349
+ /// Encode [`Instruction::TypedSelect`].
1350
+ pub fn typed_select(&mut self, ty: ValType) -> &mut Self {
1351
+ self.sink.push(0x1c);
1352
+ [ty].encode(self.sink);
1353
+ self
1354
+ }
1355
+
1356
+ /// Encode [`Instruction::TypedSelect`] with multiple results (currently invalid).
1357
+ pub fn typed_select_multi(&mut self, tys: &[ValType]) -> &mut Self {
1358
+ self.sink.push(0x1c);
1359
+ tys.encode(self.sink);
1360
+ self
1361
+ }
1362
+
1363
+ /// Encode [`Instruction::RefNull`].
1364
+ pub fn ref_null(&mut self, ty: HeapType) -> &mut Self {
1365
+ self.sink.push(0xd0);
1366
+ ty.encode(self.sink);
1367
+ self
1368
+ }
1369
+
1370
+ /// Encode [`Instruction::RefIsNull`].
1371
+ pub fn ref_is_null(&mut self) -> &mut Self {
1372
+ self.sink.push(0xd1);
1373
+ self
1374
+ }
1375
+
1376
+ /// Encode [`Instruction::RefFunc`].
1377
+ pub fn ref_func(&mut self, f: u32) -> &mut Self {
1378
+ self.sink.push(0xd2);
1379
+ f.encode(self.sink);
1380
+ self
1381
+ }
1382
+
1383
+ /// Encode [`Instruction::RefEq`].
1384
+ pub fn ref_eq(&mut self) -> &mut Self {
1385
+ self.sink.push(0xd3);
1386
+ self
1387
+ }
1388
+
1389
+ /// Encode [`Instruction::RefAsNonNull`].
1390
+ pub fn ref_as_non_null(&mut self) -> &mut Self {
1391
+ self.sink.push(0xd4);
1392
+ self
1393
+ }
1394
+
1395
+ // GC types instructions.
1396
+
1397
+ /// Encode [`Instruction::StructNew`].
1398
+ pub fn struct_new(&mut self, type_index: u32) -> &mut Self {
1399
+ self.sink.push(0xfb);
1400
+ self.sink.push(0x00);
1401
+ type_index.encode(self.sink);
1402
+ self
1403
+ }
1404
+
1405
+ /// Encode [`Instruction::StructNewDefault`].
1406
+ pub fn struct_new_default(&mut self, type_index: u32) -> &mut Self {
1407
+ self.sink.push(0xfb);
1408
+ self.sink.push(0x01);
1409
+ type_index.encode(self.sink);
1410
+ self
1411
+ }
1412
+
1413
+ /// Encode [`Instruction::StructGet`].
1414
+ pub fn struct_get(&mut self, struct_type_index: u32, field_index: u32) -> &mut Self {
1415
+ self.sink.push(0xfb);
1416
+ self.sink.push(0x02);
1417
+ struct_type_index.encode(self.sink);
1418
+ field_index.encode(self.sink);
1419
+ self
1420
+ }
1421
+
1422
+ /// Encode [`Instruction::StructGetS`].
1423
+ pub fn struct_get_s(&mut self, struct_type_index: u32, field_index: u32) -> &mut Self {
1424
+ self.sink.push(0xfb);
1425
+ self.sink.push(0x03);
1426
+ struct_type_index.encode(self.sink);
1427
+ field_index.encode(self.sink);
1428
+ self
1429
+ }
1430
+
1431
+ /// Encode [`Instruction::StructGetU`].
1432
+ pub fn struct_get_u(&mut self, struct_type_index: u32, field_index: u32) -> &mut Self {
1433
+ self.sink.push(0xfb);
1434
+ self.sink.push(0x04);
1435
+ struct_type_index.encode(self.sink);
1436
+ field_index.encode(self.sink);
1437
+ self
1438
+ }
1439
+
1440
+ /// Encode [`Instruction::StructSet`].
1441
+ pub fn struct_set(&mut self, struct_type_index: u32, field_index: u32) -> &mut Self {
1442
+ self.sink.push(0xfb);
1443
+ self.sink.push(0x05);
1444
+ struct_type_index.encode(self.sink);
1445
+ field_index.encode(self.sink);
1446
+ self
1447
+ }
1448
+
1449
+ /// Encode [`Instruction::StructNewDesc`].
1450
+ pub fn struct_new_desc(&mut self, type_index: u32) -> &mut Self {
1451
+ self.sink.push(0xfb);
1452
+ self.sink.push(0x20);
1453
+ type_index.encode(self.sink);
1454
+ self
1455
+ }
1456
+
1457
+ /// Encode [`Instruction::StructNewDefaultDesc`].
1458
+ pub fn struct_new_default_desc(&mut self, type_index: u32) -> &mut Self {
1459
+ self.sink.push(0xfb);
1460
+ self.sink.push(0x21);
1461
+ type_index.encode(self.sink);
1462
+ self
1463
+ }
1464
+
1465
+ /// Encode [`Instruction::ArrayNew`].
1466
+ pub fn array_new(&mut self, type_index: u32) -> &mut Self {
1467
+ self.sink.push(0xfb);
1468
+ self.sink.push(0x06);
1469
+ type_index.encode(self.sink);
1470
+ self
1471
+ }
1472
+
1473
+ /// Encode [`Instruction::ArrayNewDefault`].
1474
+ pub fn array_new_default(&mut self, type_index: u32) -> &mut Self {
1475
+ self.sink.push(0xfb);
1476
+ self.sink.push(0x07);
1477
+ type_index.encode(self.sink);
1478
+ self
1479
+ }
1480
+
1481
+ /// Encode [`Instruction::ArrayNewFixed`].
1482
+ pub fn array_new_fixed(&mut self, array_type_index: u32, array_size: u32) -> &mut Self {
1483
+ self.sink.push(0xfb);
1484
+ self.sink.push(0x08);
1485
+ array_type_index.encode(self.sink);
1486
+ array_size.encode(self.sink);
1487
+ self
1488
+ }
1489
+
1490
+ /// Encode [`Instruction::ArrayNewData`].
1491
+ pub fn array_new_data(&mut self, array_type_index: u32, array_data_index: u32) -> &mut Self {
1492
+ self.sink.push(0xfb);
1493
+ self.sink.push(0x09);
1494
+ array_type_index.encode(self.sink);
1495
+ array_data_index.encode(self.sink);
1496
+ self
1497
+ }
1498
+
1499
+ /// Encode [`Instruction::ArrayNewElem`].
1500
+ pub fn array_new_elem(&mut self, array_type_index: u32, array_elem_index: u32) -> &mut Self {
1501
+ self.sink.push(0xfb);
1502
+ self.sink.push(0x0a);
1503
+ array_type_index.encode(self.sink);
1504
+ array_elem_index.encode(self.sink);
1505
+ self
1506
+ }
1507
+
1508
+ /// Encode [`Instruction::ArrayGet`].
1509
+ pub fn array_get(&mut self, type_index: u32) -> &mut Self {
1510
+ self.sink.push(0xfb);
1511
+ self.sink.push(0x0b);
1512
+ type_index.encode(self.sink);
1513
+ self
1514
+ }
1515
+
1516
+ /// Encode [`Instruction::ArrayGetS`].
1517
+ pub fn array_get_s(&mut self, type_index: u32) -> &mut Self {
1518
+ self.sink.push(0xfb);
1519
+ self.sink.push(0x0c);
1520
+ type_index.encode(self.sink);
1521
+ self
1522
+ }
1523
+
1524
+ /// Encode [`Instruction::ArrayGetU`].
1525
+ pub fn array_get_u(&mut self, type_index: u32) -> &mut Self {
1526
+ self.sink.push(0xfb);
1527
+ self.sink.push(0x0d);
1528
+ type_index.encode(self.sink);
1529
+ self
1530
+ }
1531
+
1532
+ /// Encode [`Instruction::ArraySet`].
1533
+ pub fn array_set(&mut self, type_index: u32) -> &mut Self {
1534
+ self.sink.push(0xfb);
1535
+ self.sink.push(0x0e);
1536
+ type_index.encode(self.sink);
1537
+ self
1538
+ }
1539
+
1540
+ /// Encode [`Instruction::ArrayLen`].
1541
+ pub fn array_len(&mut self) -> &mut Self {
1542
+ self.sink.push(0xfb);
1543
+ self.sink.push(0x0f);
1544
+ self
1545
+ }
1546
+
1547
+ /// Encode [`Instruction::ArrayFill`].
1548
+ pub fn array_fill(&mut self, type_index: u32) -> &mut Self {
1549
+ self.sink.push(0xfb);
1550
+ self.sink.push(0x10);
1551
+ type_index.encode(self.sink);
1552
+ self
1553
+ }
1554
+
1555
+ /// Encode [`Instruction::ArrayCopy`].
1556
+ pub fn array_copy(
1557
+ &mut self,
1558
+ array_type_index_dst: u32,
1559
+ array_type_index_src: u32,
1560
+ ) -> &mut Self {
1561
+ self.sink.push(0xfb);
1562
+ self.sink.push(0x11);
1563
+ array_type_index_dst.encode(self.sink);
1564
+ array_type_index_src.encode(self.sink);
1565
+ self
1566
+ }
1567
+
1568
+ /// Encode [`Instruction::ArrayInitData`].
1569
+ pub fn array_init_data(&mut self, array_type_index: u32, array_data_index: u32) -> &mut Self {
1570
+ self.sink.push(0xfb);
1571
+ self.sink.push(0x12);
1572
+ array_type_index.encode(self.sink);
1573
+ array_data_index.encode(self.sink);
1574
+ self
1575
+ }
1576
+
1577
+ /// Encode [`Instruction::ArrayInitElem`].
1578
+ pub fn array_init_elem(&mut self, array_type_index: u32, array_elem_index: u32) -> &mut Self {
1579
+ self.sink.push(0xfb);
1580
+ self.sink.push(0x13);
1581
+ array_type_index.encode(self.sink);
1582
+ array_elem_index.encode(self.sink);
1583
+ self
1584
+ }
1585
+
1586
+ /// Encode [`Instruction::RefTestNonNull`].
1587
+ pub fn ref_test_non_null(&mut self, heap_type: HeapType) -> &mut Self {
1588
+ self.sink.push(0xfb);
1589
+ self.sink.push(0x14);
1590
+ heap_type.encode(self.sink);
1591
+ self
1592
+ }
1593
+
1594
+ /// Encode [`Instruction::RefTestNullable`].
1595
+ pub fn ref_test_nullable(&mut self, heap_type: HeapType) -> &mut Self {
1596
+ self.sink.push(0xfb);
1597
+ self.sink.push(0x15);
1598
+ heap_type.encode(self.sink);
1599
+ self
1600
+ }
1601
+
1602
+ /// Encode [`Instruction::RefCastNonNull`].
1603
+ pub fn ref_cast_non_null(&mut self, heap_type: HeapType) -> &mut Self {
1604
+ self.sink.push(0xfb);
1605
+ self.sink.push(0x16);
1606
+ heap_type.encode(self.sink);
1607
+ self
1608
+ }
1609
+
1610
+ /// Encode [`Instruction::RefCastNullable`].
1611
+ pub fn ref_cast_nullable(&mut self, heap_type: HeapType) -> &mut Self {
1612
+ self.sink.push(0xfb);
1613
+ self.sink.push(0x17);
1614
+ heap_type.encode(self.sink);
1615
+ self
1616
+ }
1617
+
1618
+ /// Encode [`Instruction::BrOnCast`].
1619
+ pub fn br_on_cast(
1620
+ &mut self,
1621
+ relative_depth: u32,
1622
+ from_ref_type: RefType,
1623
+ to_ref_type: RefType,
1624
+ ) -> &mut Self {
1625
+ self.sink.push(0xfb);
1626
+ self.sink.push(0x18);
1627
+ let cast_flags = (from_ref_type.nullable as u8) | ((to_ref_type.nullable as u8) << 1);
1628
+ self.sink.push(cast_flags);
1629
+ relative_depth.encode(self.sink);
1630
+ from_ref_type.heap_type.encode(self.sink);
1631
+ to_ref_type.heap_type.encode(self.sink);
1632
+ self
1633
+ }
1634
+
1635
+ /// Encode [`Instruction::BrOnCastFail`].
1636
+ pub fn br_on_cast_fail(
1637
+ &mut self,
1638
+ relative_depth: u32,
1639
+ from_ref_type: RefType,
1640
+ to_ref_type: RefType,
1641
+ ) -> &mut Self {
1642
+ self.sink.push(0xfb);
1643
+ self.sink.push(0x19);
1644
+ let cast_flags = (from_ref_type.nullable as u8) | ((to_ref_type.nullable as u8) << 1);
1645
+ self.sink.push(cast_flags);
1646
+ relative_depth.encode(self.sink);
1647
+ from_ref_type.heap_type.encode(self.sink);
1648
+ to_ref_type.heap_type.encode(self.sink);
1649
+ self
1650
+ }
1651
+
1652
+ /// Encode [`Instruction::AnyConvertExtern`].
1653
+ pub fn any_convert_extern(&mut self) -> &mut Self {
1654
+ self.sink.push(0xfb);
1655
+ self.sink.push(0x1a);
1656
+ self
1657
+ }
1658
+
1659
+ /// Encode [`Instruction::ExternConvertAny`].
1660
+ pub fn extern_convert_any(&mut self) -> &mut Self {
1661
+ self.sink.push(0xfb);
1662
+ self.sink.push(0x1b);
1663
+ self
1664
+ }
1665
+
1666
+ /// Encode [`Instruction::RefI31`].
1667
+ pub fn ref_i31(&mut self) -> &mut Self {
1668
+ self.sink.push(0xfb);
1669
+ self.sink.push(0x1c);
1670
+ self
1671
+ }
1672
+
1673
+ /// Encode [`Instruction::I31GetS`].
1674
+ pub fn i31_get_s(&mut self) -> &mut Self {
1675
+ self.sink.push(0xfb);
1676
+ self.sink.push(0x1d);
1677
+ self
1678
+ }
1679
+
1680
+ /// Encode [`Instruction::I31GetU`].
1681
+ pub fn i31_get_u(&mut self) -> &mut Self {
1682
+ self.sink.push(0xfb);
1683
+ self.sink.push(0x1e);
1684
+ self
1685
+ }
1686
+
1687
+ // Bulk memory instructions.
1688
+
1689
+ /// Encode [`Instruction::TableInit`].
1690
+ pub fn table_init(&mut self, table: u32, elem_index: u32) -> &mut Self {
1691
+ self.sink.push(0xfc);
1692
+ self.sink.push(0x0c);
1693
+ elem_index.encode(self.sink);
1694
+ table.encode(self.sink);
1695
+ self
1696
+ }
1697
+
1698
+ /// Encode [`Instruction::ElemDrop`].
1699
+ pub fn elem_drop(&mut self, segment: u32) -> &mut Self {
1700
+ self.sink.push(0xfc);
1701
+ self.sink.push(0x0d);
1702
+ segment.encode(self.sink);
1703
+ self
1704
+ }
1705
+
1706
+ /// Encode [`Instruction::TableFill`].
1707
+ pub fn table_fill(&mut self, table: u32) -> &mut Self {
1708
+ self.sink.push(0xfc);
1709
+ self.sink.push(0x11);
1710
+ table.encode(self.sink);
1711
+ self
1712
+ }
1713
+
1714
+ /// Encode [`Instruction::TableSet`].
1715
+ pub fn table_set(&mut self, table: u32) -> &mut Self {
1716
+ self.sink.push(0x26);
1717
+ table.encode(self.sink);
1718
+ self
1719
+ }
1720
+
1721
+ /// Encode [`Instruction::TableGet`].
1722
+ pub fn table_get(&mut self, table: u32) -> &mut Self {
1723
+ self.sink.push(0x25);
1724
+ table.encode(self.sink);
1725
+ self
1726
+ }
1727
+
1728
+ /// Encode [`Instruction::TableGrow`].
1729
+ pub fn table_grow(&mut self, table: u32) -> &mut Self {
1730
+ self.sink.push(0xfc);
1731
+ self.sink.push(0x0f);
1732
+ table.encode(self.sink);
1733
+ self
1734
+ }
1735
+
1736
+ /// Encode [`Instruction::TableSize`].
1737
+ pub fn table_size(&mut self, table: u32) -> &mut Self {
1738
+ self.sink.push(0xfc);
1739
+ self.sink.push(0x10);
1740
+ table.encode(self.sink);
1741
+ self
1742
+ }
1743
+
1744
+ /// Encode [`Instruction::TableCopy`].
1745
+ pub fn table_copy(&mut self, dst_table: u32, src_table: u32) -> &mut Self {
1746
+ self.sink.push(0xfc);
1747
+ self.sink.push(0x0e);
1748
+ dst_table.encode(self.sink);
1749
+ src_table.encode(self.sink);
1750
+ self
1751
+ }
1752
+
1753
+ // SIMD instructions.
1754
+
1755
+ /// Encode [`Instruction::V128Load`].
1756
+ pub fn v128_load(&mut self, memarg: MemArg) -> &mut Self {
1757
+ self.sink.push(0xFD);
1758
+ 0x00u32.encode(self.sink);
1759
+ memarg.encode(self.sink);
1760
+ self
1761
+ }
1762
+
1763
+ /// Encode [`Instruction::V128Load8x8S`].
1764
+ pub fn v128_load8x8_s(&mut self, memarg: MemArg) -> &mut Self {
1765
+ self.sink.push(0xFD);
1766
+ 0x01u32.encode(self.sink);
1767
+ memarg.encode(self.sink);
1768
+ self
1769
+ }
1770
+
1771
+ /// Encode [`Instruction::V128Load8x8U`].
1772
+ pub fn v128_load8x8_u(&mut self, memarg: MemArg) -> &mut Self {
1773
+ self.sink.push(0xFD);
1774
+ 0x02u32.encode(self.sink);
1775
+ memarg.encode(self.sink);
1776
+ self
1777
+ }
1778
+
1779
+ /// Encode [`Instruction::V128Load16x4S`].
1780
+ pub fn v128_load16x4_s(&mut self, memarg: MemArg) -> &mut Self {
1781
+ self.sink.push(0xFD);
1782
+ 0x03u32.encode(self.sink);
1783
+ memarg.encode(self.sink);
1784
+ self
1785
+ }
1786
+
1787
+ /// Encode [`Instruction::V128Load16x4U`].
1788
+ pub fn v128_load16x4_u(&mut self, memarg: MemArg) -> &mut Self {
1789
+ self.sink.push(0xFD);
1790
+ 0x04u32.encode(self.sink);
1791
+ memarg.encode(self.sink);
1792
+ self
1793
+ }
1794
+
1795
+ /// Encode [`Instruction::V128Load32x2S`].
1796
+ pub fn v128_load32x2_s(&mut self, memarg: MemArg) -> &mut Self {
1797
+ self.sink.push(0xFD);
1798
+ 0x05u32.encode(self.sink);
1799
+ memarg.encode(self.sink);
1800
+ self
1801
+ }
1802
+
1803
+ /// Encode [`Instruction::V128Load32x2U`].
1804
+ pub fn v128_load32x2_u(&mut self, memarg: MemArg) -> &mut Self {
1805
+ self.sink.push(0xFD);
1806
+ 0x06u32.encode(self.sink);
1807
+ memarg.encode(self.sink);
1808
+ self
1809
+ }
1810
+
1811
+ /// Encode [`Instruction::V128Load8Splat`].
1812
+ pub fn v128_load8_splat(&mut self, memarg: MemArg) -> &mut Self {
1813
+ self.sink.push(0xFD);
1814
+ 0x07u32.encode(self.sink);
1815
+ memarg.encode(self.sink);
1816
+ self
1817
+ }
1818
+
1819
+ /// Encode [`Instruction::V128Load16Splat`].
1820
+ pub fn v128_load16_splat(&mut self, memarg: MemArg) -> &mut Self {
1821
+ self.sink.push(0xFD);
1822
+ 0x08u32.encode(self.sink);
1823
+ memarg.encode(self.sink);
1824
+ self
1825
+ }
1826
+
1827
+ /// Encode [`Instruction::V128Load32Splat`].
1828
+ pub fn v128_load32_splat(&mut self, memarg: MemArg) -> &mut Self {
1829
+ self.sink.push(0xFD);
1830
+ 0x09u32.encode(self.sink);
1831
+ memarg.encode(self.sink);
1832
+ self
1833
+ }
1834
+
1835
+ /// Encode [`Instruction::V128Load64Splat`].
1836
+ pub fn v128_load64_splat(&mut self, memarg: MemArg) -> &mut Self {
1837
+ self.sink.push(0xFD);
1838
+ 0x0Au32.encode(self.sink);
1839
+ memarg.encode(self.sink);
1840
+ self
1841
+ }
1842
+
1843
+ /// Encode [`Instruction::V128Load32Zero`].
1844
+ pub fn v128_load32_zero(&mut self, memarg: MemArg) -> &mut Self {
1845
+ self.sink.push(0xFD);
1846
+ 0x5Cu32.encode(self.sink);
1847
+ memarg.encode(self.sink);
1848
+ self
1849
+ }
1850
+
1851
+ /// Encode [`Instruction::V128Load64Zero`].
1852
+ pub fn v128_load64_zero(&mut self, memarg: MemArg) -> &mut Self {
1853
+ self.sink.push(0xFD);
1854
+ 0x5Du32.encode(self.sink);
1855
+ memarg.encode(self.sink);
1856
+ self
1857
+ }
1858
+
1859
+ /// Encode [`Instruction::V128Store`].
1860
+ pub fn v128_store(&mut self, memarg: MemArg) -> &mut Self {
1861
+ self.sink.push(0xFD);
1862
+ 0x0Bu32.encode(self.sink);
1863
+ memarg.encode(self.sink);
1864
+ self
1865
+ }
1866
+
1867
+ /// Encode [`Instruction::V128Load8Lane`].
1868
+ pub fn v128_load8_lane(&mut self, memarg: MemArg, lane: Lane) -> &mut Self {
1869
+ self.sink.push(0xFD);
1870
+ 0x54u32.encode(self.sink);
1871
+ memarg.encode(self.sink);
1872
+ self.sink.push(lane);
1873
+ self
1874
+ }
1875
+
1876
+ /// Encode [`Instruction::V128Load16Lane`].
1877
+ pub fn v128_load16_lane(&mut self, memarg: MemArg, lane: Lane) -> &mut Self {
1878
+ self.sink.push(0xFD);
1879
+ 0x55u32.encode(self.sink);
1880
+ memarg.encode(self.sink);
1881
+ self.sink.push(lane);
1882
+ self
1883
+ }
1884
+
1885
+ /// Encode [`Instruction::V128Load32Lane`].
1886
+ pub fn v128_load32_lane(&mut self, memarg: MemArg, lane: Lane) -> &mut Self {
1887
+ self.sink.push(0xFD);
1888
+ 0x56u32.encode(self.sink);
1889
+ memarg.encode(self.sink);
1890
+ self.sink.push(lane);
1891
+ self
1892
+ }
1893
+
1894
+ /// Encode [`Instruction::V128Load64Lane`].
1895
+ pub fn v128_load64_lane(&mut self, memarg: MemArg, lane: Lane) -> &mut Self {
1896
+ self.sink.push(0xFD);
1897
+ 0x57u32.encode(self.sink);
1898
+ memarg.encode(self.sink);
1899
+ self.sink.push(lane);
1900
+ self
1901
+ }
1902
+
1903
+ /// Encode [`Instruction::V128Store8Lane`].
1904
+ pub fn v128_store8_lane(&mut self, memarg: MemArg, lane: Lane) -> &mut Self {
1905
+ self.sink.push(0xFD);
1906
+ 0x58u32.encode(self.sink);
1907
+ memarg.encode(self.sink);
1908
+ self.sink.push(lane);
1909
+ self
1910
+ }
1911
+
1912
+ /// Encode [`Instruction::V128Store16Lane`].
1913
+ pub fn v128_store16_lane(&mut self, memarg: MemArg, lane: Lane) -> &mut Self {
1914
+ self.sink.push(0xFD);
1915
+ 0x59u32.encode(self.sink);
1916
+ memarg.encode(self.sink);
1917
+ self.sink.push(lane);
1918
+ self
1919
+ }
1920
+
1921
+ /// Encode [`Instruction::V128Store32Lane`].
1922
+ pub fn v128_store32_lane(&mut self, memarg: MemArg, lane: Lane) -> &mut Self {
1923
+ self.sink.push(0xFD);
1924
+ 0x5Au32.encode(self.sink);
1925
+ memarg.encode(self.sink);
1926
+ self.sink.push(lane);
1927
+ self
1928
+ }
1929
+
1930
+ /// Encode [`Instruction::V128Store64Lane`].
1931
+ pub fn v128_store64_lane(&mut self, memarg: MemArg, lane: Lane) -> &mut Self {
1932
+ self.sink.push(0xFD);
1933
+ 0x5Bu32.encode(self.sink);
1934
+ memarg.encode(self.sink);
1935
+ self.sink.push(lane);
1936
+ self
1937
+ }
1938
+
1939
+ /// Encode [`Instruction::V128Const`].
1940
+ pub fn v128_const(&mut self, x: i128) -> &mut Self {
1941
+ self.sink.push(0xFD);
1942
+ 0x0Cu32.encode(self.sink);
1943
+ self.sink.extend(x.to_le_bytes().iter().copied());
1944
+ self
1945
+ }
1946
+
1947
+ /// Encode [`Instruction::I8x16Shuffle`].
1948
+ pub fn i8x16_shuffle(&mut self, lanes: [Lane; 16]) -> &mut Self {
1949
+ self.sink.push(0xFD);
1950
+ 0x0Du32.encode(self.sink);
1951
+ self.sink.extend(lanes.iter().copied());
1952
+ self
1953
+ }
1954
+
1955
+ /// Encode [`Instruction::I8x16ExtractLaneS`].
1956
+ pub fn i8x16_extract_lane_s(&mut self, lane: Lane) -> &mut Self {
1957
+ self.sink.push(0xFD);
1958
+ 0x15u32.encode(self.sink);
1959
+ self.sink.push(lane);
1960
+ self
1961
+ }
1962
+
1963
+ /// Encode [`Instruction::I8x16ExtractLaneU`].
1964
+ pub fn i8x16_extract_lane_u(&mut self, lane: Lane) -> &mut Self {
1965
+ self.sink.push(0xFD);
1966
+ 0x16u32.encode(self.sink);
1967
+ self.sink.push(lane);
1968
+ self
1969
+ }
1970
+
1971
+ /// Encode [`Instruction::I8x16ReplaceLane`].
1972
+ pub fn i8x16_replace_lane(&mut self, lane: Lane) -> &mut Self {
1973
+ self.sink.push(0xFD);
1974
+ 0x17u32.encode(self.sink);
1975
+ self.sink.push(lane);
1976
+ self
1977
+ }
1978
+
1979
+ /// Encode [`Instruction::I16x8ExtractLaneS`].
1980
+ pub fn i16x8_extract_lane_s(&mut self, lane: Lane) -> &mut Self {
1981
+ self.sink.push(0xFD);
1982
+ 0x18u32.encode(self.sink);
1983
+ self.sink.push(lane);
1984
+ self
1985
+ }
1986
+
1987
+ /// Encode [`Instruction::I16x8ExtractLaneU`].
1988
+ pub fn i16x8_extract_lane_u(&mut self, lane: Lane) -> &mut Self {
1989
+ self.sink.push(0xFD);
1990
+ 0x19u32.encode(self.sink);
1991
+ self.sink.push(lane);
1992
+ self
1993
+ }
1994
+
1995
+ /// Encode [`Instruction::I16x8ReplaceLane`].
1996
+ pub fn i16x8_replace_lane(&mut self, lane: Lane) -> &mut Self {
1997
+ self.sink.push(0xFD);
1998
+ 0x1Au32.encode(self.sink);
1999
+ self.sink.push(lane);
2000
+ self
2001
+ }
2002
+
2003
+ /// Encode [`Instruction::I32x4ExtractLane`].
2004
+ pub fn i32x4_extract_lane(&mut self, lane: Lane) -> &mut Self {
2005
+ self.sink.push(0xFD);
2006
+ 0x1Bu32.encode(self.sink);
2007
+ self.sink.push(lane);
2008
+ self
2009
+ }
2010
+
2011
+ /// Encode [`Instruction::I32x4ReplaceLane`].
2012
+ pub fn i32x4_replace_lane(&mut self, lane: Lane) -> &mut Self {
2013
+ self.sink.push(0xFD);
2014
+ 0x1Cu32.encode(self.sink);
2015
+ self.sink.push(lane);
2016
+ self
2017
+ }
2018
+
2019
+ /// Encode [`Instruction::I64x2ExtractLane`].
2020
+ pub fn i64x2_extract_lane(&mut self, lane: Lane) -> &mut Self {
2021
+ self.sink.push(0xFD);
2022
+ 0x1Du32.encode(self.sink);
2023
+ self.sink.push(lane);
2024
+ self
2025
+ }
2026
+
2027
+ /// Encode [`Instruction::I64x2ReplaceLane`].
2028
+ pub fn i64x2_replace_lane(&mut self, lane: Lane) -> &mut Self {
2029
+ self.sink.push(0xFD);
2030
+ 0x1Eu32.encode(self.sink);
2031
+ self.sink.push(lane);
2032
+ self
2033
+ }
2034
+
2035
+ /// Encode [`Instruction::F32x4ExtractLane`].
2036
+ pub fn f32x4_extract_lane(&mut self, lane: Lane) -> &mut Self {
2037
+ self.sink.push(0xFD);
2038
+ 0x1Fu32.encode(self.sink);
2039
+ self.sink.push(lane);
2040
+ self
2041
+ }
2042
+
2043
+ /// Encode [`Instruction::F32x4ReplaceLane`].
2044
+ pub fn f32x4_replace_lane(&mut self, lane: Lane) -> &mut Self {
2045
+ self.sink.push(0xFD);
2046
+ 0x20u32.encode(self.sink);
2047
+ self.sink.push(lane);
2048
+ self
2049
+ }
2050
+
2051
+ /// Encode [`Instruction::F64x2ExtractLane`].
2052
+ pub fn f64x2_extract_lane(&mut self, lane: Lane) -> &mut Self {
2053
+ self.sink.push(0xFD);
2054
+ 0x21u32.encode(self.sink);
2055
+ self.sink.push(lane);
2056
+ self
2057
+ }
2058
+
2059
+ /// Encode [`Instruction::F64x2ReplaceLane`].
2060
+ pub fn f64x2_replace_lane(&mut self, lane: Lane) -> &mut Self {
2061
+ self.sink.push(0xFD);
2062
+ 0x22u32.encode(self.sink);
2063
+ self.sink.push(lane);
2064
+ self
2065
+ }
2066
+
2067
+ /// Encode [`Instruction::I8x16Swizzle`].
2068
+ pub fn i8x16_swizzle(&mut self) -> &mut Self {
2069
+ self.sink.push(0xFD);
2070
+ 0x0Eu32.encode(self.sink);
2071
+ self
2072
+ }
2073
+
2074
+ /// Encode [`Instruction::I8x16Splat`].
2075
+ pub fn i8x16_splat(&mut self) -> &mut Self {
2076
+ self.sink.push(0xFD);
2077
+ 0x0Fu32.encode(self.sink);
2078
+ self
2079
+ }
2080
+
2081
+ /// Encode [`Instruction::I16x8Splat`].
2082
+ pub fn i16x8_splat(&mut self) -> &mut Self {
2083
+ self.sink.push(0xFD);
2084
+ 0x10u32.encode(self.sink);
2085
+ self
2086
+ }
2087
+
2088
+ /// Encode [`Instruction::I32x4Splat`].
2089
+ pub fn i32x4_splat(&mut self) -> &mut Self {
2090
+ self.sink.push(0xFD);
2091
+ 0x11u32.encode(self.sink);
2092
+ self
2093
+ }
2094
+
2095
+ /// Encode [`Instruction::I64x2Splat`].
2096
+ pub fn i64x2_splat(&mut self) -> &mut Self {
2097
+ self.sink.push(0xFD);
2098
+ 0x12u32.encode(self.sink);
2099
+ self
2100
+ }
2101
+
2102
+ /// Encode [`Instruction::F32x4Splat`].
2103
+ pub fn f32x4_splat(&mut self) -> &mut Self {
2104
+ self.sink.push(0xFD);
2105
+ 0x13u32.encode(self.sink);
2106
+ self
2107
+ }
2108
+
2109
+ /// Encode [`Instruction::F64x2Splat`].
2110
+ pub fn f64x2_splat(&mut self) -> &mut Self {
2111
+ self.sink.push(0xFD);
2112
+ 0x14u32.encode(self.sink);
2113
+ self
2114
+ }
2115
+
2116
+ /// Encode [`Instruction::I8x16Eq`].
2117
+ pub fn i8x16_eq(&mut self) -> &mut Self {
2118
+ self.sink.push(0xFD);
2119
+ 0x23u32.encode(self.sink);
2120
+ self
2121
+ }
2122
+
2123
+ /// Encode [`Instruction::I8x16Ne`].
2124
+ pub fn i8x16_ne(&mut self) -> &mut Self {
2125
+ self.sink.push(0xFD);
2126
+ 0x24u32.encode(self.sink);
2127
+ self
2128
+ }
2129
+
2130
+ /// Encode [`Instruction::I8x16LtS`].
2131
+ pub fn i8x16_lt_s(&mut self) -> &mut Self {
2132
+ self.sink.push(0xFD);
2133
+ 0x25u32.encode(self.sink);
2134
+ self
2135
+ }
2136
+
2137
+ /// Encode [`Instruction::I8x16LtU`].
2138
+ pub fn i8x16_lt_u(&mut self) -> &mut Self {
2139
+ self.sink.push(0xFD);
2140
+ 0x26u32.encode(self.sink);
2141
+ self
2142
+ }
2143
+
2144
+ /// Encode [`Instruction::I8x16GtS`].
2145
+ pub fn i8x16_gt_s(&mut self) -> &mut Self {
2146
+ self.sink.push(0xFD);
2147
+ 0x27u32.encode(self.sink);
2148
+ self
2149
+ }
2150
+
2151
+ /// Encode [`Instruction::I8x16GtU`].
2152
+ pub fn i8x16_gt_u(&mut self) -> &mut Self {
2153
+ self.sink.push(0xFD);
2154
+ 0x28u32.encode(self.sink);
2155
+ self
2156
+ }
2157
+
2158
+ /// Encode [`Instruction::I8x16LeS`].
2159
+ pub fn i8x16_le_s(&mut self) -> &mut Self {
2160
+ self.sink.push(0xFD);
2161
+ 0x29u32.encode(self.sink);
2162
+ self
2163
+ }
2164
+
2165
+ /// Encode [`Instruction::I8x16LeU`].
2166
+ pub fn i8x16_le_u(&mut self) -> &mut Self {
2167
+ self.sink.push(0xFD);
2168
+ 0x2Au32.encode(self.sink);
2169
+ self
2170
+ }
2171
+
2172
+ /// Encode [`Instruction::I8x16GeS`].
2173
+ pub fn i8x16_ge_s(&mut self) -> &mut Self {
2174
+ self.sink.push(0xFD);
2175
+ 0x2Bu32.encode(self.sink);
2176
+ self
2177
+ }
2178
+
2179
+ /// Encode [`Instruction::I8x16GeU`].
2180
+ pub fn i8x16_ge_u(&mut self) -> &mut Self {
2181
+ self.sink.push(0xFD);
2182
+ 0x2Cu32.encode(self.sink);
2183
+ self
2184
+ }
2185
+
2186
+ /// Encode [`Instruction::I16x8Eq`].
2187
+ pub fn i16x8_eq(&mut self) -> &mut Self {
2188
+ self.sink.push(0xFD);
2189
+ 0x2Du32.encode(self.sink);
2190
+ self
2191
+ }
2192
+
2193
+ /// Encode [`Instruction::I16x8Ne`].
2194
+ pub fn i16x8_ne(&mut self) -> &mut Self {
2195
+ self.sink.push(0xFD);
2196
+ 0x2Eu32.encode(self.sink);
2197
+ self
2198
+ }
2199
+
2200
+ /// Encode [`Instruction::I16x8LtS`].
2201
+ pub fn i16x8_lt_s(&mut self) -> &mut Self {
2202
+ self.sink.push(0xFD);
2203
+ 0x2Fu32.encode(self.sink);
2204
+ self
2205
+ }
2206
+
2207
+ /// Encode [`Instruction::I16x8LtU`].
2208
+ pub fn i16x8_lt_u(&mut self) -> &mut Self {
2209
+ self.sink.push(0xFD);
2210
+ 0x30u32.encode(self.sink);
2211
+ self
2212
+ }
2213
+
2214
+ /// Encode [`Instruction::I16x8GtS`].
2215
+ pub fn i16x8_gt_s(&mut self) -> &mut Self {
2216
+ self.sink.push(0xFD);
2217
+ 0x31u32.encode(self.sink);
2218
+ self
2219
+ }
2220
+
2221
+ /// Encode [`Instruction::I16x8GtU`].
2222
+ pub fn i16x8_gt_u(&mut self) -> &mut Self {
2223
+ self.sink.push(0xFD);
2224
+ 0x32u32.encode(self.sink);
2225
+ self
2226
+ }
2227
+
2228
+ /// Encode [`Instruction::I16x8LeS`].
2229
+ pub fn i16x8_le_s(&mut self) -> &mut Self {
2230
+ self.sink.push(0xFD);
2231
+ 0x33u32.encode(self.sink);
2232
+ self
2233
+ }
2234
+
2235
+ /// Encode [`Instruction::I16x8LeU`].
2236
+ pub fn i16x8_le_u(&mut self) -> &mut Self {
2237
+ self.sink.push(0xFD);
2238
+ 0x34u32.encode(self.sink);
2239
+ self
2240
+ }
2241
+
2242
+ /// Encode [`Instruction::I16x8GeS`].
2243
+ pub fn i16x8_ge_s(&mut self) -> &mut Self {
2244
+ self.sink.push(0xFD);
2245
+ 0x35u32.encode(self.sink);
2246
+ self
2247
+ }
2248
+
2249
+ /// Encode [`Instruction::I16x8GeU`].
2250
+ pub fn i16x8_ge_u(&mut self) -> &mut Self {
2251
+ self.sink.push(0xFD);
2252
+ 0x36u32.encode(self.sink);
2253
+ self
2254
+ }
2255
+
2256
+ /// Encode [`Instruction::I32x4Eq`].
2257
+ pub fn i32x4_eq(&mut self) -> &mut Self {
2258
+ self.sink.push(0xFD);
2259
+ 0x37u32.encode(self.sink);
2260
+ self
2261
+ }
2262
+
2263
+ /// Encode [`Instruction::I32x4Ne`].
2264
+ pub fn i32x4_ne(&mut self) -> &mut Self {
2265
+ self.sink.push(0xFD);
2266
+ 0x38u32.encode(self.sink);
2267
+ self
2268
+ }
2269
+
2270
+ /// Encode [`Instruction::I32x4LtS`].
2271
+ pub fn i32x4_lt_s(&mut self) -> &mut Self {
2272
+ self.sink.push(0xFD);
2273
+ 0x39u32.encode(self.sink);
2274
+ self
2275
+ }
2276
+
2277
+ /// Encode [`Instruction::I32x4LtU`].
2278
+ pub fn i32x4_lt_u(&mut self) -> &mut Self {
2279
+ self.sink.push(0xFD);
2280
+ 0x3Au32.encode(self.sink);
2281
+ self
2282
+ }
2283
+
2284
+ /// Encode [`Instruction::I32x4GtS`].
2285
+ pub fn i32x4_gt_s(&mut self) -> &mut Self {
2286
+ self.sink.push(0xFD);
2287
+ 0x3Bu32.encode(self.sink);
2288
+ self
2289
+ }
2290
+
2291
+ /// Encode [`Instruction::I32x4GtU`].
2292
+ pub fn i32x4_gt_u(&mut self) -> &mut Self {
2293
+ self.sink.push(0xFD);
2294
+ 0x3Cu32.encode(self.sink);
2295
+ self
2296
+ }
2297
+
2298
+ /// Encode [`Instruction::I32x4LeS`].
2299
+ pub fn i32x4_le_s(&mut self) -> &mut Self {
2300
+ self.sink.push(0xFD);
2301
+ 0x3Du32.encode(self.sink);
2302
+ self
2303
+ }
2304
+
2305
+ /// Encode [`Instruction::I32x4LeU`].
2306
+ pub fn i32x4_le_u(&mut self) -> &mut Self {
2307
+ self.sink.push(0xFD);
2308
+ 0x3Eu32.encode(self.sink);
2309
+ self
2310
+ }
2311
+
2312
+ /// Encode [`Instruction::I32x4GeS`].
2313
+ pub fn i32x4_ge_s(&mut self) -> &mut Self {
2314
+ self.sink.push(0xFD);
2315
+ 0x3Fu32.encode(self.sink);
2316
+ self
2317
+ }
2318
+
2319
+ /// Encode [`Instruction::I32x4GeU`].
2320
+ pub fn i32x4_ge_u(&mut self) -> &mut Self {
2321
+ self.sink.push(0xFD);
2322
+ 0x40u32.encode(self.sink);
2323
+ self
2324
+ }
2325
+
2326
+ /// Encode [`Instruction::I64x2Eq`].
2327
+ pub fn i64x2_eq(&mut self) -> &mut Self {
2328
+ self.sink.push(0xFD);
2329
+ 0xD6u32.encode(self.sink);
2330
+ self
2331
+ }
2332
+
2333
+ /// Encode [`Instruction::I64x2Ne`].
2334
+ pub fn i64x2_ne(&mut self) -> &mut Self {
2335
+ self.sink.push(0xFD);
2336
+ 0xD7u32.encode(self.sink);
2337
+ self
2338
+ }
2339
+
2340
+ /// Encode [`Instruction::I64x2LtS`].
2341
+ pub fn i64x2_lt_s(&mut self) -> &mut Self {
2342
+ self.sink.push(0xFD);
2343
+ 0xD8u32.encode(self.sink);
2344
+ self
2345
+ }
2346
+
2347
+ /// Encode [`Instruction::I64x2GtS`].
2348
+ pub fn i64x2_gt_s(&mut self) -> &mut Self {
2349
+ self.sink.push(0xFD);
2350
+ 0xD9u32.encode(self.sink);
2351
+ self
2352
+ }
2353
+
2354
+ /// Encode [`Instruction::I64x2LeS`].
2355
+ pub fn i64x2_le_s(&mut self) -> &mut Self {
2356
+ self.sink.push(0xFD);
2357
+ 0xDAu32.encode(self.sink);
2358
+ self
2359
+ }
2360
+
2361
+ /// Encode [`Instruction::I64x2GeS`].
2362
+ pub fn i64x2_ge_s(&mut self) -> &mut Self {
2363
+ self.sink.push(0xFD);
2364
+ 0xDBu32.encode(self.sink);
2365
+ self
2366
+ }
2367
+
2368
+ /// Encode [`Instruction::F32x4Eq`].
2369
+ pub fn f32x4_eq(&mut self) -> &mut Self {
2370
+ self.sink.push(0xFD);
2371
+ 0x41u32.encode(self.sink);
2372
+ self
2373
+ }
2374
+
2375
+ /// Encode [`Instruction::F32x4Ne`].
2376
+ pub fn f32x4_ne(&mut self) -> &mut Self {
2377
+ self.sink.push(0xFD);
2378
+ 0x42u32.encode(self.sink);
2379
+ self
2380
+ }
2381
+
2382
+ /// Encode [`Instruction::F32x4Lt`].
2383
+ pub fn f32x4_lt(&mut self) -> &mut Self {
2384
+ self.sink.push(0xFD);
2385
+ 0x43u32.encode(self.sink);
2386
+ self
2387
+ }
2388
+
2389
+ /// Encode [`Instruction::F32x4Gt`].
2390
+ pub fn f32x4_gt(&mut self) -> &mut Self {
2391
+ self.sink.push(0xFD);
2392
+ 0x44u32.encode(self.sink);
2393
+ self
2394
+ }
2395
+
2396
+ /// Encode [`Instruction::F32x4Le`].
2397
+ pub fn f32x4_le(&mut self) -> &mut Self {
2398
+ self.sink.push(0xFD);
2399
+ 0x45u32.encode(self.sink);
2400
+ self
2401
+ }
2402
+
2403
+ /// Encode [`Instruction::F32x4Ge`].
2404
+ pub fn f32x4_ge(&mut self) -> &mut Self {
2405
+ self.sink.push(0xFD);
2406
+ 0x46u32.encode(self.sink);
2407
+ self
2408
+ }
2409
+
2410
+ /// Encode [`Instruction::F64x2Eq`].
2411
+ pub fn f64x2_eq(&mut self) -> &mut Self {
2412
+ self.sink.push(0xFD);
2413
+ 0x47u32.encode(self.sink);
2414
+ self
2415
+ }
2416
+
2417
+ /// Encode [`Instruction::F64x2Ne`].
2418
+ pub fn f64x2_ne(&mut self) -> &mut Self {
2419
+ self.sink.push(0xFD);
2420
+ 0x48u32.encode(self.sink);
2421
+ self
2422
+ }
2423
+
2424
+ /// Encode [`Instruction::F64x2Lt`].
2425
+ pub fn f64x2_lt(&mut self) -> &mut Self {
2426
+ self.sink.push(0xFD);
2427
+ 0x49u32.encode(self.sink);
2428
+ self
2429
+ }
2430
+
2431
+ /// Encode [`Instruction::F64x2Gt`].
2432
+ pub fn f64x2_gt(&mut self) -> &mut Self {
2433
+ self.sink.push(0xFD);
2434
+ 0x4Au32.encode(self.sink);
2435
+ self
2436
+ }
2437
+
2438
+ /// Encode [`Instruction::F64x2Le`].
2439
+ pub fn f64x2_le(&mut self) -> &mut Self {
2440
+ self.sink.push(0xFD);
2441
+ 0x4Bu32.encode(self.sink);
2442
+ self
2443
+ }
2444
+
2445
+ /// Encode [`Instruction::F64x2Ge`].
2446
+ pub fn f64x2_ge(&mut self) -> &mut Self {
2447
+ self.sink.push(0xFD);
2448
+ 0x4Cu32.encode(self.sink);
2449
+ self
2450
+ }
2451
+
2452
+ /// Encode [`Instruction::V128Not`].
2453
+ pub fn v128_not(&mut self) -> &mut Self {
2454
+ self.sink.push(0xFD);
2455
+ 0x4Du32.encode(self.sink);
2456
+ self
2457
+ }
2458
+
2459
+ /// Encode [`Instruction::V128And`].
2460
+ pub fn v128_and(&mut self) -> &mut Self {
2461
+ self.sink.push(0xFD);
2462
+ 0x4Eu32.encode(self.sink);
2463
+ self
2464
+ }
2465
+
2466
+ /// Encode [`Instruction::V128AndNot`].
2467
+ pub fn v128_andnot(&mut self) -> &mut Self {
2468
+ self.sink.push(0xFD);
2469
+ 0x4Fu32.encode(self.sink);
2470
+ self
2471
+ }
2472
+
2473
+ /// Encode [`Instruction::V128Or`].
2474
+ pub fn v128_or(&mut self) -> &mut Self {
2475
+ self.sink.push(0xFD);
2476
+ 0x50u32.encode(self.sink);
2477
+ self
2478
+ }
2479
+
2480
+ /// Encode [`Instruction::V128Xor`].
2481
+ pub fn v128_xor(&mut self) -> &mut Self {
2482
+ self.sink.push(0xFD);
2483
+ 0x51u32.encode(self.sink);
2484
+ self
2485
+ }
2486
+
2487
+ /// Encode [`Instruction::V128Bitselect`].
2488
+ pub fn v128_bitselect(&mut self) -> &mut Self {
2489
+ self.sink.push(0xFD);
2490
+ 0x52u32.encode(self.sink);
2491
+ self
2492
+ }
2493
+
2494
+ /// Encode [`Instruction::V128AnyTrue`].
2495
+ pub fn v128_any_true(&mut self) -> &mut Self {
2496
+ self.sink.push(0xFD);
2497
+ 0x53u32.encode(self.sink);
2498
+ self
2499
+ }
2500
+
2501
+ /// Encode [`Instruction::I8x16Abs`].
2502
+ pub fn i8x16_abs(&mut self) -> &mut Self {
2503
+ self.sink.push(0xFD);
2504
+ 0x60u32.encode(self.sink);
2505
+ self
2506
+ }
2507
+
2508
+ /// Encode [`Instruction::I8x16Neg`].
2509
+ pub fn i8x16_neg(&mut self) -> &mut Self {
2510
+ self.sink.push(0xFD);
2511
+ 0x61u32.encode(self.sink);
2512
+ self
2513
+ }
2514
+
2515
+ /// Encode [`Instruction::I8x16Popcnt`].
2516
+ pub fn i8x16_popcnt(&mut self) -> &mut Self {
2517
+ self.sink.push(0xFD);
2518
+ 0x62u32.encode(self.sink);
2519
+ self
2520
+ }
2521
+
2522
+ /// Encode [`Instruction::I8x16AllTrue`].
2523
+ pub fn i8x16_all_true(&mut self) -> &mut Self {
2524
+ self.sink.push(0xFD);
2525
+ 0x63u32.encode(self.sink);
2526
+ self
2527
+ }
2528
+
2529
+ /// Encode [`Instruction::I8x16Bitmask`].
2530
+ pub fn i8x16_bitmask(&mut self) -> &mut Self {
2531
+ self.sink.push(0xFD);
2532
+ 0x64u32.encode(self.sink);
2533
+ self
2534
+ }
2535
+
2536
+ /// Encode [`Instruction::I8x16NarrowI16x8S`].
2537
+ pub fn i8x16_narrow_i16x8_s(&mut self) -> &mut Self {
2538
+ self.sink.push(0xFD);
2539
+ 0x65u32.encode(self.sink);
2540
+ self
2541
+ }
2542
+
2543
+ /// Encode [`Instruction::I8x16NarrowI16x8U`].
2544
+ pub fn i8x16_narrow_i16x8_u(&mut self) -> &mut Self {
2545
+ self.sink.push(0xFD);
2546
+ 0x66u32.encode(self.sink);
2547
+ self
2548
+ }
2549
+
2550
+ /// Encode [`Instruction::I8x16Shl`].
2551
+ pub fn i8x16_shl(&mut self) -> &mut Self {
2552
+ self.sink.push(0xFD);
2553
+ 0x6bu32.encode(self.sink);
2554
+ self
2555
+ }
2556
+
2557
+ /// Encode [`Instruction::I8x16ShrS`].
2558
+ pub fn i8x16_shr_s(&mut self) -> &mut Self {
2559
+ self.sink.push(0xFD);
2560
+ 0x6cu32.encode(self.sink);
2561
+ self
2562
+ }
2563
+
2564
+ /// Encode [`Instruction::I8x16ShrU`].
2565
+ pub fn i8x16_shr_u(&mut self) -> &mut Self {
2566
+ self.sink.push(0xFD);
2567
+ 0x6du32.encode(self.sink);
2568
+ self
2569
+ }
2570
+
2571
+ /// Encode [`Instruction::I8x16Add`].
2572
+ pub fn i8x16_add(&mut self) -> &mut Self {
2573
+ self.sink.push(0xFD);
2574
+ 0x6eu32.encode(self.sink);
2575
+ self
2576
+ }
2577
+
2578
+ /// Encode [`Instruction::I8x16AddSatS`].
2579
+ pub fn i8x16_add_sat_s(&mut self) -> &mut Self {
2580
+ self.sink.push(0xFD);
2581
+ 0x6fu32.encode(self.sink);
2582
+ self
2583
+ }
2584
+
2585
+ /// Encode [`Instruction::I8x16AddSatU`].
2586
+ pub fn i8x16_add_sat_u(&mut self) -> &mut Self {
2587
+ self.sink.push(0xFD);
2588
+ 0x70u32.encode(self.sink);
2589
+ self
2590
+ }
2591
+
2592
+ /// Encode [`Instruction::I8x16Sub`].
2593
+ pub fn i8x16_sub(&mut self) -> &mut Self {
2594
+ self.sink.push(0xFD);
2595
+ 0x71u32.encode(self.sink);
2596
+ self
2597
+ }
2598
+
2599
+ /// Encode [`Instruction::I8x16SubSatS`].
2600
+ pub fn i8x16_sub_sat_s(&mut self) -> &mut Self {
2601
+ self.sink.push(0xFD);
2602
+ 0x72u32.encode(self.sink);
2603
+ self
2604
+ }
2605
+
2606
+ /// Encode [`Instruction::I8x16SubSatU`].
2607
+ pub fn i8x16_sub_sat_u(&mut self) -> &mut Self {
2608
+ self.sink.push(0xFD);
2609
+ 0x73u32.encode(self.sink);
2610
+ self
2611
+ }
2612
+
2613
+ /// Encode [`Instruction::I8x16MinS`].
2614
+ pub fn i8x16_min_s(&mut self) -> &mut Self {
2615
+ self.sink.push(0xFD);
2616
+ 0x76u32.encode(self.sink);
2617
+ self
2618
+ }
2619
+
2620
+ /// Encode [`Instruction::I8x16MinU`].
2621
+ pub fn i8x16_min_u(&mut self) -> &mut Self {
2622
+ self.sink.push(0xFD);
2623
+ 0x77u32.encode(self.sink);
2624
+ self
2625
+ }
2626
+
2627
+ /// Encode [`Instruction::I8x16MaxS`].
2628
+ pub fn i8x16_max_s(&mut self) -> &mut Self {
2629
+ self.sink.push(0xFD);
2630
+ 0x78u32.encode(self.sink);
2631
+ self
2632
+ }
2633
+
2634
+ /// Encode [`Instruction::I8x16MaxU`].
2635
+ pub fn i8x16_max_u(&mut self) -> &mut Self {
2636
+ self.sink.push(0xFD);
2637
+ 0x79u32.encode(self.sink);
2638
+ self
2639
+ }
2640
+
2641
+ /// Encode [`Instruction::I8x16AvgrU`].
2642
+ pub fn i8x16_avgr_u(&mut self) -> &mut Self {
2643
+ self.sink.push(0xFD);
2644
+ 0x7Bu32.encode(self.sink);
2645
+ self
2646
+ }
2647
+
2648
+ /// Encode [`Instruction::I16x8ExtAddPairwiseI8x16S`].
2649
+ pub fn i16x8_extadd_pairwise_i8x16_s(&mut self) -> &mut Self {
2650
+ self.sink.push(0xFD);
2651
+ 0x7Cu32.encode(self.sink);
2652
+ self
2653
+ }
2654
+
2655
+ /// Encode [`Instruction::I16x8ExtAddPairwiseI8x16U`].
2656
+ pub fn i16x8_extadd_pairwise_i8x16_u(&mut self) -> &mut Self {
2657
+ self.sink.push(0xFD);
2658
+ 0x7Du32.encode(self.sink);
2659
+ self
2660
+ }
2661
+
2662
+ /// Encode [`Instruction::I16x8Abs`].
2663
+ pub fn i16x8_abs(&mut self) -> &mut Self {
2664
+ self.sink.push(0xFD);
2665
+ 0x80u32.encode(self.sink);
2666
+ self
2667
+ }
2668
+
2669
+ /// Encode [`Instruction::I16x8Neg`].
2670
+ pub fn i16x8_neg(&mut self) -> &mut Self {
2671
+ self.sink.push(0xFD);
2672
+ 0x81u32.encode(self.sink);
2673
+ self
2674
+ }
2675
+
2676
+ /// Encode [`Instruction::I16x8Q15MulrSatS`].
2677
+ pub fn i16x8_q15mulr_sat_s(&mut self) -> &mut Self {
2678
+ self.sink.push(0xFD);
2679
+ 0x82u32.encode(self.sink);
2680
+ self
2681
+ }
2682
+
2683
+ /// Encode [`Instruction::I16x8AllTrue`].
2684
+ pub fn i16x8_all_true(&mut self) -> &mut Self {
2685
+ self.sink.push(0xFD);
2686
+ 0x83u32.encode(self.sink);
2687
+ self
2688
+ }
2689
+
2690
+ /// Encode [`Instruction::I16x8Bitmask`].
2691
+ pub fn i16x8_bitmask(&mut self) -> &mut Self {
2692
+ self.sink.push(0xFD);
2693
+ 0x84u32.encode(self.sink);
2694
+ self
2695
+ }
2696
+
2697
+ /// Encode [`Instruction::I16x8NarrowI32x4S`].
2698
+ pub fn i16x8_narrow_i32x4_s(&mut self) -> &mut Self {
2699
+ self.sink.push(0xFD);
2700
+ 0x85u32.encode(self.sink);
2701
+ self
2702
+ }
2703
+
2704
+ /// Encode [`Instruction::I16x8NarrowI32x4U`].
2705
+ pub fn i16x8_narrow_i32x4_u(&mut self) -> &mut Self {
2706
+ self.sink.push(0xFD);
2707
+ 0x86u32.encode(self.sink);
2708
+ self
2709
+ }
2710
+
2711
+ /// Encode [`Instruction::I16x8ExtendLowI8x16S`].
2712
+ pub fn i16x8_extend_low_i8x16_s(&mut self) -> &mut Self {
2713
+ self.sink.push(0xFD);
2714
+ 0x87u32.encode(self.sink);
2715
+ self
2716
+ }
2717
+
2718
+ /// Encode [`Instruction::I16x8ExtendHighI8x16S`].
2719
+ pub fn i16x8_extend_high_i8x16_s(&mut self) -> &mut Self {
2720
+ self.sink.push(0xFD);
2721
+ 0x88u32.encode(self.sink);
2722
+ self
2723
+ }
2724
+
2725
+ /// Encode [`Instruction::I16x8ExtendLowI8x16U`].
2726
+ pub fn i16x8_extend_low_i8x16_u(&mut self) -> &mut Self {
2727
+ self.sink.push(0xFD);
2728
+ 0x89u32.encode(self.sink);
2729
+ self
2730
+ }
2731
+
2732
+ /// Encode [`Instruction::I16x8ExtendHighI8x16U`].
2733
+ pub fn i16x8_extend_high_i8x16_u(&mut self) -> &mut Self {
2734
+ self.sink.push(0xFD);
2735
+ 0x8Au32.encode(self.sink);
2736
+ self
2737
+ }
2738
+
2739
+ /// Encode [`Instruction::I16x8Shl`].
2740
+ pub fn i16x8_shl(&mut self) -> &mut Self {
2741
+ self.sink.push(0xFD);
2742
+ 0x8Bu32.encode(self.sink);
2743
+ self
2744
+ }
2745
+
2746
+ /// Encode [`Instruction::I16x8ShrS`].
2747
+ pub fn i16x8_shr_s(&mut self) -> &mut Self {
2748
+ self.sink.push(0xFD);
2749
+ 0x8Cu32.encode(self.sink);
2750
+ self
2751
+ }
2752
+
2753
+ /// Encode [`Instruction::I16x8ShrU`].
2754
+ pub fn i16x8_shr_u(&mut self) -> &mut Self {
2755
+ self.sink.push(0xFD);
2756
+ 0x8Du32.encode(self.sink);
2757
+ self
2758
+ }
2759
+
2760
+ /// Encode [`Instruction::I16x8Add`].
2761
+ pub fn i16x8_add(&mut self) -> &mut Self {
2762
+ self.sink.push(0xFD);
2763
+ 0x8Eu32.encode(self.sink);
2764
+ self
2765
+ }
2766
+
2767
+ /// Encode [`Instruction::I16x8AddSatS`].
2768
+ pub fn i16x8_add_sat_s(&mut self) -> &mut Self {
2769
+ self.sink.push(0xFD);
2770
+ 0x8Fu32.encode(self.sink);
2771
+ self
2772
+ }
2773
+
2774
+ /// Encode [`Instruction::I16x8AddSatU`].
2775
+ pub fn i16x8_add_sat_u(&mut self) -> &mut Self {
2776
+ self.sink.push(0xFD);
2777
+ 0x90u32.encode(self.sink);
2778
+ self
2779
+ }
2780
+
2781
+ /// Encode [`Instruction::I16x8Sub`].
2782
+ pub fn i16x8_sub(&mut self) -> &mut Self {
2783
+ self.sink.push(0xFD);
2784
+ 0x91u32.encode(self.sink);
2785
+ self
2786
+ }
2787
+
2788
+ /// Encode [`Instruction::I16x8SubSatS`].
2789
+ pub fn i16x8_sub_sat_s(&mut self) -> &mut Self {
2790
+ self.sink.push(0xFD);
2791
+ 0x92u32.encode(self.sink);
2792
+ self
2793
+ }
2794
+
2795
+ /// Encode [`Instruction::I16x8SubSatU`].
2796
+ pub fn i16x8_sub_sat_u(&mut self) -> &mut Self {
2797
+ self.sink.push(0xFD);
2798
+ 0x93u32.encode(self.sink);
2799
+ self
2800
+ }
2801
+
2802
+ /// Encode [`Instruction::I16x8Mul`].
2803
+ pub fn i16x8_mul(&mut self) -> &mut Self {
2804
+ self.sink.push(0xFD);
2805
+ 0x95u32.encode(self.sink);
2806
+ self
2807
+ }
2808
+
2809
+ /// Encode [`Instruction::I16x8MinS`].
2810
+ pub fn i16x8_min_s(&mut self) -> &mut Self {
2811
+ self.sink.push(0xFD);
2812
+ 0x96u32.encode(self.sink);
2813
+ self
2814
+ }
2815
+
2816
+ /// Encode [`Instruction::I16x8MinU`].
2817
+ pub fn i16x8_min_u(&mut self) -> &mut Self {
2818
+ self.sink.push(0xFD);
2819
+ 0x97u32.encode(self.sink);
2820
+ self
2821
+ }
2822
+
2823
+ /// Encode [`Instruction::I16x8MaxS`].
2824
+ pub fn i16x8_max_s(&mut self) -> &mut Self {
2825
+ self.sink.push(0xFD);
2826
+ 0x98u32.encode(self.sink);
2827
+ self
2828
+ }
2829
+
2830
+ /// Encode [`Instruction::I16x8MaxU`].
2831
+ pub fn i16x8_max_u(&mut self) -> &mut Self {
2832
+ self.sink.push(0xFD);
2833
+ 0x99u32.encode(self.sink);
2834
+ self
2835
+ }
2836
+
2837
+ /// Encode [`Instruction::I16x8AvgrU`].
2838
+ pub fn i16x8_avgr_u(&mut self) -> &mut Self {
2839
+ self.sink.push(0xFD);
2840
+ 0x9Bu32.encode(self.sink);
2841
+ self
2842
+ }
2843
+
2844
+ /// Encode [`Instruction::I16x8ExtMulLowI8x16S`].
2845
+ pub fn i16x8_extmul_low_i8x16_s(&mut self) -> &mut Self {
2846
+ self.sink.push(0xFD);
2847
+ 0x9Cu32.encode(self.sink);
2848
+ self
2849
+ }
2850
+
2851
+ /// Encode [`Instruction::I16x8ExtMulHighI8x16S`].
2852
+ pub fn i16x8_extmul_high_i8x16_s(&mut self) -> &mut Self {
2853
+ self.sink.push(0xFD);
2854
+ 0x9Du32.encode(self.sink);
2855
+ self
2856
+ }
2857
+
2858
+ /// Encode [`Instruction::I16x8ExtMulLowI8x16U`].
2859
+ pub fn i16x8_extmul_low_i8x16_u(&mut self) -> &mut Self {
2860
+ self.sink.push(0xFD);
2861
+ 0x9Eu32.encode(self.sink);
2862
+ self
2863
+ }
2864
+
2865
+ /// Encode [`Instruction::I16x8ExtMulHighI8x16U`].
2866
+ pub fn i16x8_extmul_high_i8x16_u(&mut self) -> &mut Self {
2867
+ self.sink.push(0xFD);
2868
+ 0x9Fu32.encode(self.sink);
2869
+ self
2870
+ }
2871
+
2872
+ /// Encode [`Instruction::I32x4ExtAddPairwiseI16x8S`].
2873
+ pub fn i32x4_extadd_pairwise_i16x8_s(&mut self) -> &mut Self {
2874
+ self.sink.push(0xFD);
2875
+ 0x7Eu32.encode(self.sink);
2876
+ self
2877
+ }
2878
+
2879
+ /// Encode [`Instruction::I32x4ExtAddPairwiseI16x8U`].
2880
+ pub fn i32x4_extadd_pairwise_i16x8_u(&mut self) -> &mut Self {
2881
+ self.sink.push(0xFD);
2882
+ 0x7Fu32.encode(self.sink);
2883
+ self
2884
+ }
2885
+
2886
+ /// Encode [`Instruction::I32x4Abs`].
2887
+ pub fn i32x4_abs(&mut self) -> &mut Self {
2888
+ self.sink.push(0xFD);
2889
+ 0xA0u32.encode(self.sink);
2890
+ self
2891
+ }
2892
+
2893
+ /// Encode [`Instruction::I32x4Neg`].
2894
+ pub fn i32x4_neg(&mut self) -> &mut Self {
2895
+ self.sink.push(0xFD);
2896
+ 0xA1u32.encode(self.sink);
2897
+ self
2898
+ }
2899
+
2900
+ /// Encode [`Instruction::I32x4AllTrue`].
2901
+ pub fn i32x4_all_true(&mut self) -> &mut Self {
2902
+ self.sink.push(0xFD);
2903
+ 0xA3u32.encode(self.sink);
2904
+ self
2905
+ }
2906
+
2907
+ /// Encode [`Instruction::I32x4Bitmask`].
2908
+ pub fn i32x4_bitmask(&mut self) -> &mut Self {
2909
+ self.sink.push(0xFD);
2910
+ 0xA4u32.encode(self.sink);
2911
+ self
2912
+ }
2913
+
2914
+ /// Encode [`Instruction::I32x4ExtendLowI16x8S`].
2915
+ pub fn i32x4_extend_low_i16x8_s(&mut self) -> &mut Self {
2916
+ self.sink.push(0xFD);
2917
+ 0xA7u32.encode(self.sink);
2918
+ self
2919
+ }
2920
+
2921
+ /// Encode [`Instruction::I32x4ExtendHighI16x8S`].
2922
+ pub fn i32x4_extend_high_i16x8_s(&mut self) -> &mut Self {
2923
+ self.sink.push(0xFD);
2924
+ 0xA8u32.encode(self.sink);
2925
+ self
2926
+ }
2927
+
2928
+ /// Encode [`Instruction::I32x4ExtendLowI16x8U`].
2929
+ pub fn i32x4_extend_low_i16x8_u(&mut self) -> &mut Self {
2930
+ self.sink.push(0xFD);
2931
+ 0xA9u32.encode(self.sink);
2932
+ self
2933
+ }
2934
+
2935
+ /// Encode [`Instruction::I32x4ExtendHighI16x8U`].
2936
+ pub fn i32x4_extend_high_i16x8_u(&mut self) -> &mut Self {
2937
+ self.sink.push(0xFD);
2938
+ 0xAAu32.encode(self.sink);
2939
+ self
2940
+ }
2941
+
2942
+ /// Encode [`Instruction::I32x4Shl`].
2943
+ pub fn i32x4_shl(&mut self) -> &mut Self {
2944
+ self.sink.push(0xFD);
2945
+ 0xABu32.encode(self.sink);
2946
+ self
2947
+ }
2948
+
2949
+ /// Encode [`Instruction::I32x4ShrS`].
2950
+ pub fn i32x4_shr_s(&mut self) -> &mut Self {
2951
+ self.sink.push(0xFD);
2952
+ 0xACu32.encode(self.sink);
2953
+ self
2954
+ }
2955
+
2956
+ /// Encode [`Instruction::I32x4ShrU`].
2957
+ pub fn i32x4_shr_u(&mut self) -> &mut Self {
2958
+ self.sink.push(0xFD);
2959
+ 0xADu32.encode(self.sink);
2960
+ self
2961
+ }
2962
+
2963
+ /// Encode [`Instruction::I32x4Add`].
2964
+ pub fn i32x4_add(&mut self) -> &mut Self {
2965
+ self.sink.push(0xFD);
2966
+ 0xAEu32.encode(self.sink);
2967
+ self
2968
+ }
2969
+
2970
+ /// Encode [`Instruction::I32x4Sub`].
2971
+ pub fn i32x4_sub(&mut self) -> &mut Self {
2972
+ self.sink.push(0xFD);
2973
+ 0xB1u32.encode(self.sink);
2974
+ self
2975
+ }
2976
+
2977
+ /// Encode [`Instruction::I32x4Mul`].
2978
+ pub fn i32x4_mul(&mut self) -> &mut Self {
2979
+ self.sink.push(0xFD);
2980
+ 0xB5u32.encode(self.sink);
2981
+ self
2982
+ }
2983
+
2984
+ /// Encode [`Instruction::I32x4MinS`].
2985
+ pub fn i32x4_min_s(&mut self) -> &mut Self {
2986
+ self.sink.push(0xFD);
2987
+ 0xB6u32.encode(self.sink);
2988
+ self
2989
+ }
2990
+
2991
+ /// Encode [`Instruction::I32x4MinU`].
2992
+ pub fn i32x4_min_u(&mut self) -> &mut Self {
2993
+ self.sink.push(0xFD);
2994
+ 0xB7u32.encode(self.sink);
2995
+ self
2996
+ }
2997
+
2998
+ /// Encode [`Instruction::I32x4MaxS`].
2999
+ pub fn i32x4_max_s(&mut self) -> &mut Self {
3000
+ self.sink.push(0xFD);
3001
+ 0xB8u32.encode(self.sink);
3002
+ self
3003
+ }
3004
+
3005
+ /// Encode [`Instruction::I32x4MaxU`].
3006
+ pub fn i32x4_max_u(&mut self) -> &mut Self {
3007
+ self.sink.push(0xFD);
3008
+ 0xB9u32.encode(self.sink);
3009
+ self
3010
+ }
3011
+
3012
+ /// Encode [`Instruction::I32x4DotI16x8S`].
3013
+ pub fn i32x4_dot_i16x8_s(&mut self) -> &mut Self {
3014
+ self.sink.push(0xFD);
3015
+ 0xBAu32.encode(self.sink);
3016
+ self
3017
+ }
3018
+
3019
+ /// Encode [`Instruction::I32x4ExtMulLowI16x8S`].
3020
+ pub fn i32x4_extmul_low_i16x8_s(&mut self) -> &mut Self {
3021
+ self.sink.push(0xFD);
3022
+ 0xBCu32.encode(self.sink);
3023
+ self
3024
+ }
3025
+
3026
+ /// Encode [`Instruction::I32x4ExtMulHighI16x8S`].
3027
+ pub fn i32x4_extmul_high_i16x8_s(&mut self) -> &mut Self {
3028
+ self.sink.push(0xFD);
3029
+ 0xBDu32.encode(self.sink);
3030
+ self
3031
+ }
3032
+
3033
+ /// Encode [`Instruction::I32x4ExtMulLowI16x8U`].
3034
+ pub fn i32x4_extmul_low_i16x8_u(&mut self) -> &mut Self {
3035
+ self.sink.push(0xFD);
3036
+ 0xBEu32.encode(self.sink);
3037
+ self
3038
+ }
3039
+
3040
+ /// Encode [`Instruction::I32x4ExtMulHighI16x8U`].
3041
+ pub fn i32x4_extmul_high_i16x8_u(&mut self) -> &mut Self {
3042
+ self.sink.push(0xFD);
3043
+ 0xBFu32.encode(self.sink);
3044
+ self
3045
+ }
3046
+
3047
+ /// Encode [`Instruction::I64x2Abs`].
3048
+ pub fn i64x2_abs(&mut self) -> &mut Self {
3049
+ self.sink.push(0xFD);
3050
+ 0xC0u32.encode(self.sink);
3051
+ self
3052
+ }
3053
+
3054
+ /// Encode [`Instruction::I64x2Neg`].
3055
+ pub fn i64x2_neg(&mut self) -> &mut Self {
3056
+ self.sink.push(0xFD);
3057
+ 0xC1u32.encode(self.sink);
3058
+ self
3059
+ }
3060
+
3061
+ /// Encode [`Instruction::I64x2AllTrue`].
3062
+ pub fn i64x2_all_true(&mut self) -> &mut Self {
3063
+ self.sink.push(0xFD);
3064
+ 0xC3u32.encode(self.sink);
3065
+ self
3066
+ }
3067
+
3068
+ /// Encode [`Instruction::I64x2Bitmask`].
3069
+ pub fn i64x2_bitmask(&mut self) -> &mut Self {
3070
+ self.sink.push(0xFD);
3071
+ 0xC4u32.encode(self.sink);
3072
+ self
3073
+ }
3074
+
3075
+ /// Encode [`Instruction::I64x2ExtendLowI32x4S`].
3076
+ pub fn i64x2_extend_low_i32x4_s(&mut self) -> &mut Self {
3077
+ self.sink.push(0xFD);
3078
+ 0xC7u32.encode(self.sink);
3079
+ self
3080
+ }
3081
+
3082
+ /// Encode [`Instruction::I64x2ExtendHighI32x4S`].
3083
+ pub fn i64x2_extend_high_i32x4_s(&mut self) -> &mut Self {
3084
+ self.sink.push(0xFD);
3085
+ 0xC8u32.encode(self.sink);
3086
+ self
3087
+ }
3088
+
3089
+ /// Encode [`Instruction::I64x2ExtendLowI32x4U`].
3090
+ pub fn i64x2_extend_low_i32x4_u(&mut self) -> &mut Self {
3091
+ self.sink.push(0xFD);
3092
+ 0xC9u32.encode(self.sink);
3093
+ self
3094
+ }
3095
+
3096
+ /// Encode [`Instruction::I64x2ExtendHighI32x4U`].
3097
+ pub fn i64x2_extend_high_i32x4_u(&mut self) -> &mut Self {
3098
+ self.sink.push(0xFD);
3099
+ 0xCAu32.encode(self.sink);
3100
+ self
3101
+ }
3102
+
3103
+ /// Encode [`Instruction::I64x2Shl`].
3104
+ pub fn i64x2_shl(&mut self) -> &mut Self {
3105
+ self.sink.push(0xFD);
3106
+ 0xCBu32.encode(self.sink);
3107
+ self
3108
+ }
3109
+
3110
+ /// Encode [`Instruction::I64x2ShrS`].
3111
+ pub fn i64x2_shr_s(&mut self) -> &mut Self {
3112
+ self.sink.push(0xFD);
3113
+ 0xCCu32.encode(self.sink);
3114
+ self
3115
+ }
3116
+
3117
+ /// Encode [`Instruction::I64x2ShrU`].
3118
+ pub fn i64x2_shr_u(&mut self) -> &mut Self {
3119
+ self.sink.push(0xFD);
3120
+ 0xCDu32.encode(self.sink);
3121
+ self
3122
+ }
3123
+
3124
+ /// Encode [`Instruction::I64x2Add`].
3125
+ pub fn i64x2_add(&mut self) -> &mut Self {
3126
+ self.sink.push(0xFD);
3127
+ 0xCEu32.encode(self.sink);
3128
+ self
3129
+ }
3130
+
3131
+ /// Encode [`Instruction::I64x2Sub`].
3132
+ pub fn i64x2_sub(&mut self) -> &mut Self {
3133
+ self.sink.push(0xFD);
3134
+ 0xD1u32.encode(self.sink);
3135
+ self
3136
+ }
3137
+
3138
+ /// Encode [`Instruction::I64x2Mul`].
3139
+ pub fn i64x2_mul(&mut self) -> &mut Self {
3140
+ self.sink.push(0xFD);
3141
+ 0xD5u32.encode(self.sink);
3142
+ self
3143
+ }
3144
+
3145
+ /// Encode [`Instruction::I64x2ExtMulLowI32x4S`].
3146
+ pub fn i64x2_extmul_low_i32x4_s(&mut self) -> &mut Self {
3147
+ self.sink.push(0xFD);
3148
+ 0xDCu32.encode(self.sink);
3149
+ self
3150
+ }
3151
+
3152
+ /// Encode [`Instruction::I64x2ExtMulHighI32x4S`].
3153
+ pub fn i64x2_extmul_high_i32x4_s(&mut self) -> &mut Self {
3154
+ self.sink.push(0xFD);
3155
+ 0xDDu32.encode(self.sink);
3156
+ self
3157
+ }
3158
+
3159
+ /// Encode [`Instruction::I64x2ExtMulLowI32x4U`].
3160
+ pub fn i64x2_extmul_low_i32x4_u(&mut self) -> &mut Self {
3161
+ self.sink.push(0xFD);
3162
+ 0xDEu32.encode(self.sink);
3163
+ self
3164
+ }
3165
+
3166
+ /// Encode [`Instruction::I64x2ExtMulHighI32x4U`].
3167
+ pub fn i64x2_extmul_high_i32x4_u(&mut self) -> &mut Self {
3168
+ self.sink.push(0xFD);
3169
+ 0xDFu32.encode(self.sink);
3170
+ self
3171
+ }
3172
+
3173
+ /// Encode [`Instruction::F32x4Ceil`].
3174
+ pub fn f32x4_ceil(&mut self) -> &mut Self {
3175
+ self.sink.push(0xFD);
3176
+ 0x67u32.encode(self.sink);
3177
+ self
3178
+ }
3179
+
3180
+ /// Encode [`Instruction::F32x4Floor`].
3181
+ pub fn f32x4_floor(&mut self) -> &mut Self {
3182
+ self.sink.push(0xFD);
3183
+ 0x68u32.encode(self.sink);
3184
+ self
3185
+ }
3186
+
3187
+ /// Encode [`Instruction::F32x4Trunc`].
3188
+ pub fn f32x4_trunc(&mut self) -> &mut Self {
3189
+ self.sink.push(0xFD);
3190
+ 0x69u32.encode(self.sink);
3191
+ self
3192
+ }
3193
+
3194
+ /// Encode [`Instruction::F32x4Nearest`].
3195
+ pub fn f32x4_nearest(&mut self) -> &mut Self {
3196
+ self.sink.push(0xFD);
3197
+ 0x6Au32.encode(self.sink);
3198
+ self
3199
+ }
3200
+
3201
+ /// Encode [`Instruction::F32x4Abs`].
3202
+ pub fn f32x4_abs(&mut self) -> &mut Self {
3203
+ self.sink.push(0xFD);
3204
+ 0xE0u32.encode(self.sink);
3205
+ self
3206
+ }
3207
+
3208
+ /// Encode [`Instruction::F32x4Neg`].
3209
+ pub fn f32x4_neg(&mut self) -> &mut Self {
3210
+ self.sink.push(0xFD);
3211
+ 0xE1u32.encode(self.sink);
3212
+ self
3213
+ }
3214
+
3215
+ /// Encode [`Instruction::F32x4Sqrt`].
3216
+ pub fn f32x4_sqrt(&mut self) -> &mut Self {
3217
+ self.sink.push(0xFD);
3218
+ 0xE3u32.encode(self.sink);
3219
+ self
3220
+ }
3221
+
3222
+ /// Encode [`Instruction::F32x4Add`].
3223
+ pub fn f32x4_add(&mut self) -> &mut Self {
3224
+ self.sink.push(0xFD);
3225
+ 0xE4u32.encode(self.sink);
3226
+ self
3227
+ }
3228
+
3229
+ /// Encode [`Instruction::F32x4Sub`].
3230
+ pub fn f32x4_sub(&mut self) -> &mut Self {
3231
+ self.sink.push(0xFD);
3232
+ 0xE5u32.encode(self.sink);
3233
+ self
3234
+ }
3235
+
3236
+ /// Encode [`Instruction::F32x4Mul`].
3237
+ pub fn f32x4_mul(&mut self) -> &mut Self {
3238
+ self.sink.push(0xFD);
3239
+ 0xE6u32.encode(self.sink);
3240
+ self
3241
+ }
3242
+
3243
+ /// Encode [`Instruction::F32x4Div`].
3244
+ pub fn f32x4_div(&mut self) -> &mut Self {
3245
+ self.sink.push(0xFD);
3246
+ 0xE7u32.encode(self.sink);
3247
+ self
3248
+ }
3249
+
3250
+ /// Encode [`Instruction::F32x4Min`].
3251
+ pub fn f32x4_min(&mut self) -> &mut Self {
3252
+ self.sink.push(0xFD);
3253
+ 0xE8u32.encode(self.sink);
3254
+ self
3255
+ }
3256
+
3257
+ /// Encode [`Instruction::F32x4Max`].
3258
+ pub fn f32x4_max(&mut self) -> &mut Self {
3259
+ self.sink.push(0xFD);
3260
+ 0xE9u32.encode(self.sink);
3261
+ self
3262
+ }
3263
+
3264
+ /// Encode [`Instruction::F32x4PMin`].
3265
+ pub fn f32x4_pmin(&mut self) -> &mut Self {
3266
+ self.sink.push(0xFD);
3267
+ 0xEAu32.encode(self.sink);
3268
+ self
3269
+ }
3270
+
3271
+ /// Encode [`Instruction::F32x4PMax`].
3272
+ pub fn f32x4_pmax(&mut self) -> &mut Self {
3273
+ self.sink.push(0xFD);
3274
+ 0xEBu32.encode(self.sink);
3275
+ self
3276
+ }
3277
+
3278
+ /// Encode [`Instruction::F64x2Ceil`].
3279
+ pub fn f64x2_ceil(&mut self) -> &mut Self {
3280
+ self.sink.push(0xFD);
3281
+ 0x74u32.encode(self.sink);
3282
+ self
3283
+ }
3284
+
3285
+ /// Encode [`Instruction::F64x2Floor`].
3286
+ pub fn f64x2_floor(&mut self) -> &mut Self {
3287
+ self.sink.push(0xFD);
3288
+ 0x75u32.encode(self.sink);
3289
+ self
3290
+ }
3291
+
3292
+ /// Encode [`Instruction::F64x2Trunc`].
3293
+ pub fn f64x2_trunc(&mut self) -> &mut Self {
3294
+ self.sink.push(0xFD);
3295
+ 0x7Au32.encode(self.sink);
3296
+ self
3297
+ }
3298
+
3299
+ /// Encode [`Instruction::F64x2Nearest`].
3300
+ pub fn f64x2_nearest(&mut self) -> &mut Self {
3301
+ self.sink.push(0xFD);
3302
+ 0x94u32.encode(self.sink);
3303
+ self
3304
+ }
3305
+
3306
+ /// Encode [`Instruction::F64x2Abs`].
3307
+ pub fn f64x2_abs(&mut self) -> &mut Self {
3308
+ self.sink.push(0xFD);
3309
+ 0xECu32.encode(self.sink);
3310
+ self
3311
+ }
3312
+
3313
+ /// Encode [`Instruction::F64x2Neg`].
3314
+ pub fn f64x2_neg(&mut self) -> &mut Self {
3315
+ self.sink.push(0xFD);
3316
+ 0xEDu32.encode(self.sink);
3317
+ self
3318
+ }
3319
+
3320
+ /// Encode [`Instruction::F64x2Sqrt`].
3321
+ pub fn f64x2_sqrt(&mut self) -> &mut Self {
3322
+ self.sink.push(0xFD);
3323
+ 0xEFu32.encode(self.sink);
3324
+ self
3325
+ }
3326
+
3327
+ /// Encode [`Instruction::F64x2Add`].
3328
+ pub fn f64x2_add(&mut self) -> &mut Self {
3329
+ self.sink.push(0xFD);
3330
+ 0xF0u32.encode(self.sink);
3331
+ self
3332
+ }
3333
+
3334
+ /// Encode [`Instruction::F64x2Sub`].
3335
+ pub fn f64x2_sub(&mut self) -> &mut Self {
3336
+ self.sink.push(0xFD);
3337
+ 0xF1u32.encode(self.sink);
3338
+ self
3339
+ }
3340
+
3341
+ /// Encode [`Instruction::F64x2Mul`].
3342
+ pub fn f64x2_mul(&mut self) -> &mut Self {
3343
+ self.sink.push(0xFD);
3344
+ 0xF2u32.encode(self.sink);
3345
+ self
3346
+ }
3347
+
3348
+ /// Encode [`Instruction::F64x2Div`].
3349
+ pub fn f64x2_div(&mut self) -> &mut Self {
3350
+ self.sink.push(0xFD);
3351
+ 0xF3u32.encode(self.sink);
3352
+ self
3353
+ }
3354
+
3355
+ /// Encode [`Instruction::F64x2Min`].
3356
+ pub fn f64x2_min(&mut self) -> &mut Self {
3357
+ self.sink.push(0xFD);
3358
+ 0xF4u32.encode(self.sink);
3359
+ self
3360
+ }
3361
+
3362
+ /// Encode [`Instruction::F64x2Max`].
3363
+ pub fn f64x2_max(&mut self) -> &mut Self {
3364
+ self.sink.push(0xFD);
3365
+ 0xF5u32.encode(self.sink);
3366
+ self
3367
+ }
3368
+
3369
+ /// Encode [`Instruction::F64x2PMin`].
3370
+ pub fn f64x2_pmin(&mut self) -> &mut Self {
3371
+ self.sink.push(0xFD);
3372
+ 0xF6u32.encode(self.sink);
3373
+ self
3374
+ }
3375
+
3376
+ /// Encode [`Instruction::F64x2PMax`].
3377
+ pub fn f64x2_pmax(&mut self) -> &mut Self {
3378
+ self.sink.push(0xFD);
3379
+ 0xF7u32.encode(self.sink);
3380
+ self
3381
+ }
3382
+
3383
+ /// Encode [`Instruction::I32x4TruncSatF32x4S`].
3384
+ pub fn i32x4_trunc_sat_f32x4_s(&mut self) -> &mut Self {
3385
+ self.sink.push(0xFD);
3386
+ 0xF8u32.encode(self.sink);
3387
+ self
3388
+ }
3389
+
3390
+ /// Encode [`Instruction::I32x4TruncSatF32x4U`].
3391
+ pub fn i32x4_trunc_sat_f32x4_u(&mut self) -> &mut Self {
3392
+ self.sink.push(0xFD);
3393
+ 0xF9u32.encode(self.sink);
3394
+ self
3395
+ }
3396
+
3397
+ /// Encode [`Instruction::F32x4ConvertI32x4S`].
3398
+ pub fn f32x4_convert_i32x4_s(&mut self) -> &mut Self {
3399
+ self.sink.push(0xFD);
3400
+ 0xFAu32.encode(self.sink);
3401
+ self
3402
+ }
3403
+
3404
+ /// Encode [`Instruction::F32x4ConvertI32x4U`].
3405
+ pub fn f32x4_convert_i32x4_u(&mut self) -> &mut Self {
3406
+ self.sink.push(0xFD);
3407
+ 0xFBu32.encode(self.sink);
3408
+ self
3409
+ }
3410
+
3411
+ /// Encode [`Instruction::I32x4TruncSatF64x2SZero`].
3412
+ pub fn i32x4_trunc_sat_f64x2_s_zero(&mut self) -> &mut Self {
3413
+ self.sink.push(0xFD);
3414
+ 0xFCu32.encode(self.sink);
3415
+ self
3416
+ }
3417
+
3418
+ /// Encode [`Instruction::I32x4TruncSatF64x2UZero`].
3419
+ pub fn i32x4_trunc_sat_f64x2_u_zero(&mut self) -> &mut Self {
3420
+ self.sink.push(0xFD);
3421
+ 0xFDu32.encode(self.sink);
3422
+ self
3423
+ }
3424
+
3425
+ /// Encode [`Instruction::F64x2ConvertLowI32x4S`].
3426
+ pub fn f64x2_convert_low_i32x4_s(&mut self) -> &mut Self {
3427
+ self.sink.push(0xFD);
3428
+ 0xFEu32.encode(self.sink);
3429
+ self
3430
+ }
3431
+
3432
+ /// Encode [`Instruction::F64x2ConvertLowI32x4U`].
3433
+ pub fn f64x2_convert_low_i32x4_u(&mut self) -> &mut Self {
3434
+ self.sink.push(0xFD);
3435
+ 0xFFu32.encode(self.sink);
3436
+ self
3437
+ }
3438
+
3439
+ /// Encode [`Instruction::F32x4DemoteF64x2Zero`].
3440
+ pub fn f32x4_demote_f64x2_zero(&mut self) -> &mut Self {
3441
+ self.sink.push(0xFD);
3442
+ 0x5Eu32.encode(self.sink);
3443
+ self
3444
+ }
3445
+
3446
+ /// Encode [`Instruction::F64x2PromoteLowF32x4`].
3447
+ pub fn f64x2_promote_low_f32x4(&mut self) -> &mut Self {
3448
+ self.sink.push(0xFD);
3449
+ 0x5Fu32.encode(self.sink);
3450
+ self
3451
+ }
3452
+
3453
+ // Relaxed simd proposal
3454
+
3455
+ /// Encode [`Instruction::I8x16RelaxedSwizzle`].
3456
+ pub fn i8x16_relaxed_swizzle(&mut self) -> &mut Self {
3457
+ self.sink.push(0xFD);
3458
+ 0x100u32.encode(self.sink);
3459
+ self
3460
+ }
3461
+
3462
+ /// Encode [`Instruction::I32x4RelaxedTruncF32x4S`].
3463
+ pub fn i32x4_relaxed_trunc_f32x4_s(&mut self) -> &mut Self {
3464
+ self.sink.push(0xFD);
3465
+ 0x101u32.encode(self.sink);
3466
+ self
3467
+ }
3468
+
3469
+ /// Encode [`Instruction::I32x4RelaxedTruncF32x4U`].
3470
+ pub fn i32x4_relaxed_trunc_f32x4_u(&mut self) -> &mut Self {
3471
+ self.sink.push(0xFD);
3472
+ 0x102u32.encode(self.sink);
3473
+ self
3474
+ }
3475
+
3476
+ /// Encode [`Instruction::I32x4RelaxedTruncF64x2SZero`].
3477
+ pub fn i32x4_relaxed_trunc_f64x2_s_zero(&mut self) -> &mut Self {
3478
+ self.sink.push(0xFD);
3479
+ 0x103u32.encode(self.sink);
3480
+ self
3481
+ }
3482
+
3483
+ /// Encode [`Instruction::I32x4RelaxedTruncF64x2UZero`].
3484
+ pub fn i32x4_relaxed_trunc_f64x2_u_zero(&mut self) -> &mut Self {
3485
+ self.sink.push(0xFD);
3486
+ 0x104u32.encode(self.sink);
3487
+ self
3488
+ }
3489
+
3490
+ /// Encode [`Instruction::F32x4RelaxedMadd`].
3491
+ pub fn f32x4_relaxed_madd(&mut self) -> &mut Self {
3492
+ self.sink.push(0xFD);
3493
+ 0x105u32.encode(self.sink);
3494
+ self
3495
+ }
3496
+
3497
+ /// Encode [`Instruction::F32x4RelaxedNmadd`].
3498
+ pub fn f32x4_relaxed_nmadd(&mut self) -> &mut Self {
3499
+ self.sink.push(0xFD);
3500
+ 0x106u32.encode(self.sink);
3501
+ self
3502
+ }
3503
+
3504
+ /// Encode [`Instruction::F64x2RelaxedMadd`].
3505
+ pub fn f64x2_relaxed_madd(&mut self) -> &mut Self {
3506
+ self.sink.push(0xFD);
3507
+ 0x107u32.encode(self.sink);
3508
+ self
3509
+ }
3510
+
3511
+ /// Encode [`Instruction::F64x2RelaxedNmadd`].
3512
+ pub fn f64x2_relaxed_nmadd(&mut self) -> &mut Self {
3513
+ self.sink.push(0xFD);
3514
+ 0x108u32.encode(self.sink);
3515
+ self
3516
+ }
3517
+
3518
+ /// Encode [`Instruction::I8x16RelaxedLaneselect`].
3519
+ pub fn i8x16_relaxed_laneselect(&mut self) -> &mut Self {
3520
+ self.sink.push(0xFD);
3521
+ 0x109u32.encode(self.sink);
3522
+ self
3523
+ }
3524
+
3525
+ /// Encode [`Instruction::I16x8RelaxedLaneselect`].
3526
+ pub fn i16x8_relaxed_laneselect(&mut self) -> &mut Self {
3527
+ self.sink.push(0xFD);
3528
+ 0x10Au32.encode(self.sink);
3529
+ self
3530
+ }
3531
+
3532
+ /// Encode [`Instruction::I32x4RelaxedLaneselect`].
3533
+ pub fn i32x4_relaxed_laneselect(&mut self) -> &mut Self {
3534
+ self.sink.push(0xFD);
3535
+ 0x10Bu32.encode(self.sink);
3536
+ self
3537
+ }
3538
+
3539
+ /// Encode [`Instruction::I64x2RelaxedLaneselect`].
3540
+ pub fn i64x2_relaxed_laneselect(&mut self) -> &mut Self {
3541
+ self.sink.push(0xFD);
3542
+ 0x10Cu32.encode(self.sink);
3543
+ self
3544
+ }
3545
+
3546
+ /// Encode [`Instruction::F32x4RelaxedMin`].
3547
+ pub fn f32x4_relaxed_min(&mut self) -> &mut Self {
3548
+ self.sink.push(0xFD);
3549
+ 0x10Du32.encode(self.sink);
3550
+ self
3551
+ }
3552
+
3553
+ /// Encode [`Instruction::F32x4RelaxedMax`].
3554
+ pub fn f32x4_relaxed_max(&mut self) -> &mut Self {
3555
+ self.sink.push(0xFD);
3556
+ 0x10Eu32.encode(self.sink);
3557
+ self
3558
+ }
3559
+
3560
+ /// Encode [`Instruction::F64x2RelaxedMin`].
3561
+ pub fn f64x2_relaxed_min(&mut self) -> &mut Self {
3562
+ self.sink.push(0xFD);
3563
+ 0x10Fu32.encode(self.sink);
3564
+ self
3565
+ }
3566
+
3567
+ /// Encode [`Instruction::F64x2RelaxedMax`].
3568
+ pub fn f64x2_relaxed_max(&mut self) -> &mut Self {
3569
+ self.sink.push(0xFD);
3570
+ 0x110u32.encode(self.sink);
3571
+ self
3572
+ }
3573
+
3574
+ /// Encode [`Instruction::I16x8RelaxedQ15mulrS`].
3575
+ pub fn i16x8_relaxed_q15mulr_s(&mut self) -> &mut Self {
3576
+ self.sink.push(0xFD);
3577
+ 0x111u32.encode(self.sink);
3578
+ self
3579
+ }
3580
+
3581
+ /// Encode [`Instruction::I16x8RelaxedDotI8x16I7x16S`].
3582
+ pub fn i16x8_relaxed_dot_i8x16_i7x16_s(&mut self) -> &mut Self {
3583
+ self.sink.push(0xFD);
3584
+ 0x112u32.encode(self.sink);
3585
+ self
3586
+ }
3587
+
3588
+ /// Encode [`Instruction::I32x4RelaxedDotI8x16I7x16AddS`].
3589
+ pub fn i32x4_relaxed_dot_i8x16_i7x16_add_s(&mut self) -> &mut Self {
3590
+ self.sink.push(0xFD);
3591
+ 0x113u32.encode(self.sink);
3592
+ self
3593
+ }
3594
+
3595
+ // Atomic instructions (the threads proposal)
3596
+
3597
+ /// Encode [`Instruction::MemoryAtomicNotify`].
3598
+ pub fn memory_atomic_notify(&mut self, memarg: MemArg) -> &mut Self {
3599
+ self.sink.push(0xFE);
3600
+ self.sink.push(0x00);
3601
+ memarg.encode(self.sink);
3602
+ self
3603
+ }
3604
+
3605
+ /// Encode [`Instruction::MemoryAtomicWait32`].
3606
+ pub fn memory_atomic_wait32(&mut self, memarg: MemArg) -> &mut Self {
3607
+ self.sink.push(0xFE);
3608
+ self.sink.push(0x01);
3609
+ memarg.encode(self.sink);
3610
+ self
3611
+ }
3612
+
3613
+ /// Encode [`Instruction::MemoryAtomicWait64`].
3614
+ pub fn memory_atomic_wait64(&mut self, memarg: MemArg) -> &mut Self {
3615
+ self.sink.push(0xFE);
3616
+ self.sink.push(0x02);
3617
+ memarg.encode(self.sink);
3618
+ self
3619
+ }
3620
+
3621
+ /// Encode [`Instruction::AtomicFence`].
3622
+ pub fn atomic_fence(&mut self) -> &mut Self {
3623
+ self.sink.push(0xFE);
3624
+ self.sink.push(0x03);
3625
+ self.sink.push(0x00);
3626
+ self
3627
+ }
3628
+
3629
+ /// Encode [`Instruction::I32AtomicLoad`].
3630
+ pub fn i32_atomic_load(&mut self, memarg: MemArg) -> &mut Self {
3631
+ self.sink.push(0xFE);
3632
+ self.sink.push(0x10);
3633
+ memarg.encode(self.sink);
3634
+ self
3635
+ }
3636
+
3637
+ /// Encode [`Instruction::I64AtomicLoad`].
3638
+ pub fn i64_atomic_load(&mut self, memarg: MemArg) -> &mut Self {
3639
+ self.sink.push(0xFE);
3640
+ self.sink.push(0x11);
3641
+ memarg.encode(self.sink);
3642
+ self
3643
+ }
3644
+
3645
+ /// Encode [`Instruction::I32AtomicLoad8U`].
3646
+ pub fn i32_atomic_load8_u(&mut self, memarg: MemArg) -> &mut Self {
3647
+ self.sink.push(0xFE);
3648
+ self.sink.push(0x12);
3649
+ memarg.encode(self.sink);
3650
+ self
3651
+ }
3652
+
3653
+ /// Encode [`Instruction::I32AtomicLoad16U`].
3654
+ pub fn i32_atomic_load16_u(&mut self, memarg: MemArg) -> &mut Self {
3655
+ self.sink.push(0xFE);
3656
+ self.sink.push(0x13);
3657
+ memarg.encode(self.sink);
3658
+ self
3659
+ }
3660
+
3661
+ /// Encode [`Instruction::I64AtomicLoad8U`].
3662
+ pub fn i64_atomic_load8_u(&mut self, memarg: MemArg) -> &mut Self {
3663
+ self.sink.push(0xFE);
3664
+ self.sink.push(0x14);
3665
+ memarg.encode(self.sink);
3666
+ self
3667
+ }
3668
+
3669
+ /// Encode [`Instruction::I64AtomicLoad16U`].
3670
+ pub fn i64_atomic_load16_u(&mut self, memarg: MemArg) -> &mut Self {
3671
+ self.sink.push(0xFE);
3672
+ self.sink.push(0x15);
3673
+ memarg.encode(self.sink);
3674
+ self
3675
+ }
3676
+
3677
+ /// Encode [`Instruction::I64AtomicLoad32U`].
3678
+ pub fn i64_atomic_load32_u(&mut self, memarg: MemArg) -> &mut Self {
3679
+ self.sink.push(0xFE);
3680
+ self.sink.push(0x16);
3681
+ memarg.encode(self.sink);
3682
+ self
3683
+ }
3684
+
3685
+ /// Encode [`Instruction::I32AtomicStore`].
3686
+ pub fn i32_atomic_store(&mut self, memarg: MemArg) -> &mut Self {
3687
+ self.sink.push(0xFE);
3688
+ self.sink.push(0x17);
3689
+ memarg.encode(self.sink);
3690
+ self
3691
+ }
3692
+
3693
+ /// Encode [`Instruction::I64AtomicStore`].
3694
+ pub fn i64_atomic_store(&mut self, memarg: MemArg) -> &mut Self {
3695
+ self.sink.push(0xFE);
3696
+ self.sink.push(0x18);
3697
+ memarg.encode(self.sink);
3698
+ self
3699
+ }
3700
+
3701
+ /// Encode [`Instruction::I32AtomicStore8`].
3702
+ pub fn i32_atomic_store8(&mut self, memarg: MemArg) -> &mut Self {
3703
+ self.sink.push(0xFE);
3704
+ self.sink.push(0x19);
3705
+ memarg.encode(self.sink);
3706
+ self
3707
+ }
3708
+
3709
+ /// Encode [`Instruction::I32AtomicStore16`].
3710
+ pub fn i32_atomic_store16(&mut self, memarg: MemArg) -> &mut Self {
3711
+ self.sink.push(0xFE);
3712
+ self.sink.push(0x1A);
3713
+ memarg.encode(self.sink);
3714
+ self
3715
+ }
3716
+
3717
+ /// Encode [`Instruction::I64AtomicStore8`].
3718
+ pub fn i64_atomic_store8(&mut self, memarg: MemArg) -> &mut Self {
3719
+ self.sink.push(0xFE);
3720
+ self.sink.push(0x1B);
3721
+ memarg.encode(self.sink);
3722
+ self
3723
+ }
3724
+
3725
+ /// Encode [`Instruction::I64AtomicStore16`].
3726
+ pub fn i64_atomic_store16(&mut self, memarg: MemArg) -> &mut Self {
3727
+ self.sink.push(0xFE);
3728
+ self.sink.push(0x1C);
3729
+ memarg.encode(self.sink);
3730
+ self
3731
+ }
3732
+
3733
+ /// Encode [`Instruction::I64AtomicStore32`].
3734
+ pub fn i64_atomic_store32(&mut self, memarg: MemArg) -> &mut Self {
3735
+ self.sink.push(0xFE);
3736
+ self.sink.push(0x1D);
3737
+ memarg.encode(self.sink);
3738
+ self
3739
+ }
3740
+
3741
+ /// Encode [`Instruction::I32AtomicRmwAdd`].
3742
+ pub fn i32_atomic_rmw_add(&mut self, memarg: MemArg) -> &mut Self {
3743
+ self.sink.push(0xFE);
3744
+ self.sink.push(0x1E);
3745
+ memarg.encode(self.sink);
3746
+ self
3747
+ }
3748
+
3749
+ /// Encode [`Instruction::I64AtomicRmwAdd`].
3750
+ pub fn i64_atomic_rmw_add(&mut self, memarg: MemArg) -> &mut Self {
3751
+ self.sink.push(0xFE);
3752
+ self.sink.push(0x1F);
3753
+ memarg.encode(self.sink);
3754
+ self
3755
+ }
3756
+
3757
+ /// Encode [`Instruction::I32AtomicRmw8AddU`].
3758
+ pub fn i32_atomic_rmw8_add_u(&mut self, memarg: MemArg) -> &mut Self {
3759
+ self.sink.push(0xFE);
3760
+ self.sink.push(0x20);
3761
+ memarg.encode(self.sink);
3762
+ self
3763
+ }
3764
+
3765
+ /// Encode [`Instruction::I32AtomicRmw16AddU`].
3766
+ pub fn i32_atomic_rmw16_add_u(&mut self, memarg: MemArg) -> &mut Self {
3767
+ self.sink.push(0xFE);
3768
+ self.sink.push(0x21);
3769
+ memarg.encode(self.sink);
3770
+ self
3771
+ }
3772
+
3773
+ /// Encode [`Instruction::I64AtomicRmw8AddU`].
3774
+ pub fn i64_atomic_rmw8_add_u(&mut self, memarg: MemArg) -> &mut Self {
3775
+ self.sink.push(0xFE);
3776
+ self.sink.push(0x22);
3777
+ memarg.encode(self.sink);
3778
+ self
3779
+ }
3780
+
3781
+ /// Encode [`Instruction::I64AtomicRmw16AddU`].
3782
+ pub fn i64_atomic_rmw16_add_u(&mut self, memarg: MemArg) -> &mut Self {
3783
+ self.sink.push(0xFE);
3784
+ self.sink.push(0x23);
3785
+ memarg.encode(self.sink);
3786
+ self
3787
+ }
3788
+
3789
+ /// Encode [`Instruction::I64AtomicRmw32AddU`].
3790
+ pub fn i64_atomic_rmw32_add_u(&mut self, memarg: MemArg) -> &mut Self {
3791
+ self.sink.push(0xFE);
3792
+ self.sink.push(0x24);
3793
+ memarg.encode(self.sink);
3794
+ self
3795
+ }
3796
+
3797
+ /// Encode [`Instruction::I32AtomicRmwSub`].
3798
+ pub fn i32_atomic_rmw_sub(&mut self, memarg: MemArg) -> &mut Self {
3799
+ self.sink.push(0xFE);
3800
+ self.sink.push(0x25);
3801
+ memarg.encode(self.sink);
3802
+ self
3803
+ }
3804
+
3805
+ /// Encode [`Instruction::I64AtomicRmwSub`].
3806
+ pub fn i64_atomic_rmw_sub(&mut self, memarg: MemArg) -> &mut Self {
3807
+ self.sink.push(0xFE);
3808
+ self.sink.push(0x26);
3809
+ memarg.encode(self.sink);
3810
+ self
3811
+ }
3812
+
3813
+ /// Encode [`Instruction::I32AtomicRmw8SubU`].
3814
+ pub fn i32_atomic_rmw8_sub_u(&mut self, memarg: MemArg) -> &mut Self {
3815
+ self.sink.push(0xFE);
3816
+ self.sink.push(0x27);
3817
+ memarg.encode(self.sink);
3818
+ self
3819
+ }
3820
+
3821
+ /// Encode [`Instruction::I32AtomicRmw16SubU`].
3822
+ pub fn i32_atomic_rmw16_sub_u(&mut self, memarg: MemArg) -> &mut Self {
3823
+ self.sink.push(0xFE);
3824
+ self.sink.push(0x28);
3825
+ memarg.encode(self.sink);
3826
+ self
3827
+ }
3828
+
3829
+ /// Encode [`Instruction::I64AtomicRmw8SubU`].
3830
+ pub fn i64_atomic_rmw8_sub_u(&mut self, memarg: MemArg) -> &mut Self {
3831
+ self.sink.push(0xFE);
3832
+ self.sink.push(0x29);
3833
+ memarg.encode(self.sink);
3834
+ self
3835
+ }
3836
+
3837
+ /// Encode [`Instruction::I64AtomicRmw16SubU`].
3838
+ pub fn i64_atomic_rmw16_sub_u(&mut self, memarg: MemArg) -> &mut Self {
3839
+ self.sink.push(0xFE);
3840
+ self.sink.push(0x2A);
3841
+ memarg.encode(self.sink);
3842
+ self
3843
+ }
3844
+
3845
+ /// Encode [`Instruction::I64AtomicRmw32SubU`].
3846
+ pub fn i64_atomic_rmw32_sub_u(&mut self, memarg: MemArg) -> &mut Self {
3847
+ self.sink.push(0xFE);
3848
+ self.sink.push(0x2B);
3849
+ memarg.encode(self.sink);
3850
+ self
3851
+ }
3852
+
3853
+ /// Encode [`Instruction::I32AtomicRmwAnd`].
3854
+ pub fn i32_atomic_rmw_and(&mut self, memarg: MemArg) -> &mut Self {
3855
+ self.sink.push(0xFE);
3856
+ self.sink.push(0x2C);
3857
+ memarg.encode(self.sink);
3858
+ self
3859
+ }
3860
+
3861
+ /// Encode [`Instruction::I64AtomicRmwAnd`].
3862
+ pub fn i64_atomic_rmw_and(&mut self, memarg: MemArg) -> &mut Self {
3863
+ self.sink.push(0xFE);
3864
+ self.sink.push(0x2D);
3865
+ memarg.encode(self.sink);
3866
+ self
3867
+ }
3868
+
3869
+ /// Encode [`Instruction::I32AtomicRmw8AndU`].
3870
+ pub fn i32_atomic_rmw8_and_u(&mut self, memarg: MemArg) -> &mut Self {
3871
+ self.sink.push(0xFE);
3872
+ self.sink.push(0x2E);
3873
+ memarg.encode(self.sink);
3874
+ self
3875
+ }
3876
+
3877
+ /// Encode [`Instruction::I32AtomicRmw16AndU`].
3878
+ pub fn i32_atomic_rmw16_and_u(&mut self, memarg: MemArg) -> &mut Self {
3879
+ self.sink.push(0xFE);
3880
+ self.sink.push(0x2F);
3881
+ memarg.encode(self.sink);
3882
+ self
3883
+ }
3884
+
3885
+ /// Encode [`Instruction::I64AtomicRmw8AndU`].
3886
+ pub fn i64_atomic_rmw8_and_u(&mut self, memarg: MemArg) -> &mut Self {
3887
+ self.sink.push(0xFE);
3888
+ self.sink.push(0x30);
3889
+ memarg.encode(self.sink);
3890
+ self
3891
+ }
3892
+
3893
+ /// Encode [`Instruction::I64AtomicRmw16AndU`].
3894
+ pub fn i64_atomic_rmw16_and_u(&mut self, memarg: MemArg) -> &mut Self {
3895
+ self.sink.push(0xFE);
3896
+ self.sink.push(0x31);
3897
+ memarg.encode(self.sink);
3898
+ self
3899
+ }
3900
+
3901
+ /// Encode [`Instruction::I64AtomicRmw32AndU`].
3902
+ pub fn i64_atomic_rmw32_and_u(&mut self, memarg: MemArg) -> &mut Self {
3903
+ self.sink.push(0xFE);
3904
+ self.sink.push(0x32);
3905
+ memarg.encode(self.sink);
3906
+ self
3907
+ }
3908
+
3909
+ /// Encode [`Instruction::I32AtomicRmwOr`].
3910
+ pub fn i32_atomic_rmw_or(&mut self, memarg: MemArg) -> &mut Self {
3911
+ self.sink.push(0xFE);
3912
+ self.sink.push(0x33);
3913
+ memarg.encode(self.sink);
3914
+ self
3915
+ }
3916
+
3917
+ /// Encode [`Instruction::I64AtomicRmwOr`].
3918
+ pub fn i64_atomic_rmw_or(&mut self, memarg: MemArg) -> &mut Self {
3919
+ self.sink.push(0xFE);
3920
+ self.sink.push(0x34);
3921
+ memarg.encode(self.sink);
3922
+ self
3923
+ }
3924
+
3925
+ /// Encode [`Instruction::I32AtomicRmw8OrU`].
3926
+ pub fn i32_atomic_rmw8_or_u(&mut self, memarg: MemArg) -> &mut Self {
3927
+ self.sink.push(0xFE);
3928
+ self.sink.push(0x35);
3929
+ memarg.encode(self.sink);
3930
+ self
3931
+ }
3932
+
3933
+ /// Encode [`Instruction::I32AtomicRmw16OrU`].
3934
+ pub fn i32_atomic_rmw16_or_u(&mut self, memarg: MemArg) -> &mut Self {
3935
+ self.sink.push(0xFE);
3936
+ self.sink.push(0x36);
3937
+ memarg.encode(self.sink);
3938
+ self
3939
+ }
3940
+
3941
+ /// Encode [`Instruction::I64AtomicRmw8OrU`].
3942
+ pub fn i64_atomic_rmw8_or_u(&mut self, memarg: MemArg) -> &mut Self {
3943
+ self.sink.push(0xFE);
3944
+ self.sink.push(0x37);
3945
+ memarg.encode(self.sink);
3946
+ self
3947
+ }
3948
+
3949
+ /// Encode [`Instruction::I64AtomicRmw16OrU`].
3950
+ pub fn i64_atomic_rmw16_or_u(&mut self, memarg: MemArg) -> &mut Self {
3951
+ self.sink.push(0xFE);
3952
+ self.sink.push(0x38);
3953
+ memarg.encode(self.sink);
3954
+ self
3955
+ }
3956
+
3957
+ /// Encode [`Instruction::I64AtomicRmw32OrU`].
3958
+ pub fn i64_atomic_rmw32_or_u(&mut self, memarg: MemArg) -> &mut Self {
3959
+ self.sink.push(0xFE);
3960
+ self.sink.push(0x39);
3961
+ memarg.encode(self.sink);
3962
+ self
3963
+ }
3964
+
3965
+ /// Encode [`Instruction::I32AtomicRmwXor`].
3966
+ pub fn i32_atomic_rmw_xor(&mut self, memarg: MemArg) -> &mut Self {
3967
+ self.sink.push(0xFE);
3968
+ self.sink.push(0x3A);
3969
+ memarg.encode(self.sink);
3970
+ self
3971
+ }
3972
+
3973
+ /// Encode [`Instruction::I64AtomicRmwXor`].
3974
+ pub fn i64_atomic_rmw_xor(&mut self, memarg: MemArg) -> &mut Self {
3975
+ self.sink.push(0xFE);
3976
+ self.sink.push(0x3B);
3977
+ memarg.encode(self.sink);
3978
+ self
3979
+ }
3980
+
3981
+ /// Encode [`Instruction::I32AtomicRmw8XorU`].
3982
+ pub fn i32_atomic_rmw8_xor_u(&mut self, memarg: MemArg) -> &mut Self {
3983
+ self.sink.push(0xFE);
3984
+ self.sink.push(0x3C);
3985
+ memarg.encode(self.sink);
3986
+ self
3987
+ }
3988
+
3989
+ /// Encode [`Instruction::I32AtomicRmw16XorU`].
3990
+ pub fn i32_atomic_rmw16_xor_u(&mut self, memarg: MemArg) -> &mut Self {
3991
+ self.sink.push(0xFE);
3992
+ self.sink.push(0x3D);
3993
+ memarg.encode(self.sink);
3994
+ self
3995
+ }
3996
+
3997
+ /// Encode [`Instruction::I64AtomicRmw8XorU`].
3998
+ pub fn i64_atomic_rmw8_xor_u(&mut self, memarg: MemArg) -> &mut Self {
3999
+ self.sink.push(0xFE);
4000
+ self.sink.push(0x3E);
4001
+ memarg.encode(self.sink);
4002
+ self
4003
+ }
4004
+
4005
+ /// Encode [`Instruction::I64AtomicRmw16XorU`].
4006
+ pub fn i64_atomic_rmw16_xor_u(&mut self, memarg: MemArg) -> &mut Self {
4007
+ self.sink.push(0xFE);
4008
+ self.sink.push(0x3F);
4009
+ memarg.encode(self.sink);
4010
+ self
4011
+ }
4012
+
4013
+ /// Encode [`Instruction::I64AtomicRmw32XorU`].
4014
+ pub fn i64_atomic_rmw32_xor_u(&mut self, memarg: MemArg) -> &mut Self {
4015
+ self.sink.push(0xFE);
4016
+ self.sink.push(0x40);
4017
+ memarg.encode(self.sink);
4018
+ self
4019
+ }
4020
+
4021
+ /// Encode [`Instruction::I32AtomicRmwXchg`].
4022
+ pub fn i32_atomic_rmw_xchg(&mut self, memarg: MemArg) -> &mut Self {
4023
+ self.sink.push(0xFE);
4024
+ self.sink.push(0x41);
4025
+ memarg.encode(self.sink);
4026
+ self
4027
+ }
4028
+
4029
+ /// Encode [`Instruction::I64AtomicRmwXchg`].
4030
+ pub fn i64_atomic_rmw_xchg(&mut self, memarg: MemArg) -> &mut Self {
4031
+ self.sink.push(0xFE);
4032
+ self.sink.push(0x42);
4033
+ memarg.encode(self.sink);
4034
+ self
4035
+ }
4036
+
4037
+ /// Encode [`Instruction::I32AtomicRmw8XchgU`].
4038
+ pub fn i32_atomic_rmw8_xchg_u(&mut self, memarg: MemArg) -> &mut Self {
4039
+ self.sink.push(0xFE);
4040
+ self.sink.push(0x43);
4041
+ memarg.encode(self.sink);
4042
+ self
4043
+ }
4044
+
4045
+ /// Encode [`Instruction::I32AtomicRmw16XchgU`].
4046
+ pub fn i32_atomic_rmw16_xchg_u(&mut self, memarg: MemArg) -> &mut Self {
4047
+ self.sink.push(0xFE);
4048
+ self.sink.push(0x44);
4049
+ memarg.encode(self.sink);
4050
+ self
4051
+ }
4052
+
4053
+ /// Encode [`Instruction::I64AtomicRmw8XchgU`].
4054
+ pub fn i64_atomic_rmw8_xchg_u(&mut self, memarg: MemArg) -> &mut Self {
4055
+ self.sink.push(0xFE);
4056
+ self.sink.push(0x45);
4057
+ memarg.encode(self.sink);
4058
+ self
4059
+ }
4060
+
4061
+ /// Encode [`Instruction::I64AtomicRmw16XchgU`].
4062
+ pub fn i64_atomic_rmw16_xchg_u(&mut self, memarg: MemArg) -> &mut Self {
4063
+ self.sink.push(0xFE);
4064
+ self.sink.push(0x46);
4065
+ memarg.encode(self.sink);
4066
+ self
4067
+ }
4068
+
4069
+ /// Encode [`Instruction::I64AtomicRmw32XchgU`].
4070
+ pub fn i64_atomic_rmw32_xchg_u(&mut self, memarg: MemArg) -> &mut Self {
4071
+ self.sink.push(0xFE);
4072
+ self.sink.push(0x47);
4073
+ memarg.encode(self.sink);
4074
+ self
4075
+ }
4076
+
4077
+ /// Encode [`Instruction::I32AtomicRmwCmpxchg`].
4078
+ pub fn i32_atomic_rmw_cmpxchg(&mut self, memarg: MemArg) -> &mut Self {
4079
+ self.sink.push(0xFE);
4080
+ self.sink.push(0x48);
4081
+ memarg.encode(self.sink);
4082
+ self
4083
+ }
4084
+
4085
+ /// Encode [`Instruction::I64AtomicRmwCmpxchg`].
4086
+ pub fn i64_atomic_rmw_cmpxchg(&mut self, memarg: MemArg) -> &mut Self {
4087
+ self.sink.push(0xFE);
4088
+ self.sink.push(0x49);
4089
+ memarg.encode(self.sink);
4090
+ self
4091
+ }
4092
+
4093
+ /// Encode [`Instruction::I32AtomicRmw8CmpxchgU`].
4094
+ pub fn i32_atomic_rmw8_cmpxchg_u(&mut self, memarg: MemArg) -> &mut Self {
4095
+ self.sink.push(0xFE);
4096
+ self.sink.push(0x4A);
4097
+ memarg.encode(self.sink);
4098
+ self
4099
+ }
4100
+
4101
+ /// Encode [`Instruction::I32AtomicRmw16CmpxchgU`].
4102
+ pub fn i32_atomic_rmw16_cmpxchg_u(&mut self, memarg: MemArg) -> &mut Self {
4103
+ self.sink.push(0xFE);
4104
+ self.sink.push(0x4B);
4105
+ memarg.encode(self.sink);
4106
+ self
4107
+ }
4108
+
4109
+ /// Encode [`Instruction::I64AtomicRmw8CmpxchgU`].
4110
+ pub fn i64_atomic_rmw8_cmpxchg_u(&mut self, memarg: MemArg) -> &mut Self {
4111
+ self.sink.push(0xFE);
4112
+ self.sink.push(0x4C);
4113
+ memarg.encode(self.sink);
4114
+ self
4115
+ }
4116
+
4117
+ /// Encode [`Instruction::I64AtomicRmw16CmpxchgU`].
4118
+ pub fn i64_atomic_rmw16_cmpxchg_u(&mut self, memarg: MemArg) -> &mut Self {
4119
+ self.sink.push(0xFE);
4120
+ self.sink.push(0x4D);
4121
+ memarg.encode(self.sink);
4122
+ self
4123
+ }
4124
+
4125
+ /// Encode [`Instruction::I64AtomicRmw32CmpxchgU`].
4126
+ pub fn i64_atomic_rmw32_cmpxchg_u(&mut self, memarg: MemArg) -> &mut Self {
4127
+ self.sink.push(0xFE);
4128
+ self.sink.push(0x4E);
4129
+ memarg.encode(self.sink);
4130
+ self
4131
+ }
4132
+
4133
+ // More atomic instructions (the shared-everything-threads proposal)
4134
+
4135
+ /// Encode [`Instruction::GlobalAtomicGet`].
4136
+ pub fn global_atomic_get(&mut self, ordering: Ordering, global_index: u32) -> &mut Self {
4137
+ self.sink.push(0xFE);
4138
+ self.sink.push(0x4F);
4139
+ ordering.encode(self.sink);
4140
+ global_index.encode(self.sink);
4141
+ self
4142
+ }
4143
+
4144
+ /// Encode [`Instruction::GlobalAtomicSet`].
4145
+ pub fn global_atomic_set(&mut self, ordering: Ordering, global_index: u32) -> &mut Self {
4146
+ self.sink.push(0xFE);
4147
+ self.sink.push(0x50);
4148
+ ordering.encode(self.sink);
4149
+ global_index.encode(self.sink);
4150
+ self
4151
+ }
4152
+
4153
+ /// Encode [`Instruction::GlobalAtomicRmwAdd`].
4154
+ pub fn global_atomic_rmw_add(&mut self, ordering: Ordering, global_index: u32) -> &mut Self {
4155
+ self.sink.push(0xFE);
4156
+ self.sink.push(0x51);
4157
+ ordering.encode(self.sink);
4158
+ global_index.encode(self.sink);
4159
+ self
4160
+ }
4161
+
4162
+ /// Encode [`Instruction::GlobalAtomicRmwSub`].
4163
+ pub fn global_atomic_rmw_sub(&mut self, ordering: Ordering, global_index: u32) -> &mut Self {
4164
+ self.sink.push(0xFE);
4165
+ self.sink.push(0x52);
4166
+ ordering.encode(self.sink);
4167
+ global_index.encode(self.sink);
4168
+ self
4169
+ }
4170
+
4171
+ /// Encode [`Instruction::GlobalAtomicRmwAnd`].
4172
+ pub fn global_atomic_rmw_and(&mut self, ordering: Ordering, global_index: u32) -> &mut Self {
4173
+ self.sink.push(0xFE);
4174
+ self.sink.push(0x53);
4175
+ ordering.encode(self.sink);
4176
+ global_index.encode(self.sink);
4177
+ self
4178
+ }
4179
+
4180
+ /// Encode [`Instruction::GlobalAtomicRmwOr`].
4181
+ pub fn global_atomic_rmw_or(&mut self, ordering: Ordering, global_index: u32) -> &mut Self {
4182
+ self.sink.push(0xFE);
4183
+ self.sink.push(0x54);
4184
+ ordering.encode(self.sink);
4185
+ global_index.encode(self.sink);
4186
+ self
4187
+ }
4188
+
4189
+ /// Encode [`Instruction::GlobalAtomicRmwXor`].
4190
+ pub fn global_atomic_rmw_xor(&mut self, ordering: Ordering, global_index: u32) -> &mut Self {
4191
+ self.sink.push(0xFE);
4192
+ self.sink.push(0x55);
4193
+ ordering.encode(self.sink);
4194
+ global_index.encode(self.sink);
4195
+ self
4196
+ }
4197
+
4198
+ /// Encode [`Instruction::GlobalAtomicRmwXchg`].
4199
+ pub fn global_atomic_rmw_xchg(&mut self, ordering: Ordering, global_index: u32) -> &mut Self {
4200
+ self.sink.push(0xFE);
4201
+ self.sink.push(0x56);
4202
+ ordering.encode(self.sink);
4203
+ global_index.encode(self.sink);
4204
+ self
4205
+ }
4206
+
4207
+ /// Encode [`Instruction::GlobalAtomicRmwCmpxchg`].
4208
+ pub fn global_atomic_rmw_cmpxchg(
4209
+ &mut self,
4210
+ ordering: Ordering,
4211
+ global_index: u32,
4212
+ ) -> &mut Self {
4213
+ self.sink.push(0xFE);
4214
+ self.sink.push(0x57);
4215
+ ordering.encode(self.sink);
4216
+ global_index.encode(self.sink);
4217
+ self
4218
+ }
4219
+
4220
+ /// Encode [`Instruction::TableAtomicGet`].
4221
+ pub fn table_atomic_get(&mut self, ordering: Ordering, table_index: u32) -> &mut Self {
4222
+ self.sink.push(0xFE);
4223
+ self.sink.push(0x58);
4224
+ ordering.encode(self.sink);
4225
+ table_index.encode(self.sink);
4226
+ self
4227
+ }
4228
+
4229
+ /// Encode [`Instruction::TableAtomicSet`].
4230
+ pub fn table_atomic_set(&mut self, ordering: Ordering, table_index: u32) -> &mut Self {
4231
+ self.sink.push(0xFE);
4232
+ self.sink.push(0x59);
4233
+ ordering.encode(self.sink);
4234
+ table_index.encode(self.sink);
4235
+ self
4236
+ }
4237
+
4238
+ /// Encode [`Instruction::TableAtomicRmwXchg`].
4239
+ pub fn table_atomic_rmw_xchg(&mut self, ordering: Ordering, table_index: u32) -> &mut Self {
4240
+ self.sink.push(0xFE);
4241
+ self.sink.push(0x5A);
4242
+ ordering.encode(self.sink);
4243
+ table_index.encode(self.sink);
4244
+ self
4245
+ }
4246
+
4247
+ /// Encode [`Instruction::TableAtomicRmwCmpxchg`].
4248
+ pub fn table_atomic_rmw_cmpxchg(&mut self, ordering: Ordering, table_index: u32) -> &mut Self {
4249
+ self.sink.push(0xFE);
4250
+ self.sink.push(0x5B);
4251
+ ordering.encode(self.sink);
4252
+ table_index.encode(self.sink);
4253
+ self
4254
+ }
4255
+
4256
+ /// Encode [`Instruction::StructAtomicGet`].
4257
+ pub fn struct_atomic_get(
4258
+ &mut self,
4259
+ ordering: Ordering,
4260
+ struct_type_index: u32,
4261
+ field_index: u32,
4262
+ ) -> &mut Self {
4263
+ self.sink.push(0xFE);
4264
+ self.sink.push(0x5C);
4265
+ ordering.encode(self.sink);
4266
+ struct_type_index.encode(self.sink);
4267
+ field_index.encode(self.sink);
4268
+ self
4269
+ }
4270
+
4271
+ /// Encode [`Instruction::StructAtomicGetS`].
4272
+ pub fn struct_atomic_get_s(
4273
+ &mut self,
4274
+ ordering: Ordering,
4275
+ struct_type_index: u32,
4276
+ field_index: u32,
4277
+ ) -> &mut Self {
4278
+ self.sink.push(0xFE);
4279
+ self.sink.push(0x5D);
4280
+ ordering.encode(self.sink);
4281
+ struct_type_index.encode(self.sink);
4282
+ field_index.encode(self.sink);
4283
+ self
4284
+ }
4285
+
4286
+ /// Encode [`Instruction::StructAtomicGetU`].
4287
+ pub fn struct_atomic_get_u(
4288
+ &mut self,
4289
+ ordering: Ordering,
4290
+ struct_type_index: u32,
4291
+ field_index: u32,
4292
+ ) -> &mut Self {
4293
+ self.sink.push(0xFE);
4294
+ self.sink.push(0x5E);
4295
+ ordering.encode(self.sink);
4296
+ struct_type_index.encode(self.sink);
4297
+ field_index.encode(self.sink);
4298
+ self
4299
+ }
4300
+
4301
+ /// Encode [`Instruction::StructAtomicSet`].
4302
+ pub fn struct_atomic_set(
4303
+ &mut self,
4304
+ ordering: Ordering,
4305
+ struct_type_index: u32,
4306
+ field_index: u32,
4307
+ ) -> &mut Self {
4308
+ self.sink.push(0xFE);
4309
+ self.sink.push(0x5F);
4310
+ ordering.encode(self.sink);
4311
+ struct_type_index.encode(self.sink);
4312
+ field_index.encode(self.sink);
4313
+ self
4314
+ }
4315
+
4316
+ /// Encode [`Instruction::StructAtomicRmwAdd`].
4317
+ pub fn struct_atomic_rmw_add(
4318
+ &mut self,
4319
+ ordering: Ordering,
4320
+ struct_type_index: u32,
4321
+ field_index: u32,
4322
+ ) -> &mut Self {
4323
+ self.sink.push(0xFE);
4324
+ self.sink.push(0x60);
4325
+ ordering.encode(self.sink);
4326
+ struct_type_index.encode(self.sink);
4327
+ field_index.encode(self.sink);
4328
+ self
4329
+ }
4330
+
4331
+ /// Encode [`Instruction::StructAtomicRmwSub`].
4332
+ pub fn struct_atomic_rmw_sub(
4333
+ &mut self,
4334
+ ordering: Ordering,
4335
+ struct_type_index: u32,
4336
+ field_index: u32,
4337
+ ) -> &mut Self {
4338
+ self.sink.push(0xFE);
4339
+ self.sink.push(0x61);
4340
+ ordering.encode(self.sink);
4341
+ struct_type_index.encode(self.sink);
4342
+ field_index.encode(self.sink);
4343
+ self
4344
+ }
4345
+
4346
+ /// Encode [`Instruction::StructAtomicRmwAnd`].
4347
+ pub fn struct_atomic_rmw_and(
4348
+ &mut self,
4349
+ ordering: Ordering,
4350
+ struct_type_index: u32,
4351
+ field_index: u32,
4352
+ ) -> &mut Self {
4353
+ self.sink.push(0xFE);
4354
+ self.sink.push(0x62);
4355
+ ordering.encode(self.sink);
4356
+ struct_type_index.encode(self.sink);
4357
+ field_index.encode(self.sink);
4358
+ self
4359
+ }
4360
+
4361
+ /// Encode [`Instruction::StructAtomicRmwOr`].
4362
+ pub fn struct_atomic_rmw_or(
4363
+ &mut self,
4364
+ ordering: Ordering,
4365
+ struct_type_index: u32,
4366
+ field_index: u32,
4367
+ ) -> &mut Self {
4368
+ self.sink.push(0xFE);
4369
+ self.sink.push(0x63);
4370
+ ordering.encode(self.sink);
4371
+ struct_type_index.encode(self.sink);
4372
+ field_index.encode(self.sink);
4373
+ self
4374
+ }
4375
+
4376
+ /// Encode [`Instruction::StructAtomicRmwXor`].
4377
+ pub fn struct_atomic_rmw_xor(
4378
+ &mut self,
4379
+ ordering: Ordering,
4380
+ struct_type_index: u32,
4381
+ field_index: u32,
4382
+ ) -> &mut Self {
4383
+ self.sink.push(0xFE);
4384
+ self.sink.push(0x64);
4385
+ ordering.encode(self.sink);
4386
+ struct_type_index.encode(self.sink);
4387
+ field_index.encode(self.sink);
4388
+ self
4389
+ }
4390
+
4391
+ /// Encode [`Instruction::StructAtomicRmwXchg`].
4392
+ pub fn struct_atomic_rmw_xchg(
4393
+ &mut self,
4394
+ ordering: Ordering,
4395
+ struct_type_index: u32,
4396
+ field_index: u32,
4397
+ ) -> &mut Self {
4398
+ self.sink.push(0xFE);
4399
+ self.sink.push(0x65);
4400
+ ordering.encode(self.sink);
4401
+ struct_type_index.encode(self.sink);
4402
+ field_index.encode(self.sink);
4403
+ self
4404
+ }
4405
+
4406
+ /// Encode [`Instruction::StructAtomicRmwCmpxchg`].
4407
+ pub fn struct_atomic_rmw_cmpxchg(
4408
+ &mut self,
4409
+ ordering: Ordering,
4410
+ struct_type_index: u32,
4411
+ field_index: u32,
4412
+ ) -> &mut Self {
4413
+ self.sink.push(0xFE);
4414
+ self.sink.push(0x66);
4415
+ ordering.encode(self.sink);
4416
+ struct_type_index.encode(self.sink);
4417
+ field_index.encode(self.sink);
4418
+ self
4419
+ }
4420
+
4421
+ /// Encode [`Instruction::ArrayAtomicGet`].
4422
+ pub fn array_atomic_get(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4423
+ self.sink.push(0xFE);
4424
+ self.sink.push(0x67);
4425
+ ordering.encode(self.sink);
4426
+ array_type_index.encode(self.sink);
4427
+ self
4428
+ }
4429
+
4430
+ /// Encode [`Instruction::ArrayAtomicGetS`].
4431
+ pub fn array_atomic_get_s(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4432
+ self.sink.push(0xFE);
4433
+ self.sink.push(0x68);
4434
+ ordering.encode(self.sink);
4435
+ array_type_index.encode(self.sink);
4436
+ self
4437
+ }
4438
+
4439
+ /// Encode [`Instruction::ArrayAtomicGetU`].
4440
+ pub fn array_atomic_get_u(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4441
+ self.sink.push(0xFE);
4442
+ self.sink.push(0x69);
4443
+ ordering.encode(self.sink);
4444
+ array_type_index.encode(self.sink);
4445
+ self
4446
+ }
4447
+
4448
+ /// Encode [`Instruction::ArrayAtomicSet`].
4449
+ pub fn array_atomic_set(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4450
+ self.sink.push(0xFE);
4451
+ self.sink.push(0x6A);
4452
+ ordering.encode(self.sink);
4453
+ array_type_index.encode(self.sink);
4454
+ self
4455
+ }
4456
+
4457
+ /// Encode [`Instruction::ArrayAtomicRmwAdd`].
4458
+ pub fn array_atomic_rmw_add(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4459
+ self.sink.push(0xFE);
4460
+ self.sink.push(0x6B);
4461
+ ordering.encode(self.sink);
4462
+ array_type_index.encode(self.sink);
4463
+ self
4464
+ }
4465
+
4466
+ /// Encode [`Instruction::ArrayAtomicRmwSub`].
4467
+ pub fn array_atomic_rmw_sub(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4468
+ self.sink.push(0xFE);
4469
+ self.sink.push(0x6C);
4470
+ ordering.encode(self.sink);
4471
+ array_type_index.encode(self.sink);
4472
+ self
4473
+ }
4474
+
4475
+ /// Encode [`Instruction::ArrayAtomicRmwAnd`].
4476
+ pub fn array_atomic_rmw_and(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4477
+ self.sink.push(0xFE);
4478
+ self.sink.push(0x6D);
4479
+ ordering.encode(self.sink);
4480
+ array_type_index.encode(self.sink);
4481
+ self
4482
+ }
4483
+
4484
+ /// Encode [`Instruction::ArrayAtomicRmwOr`].
4485
+ pub fn array_atomic_rmw_or(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4486
+ self.sink.push(0xFE);
4487
+ self.sink.push(0x6E);
4488
+ ordering.encode(self.sink);
4489
+ array_type_index.encode(self.sink);
4490
+ self
4491
+ }
4492
+
4493
+ /// Encode [`Instruction::ArrayAtomicRmwXor`].
4494
+ pub fn array_atomic_rmw_xor(&mut self, ordering: Ordering, array_type_index: u32) -> &mut Self {
4495
+ self.sink.push(0xFE);
4496
+ self.sink.push(0x6F);
4497
+ ordering.encode(self.sink);
4498
+ array_type_index.encode(self.sink);
4499
+ self
4500
+ }
4501
+
4502
+ /// Encode [`Instruction::ArrayAtomicRmwXchg`].
4503
+ pub fn array_atomic_rmw_xchg(
4504
+ &mut self,
4505
+ ordering: Ordering,
4506
+ array_type_index: u32,
4507
+ ) -> &mut Self {
4508
+ self.sink.push(0xFE);
4509
+ self.sink.push(0x70);
4510
+ ordering.encode(self.sink);
4511
+ array_type_index.encode(self.sink);
4512
+ self
4513
+ }
4514
+
4515
+ /// Encode [`Instruction::ArrayAtomicRmwCmpxchg`].
4516
+ pub fn array_atomic_rmw_cmpxchg(
4517
+ &mut self,
4518
+ ordering: Ordering,
4519
+ array_type_index: u32,
4520
+ ) -> &mut Self {
4521
+ self.sink.push(0xFE);
4522
+ self.sink.push(0x71);
4523
+ ordering.encode(self.sink);
4524
+ array_type_index.encode(self.sink);
4525
+ self
4526
+ }
4527
+
4528
+ /// Encode [`Instruction::RefI31Shared`].
4529
+ pub fn ref_i31_shared(&mut self) -> &mut Self {
4530
+ self.sink.push(0xFE);
4531
+ self.sink.push(0x72);
4532
+ self
4533
+ }
4534
+
4535
+ // Stack switching
4536
+
4537
+ /// Encode [`Instruction::ContNew`].
4538
+ pub fn cont_new(&mut self, type_index: u32) -> &mut Self {
4539
+ self.sink.push(0xE0);
4540
+ type_index.encode(self.sink);
4541
+ self
4542
+ }
4543
+
4544
+ /// Encode [`Instruction::ContBind`].
4545
+ pub fn cont_bind(&mut self, argument_index: u32, result_index: u32) -> &mut Self {
4546
+ self.sink.push(0xE1);
4547
+ argument_index.encode(self.sink);
4548
+ result_index.encode(self.sink);
4549
+ self
4550
+ }
4551
+
4552
+ /// Encode [`Instruction::Suspend`].
4553
+ pub fn suspend(&mut self, tag_index: u32) -> &mut Self {
4554
+ self.sink.push(0xE2);
4555
+ tag_index.encode(self.sink);
4556
+ self
4557
+ }
4558
+
4559
+ /// Encode [`Instruction::Resume`].
4560
+ pub fn resume<V: IntoIterator<Item = Handle>>(
4561
+ &mut self,
4562
+ cont_type_index: u32,
4563
+ resume_table: V,
4564
+ ) -> &mut Self
4565
+ where
4566
+ V::IntoIter: ExactSizeIterator,
4567
+ {
4568
+ self.sink.push(0xE3);
4569
+ cont_type_index.encode(self.sink);
4570
+ encode_vec(resume_table, self.sink);
4571
+ self
4572
+ }
4573
+
4574
+ /// Encode [`Instruction::ResumeThrow`].
4575
+ pub fn resume_throw<V: IntoIterator<Item = Handle>>(
4576
+ &mut self,
4577
+ cont_type_index: u32,
4578
+ tag_index: u32,
4579
+ resume_table: V,
4580
+ ) -> &mut Self
4581
+ where
4582
+ V::IntoIter: ExactSizeIterator,
4583
+ {
4584
+ self.sink.push(0xE4);
4585
+ cont_type_index.encode(self.sink);
4586
+ tag_index.encode(self.sink);
4587
+ encode_vec(resume_table, self.sink);
4588
+ self
4589
+ }
4590
+
4591
+ /// Encode [`Instruction::Switch`].
4592
+ pub fn switch(&mut self, cont_type_index: u32, tag_index: u32) -> &mut Self {
4593
+ self.sink.push(0xE5);
4594
+ cont_type_index.encode(self.sink);
4595
+ tag_index.encode(self.sink);
4596
+ self
4597
+ }
4598
+
4599
+ // Wide Arithmetic
4600
+
4601
+ /// Encode [`Instruction::I64Add128`].
4602
+ pub fn i64_add128(&mut self) -> &mut Self {
4603
+ self.sink.push(0xFC);
4604
+ 19u32.encode(self.sink);
4605
+ self
4606
+ }
4607
+
4608
+ /// Encode [`Instruction::I64Sub128`].
4609
+ pub fn i64_sub128(&mut self) -> &mut Self {
4610
+ self.sink.push(0xFC);
4611
+ 20u32.encode(self.sink);
4612
+ self
4613
+ }
4614
+
4615
+ /// Encode [`Instruction::I64MulWideS`].
4616
+ pub fn i64_mul_wide_s(&mut self) -> &mut Self {
4617
+ self.sink.push(0xFC);
4618
+ 21u32.encode(self.sink);
4619
+ self
4620
+ }
4621
+
4622
+ /// Encode [`Instruction::I64MulWideU`].
4623
+ pub fn i64_mul_wide_u(&mut self) -> &mut Self {
4624
+ self.sink.push(0xFC);
4625
+ 22u32.encode(self.sink);
4626
+ self
4627
+ }
4628
+
4629
+ /// Encode [`Instruction::RefGetDesc`].
4630
+ pub fn ref_get_desc(&mut self, type_index: u32) -> &mut Self {
4631
+ self.sink.push(0xFB);
4632
+ 34u32.encode(self.sink);
4633
+ type_index.encode(self.sink);
4634
+ self
4635
+ }
4636
+
4637
+ /// Encode [`Instruction::RefCastDescNonNull`].
4638
+ pub fn ref_cast_desc_non_null(&mut self, ht: HeapType) -> &mut Self {
4639
+ self.sink.push(0xFB);
4640
+ 35u32.encode(self.sink);
4641
+ ht.encode(self.sink);
4642
+ self
4643
+ }
4644
+
4645
+ /// Encode [`Instruction::RefCastDescNullable`].
4646
+ pub fn ref_cast_desc_nullable(&mut self, ht: HeapType) -> &mut Self {
4647
+ self.sink.push(0xFB);
4648
+ 36u32.encode(self.sink);
4649
+ ht.encode(self.sink);
4650
+ self
4651
+ }
4652
+
4653
+ /// Encode [`Instruction::BrOnCastDesc`].
4654
+ pub fn br_on_cast_desc(
4655
+ &mut self,
4656
+ relative_depth: u32,
4657
+ from_ref_type: RefType,
4658
+ to_ref_type: RefType,
4659
+ ) -> &mut Self {
4660
+ self.sink.push(0xFB);
4661
+ 37u32.encode(self.sink);
4662
+ let cast_flags = (from_ref_type.nullable as u8) | ((to_ref_type.nullable as u8) << 1);
4663
+ self.sink.push(cast_flags);
4664
+ relative_depth.encode(self.sink);
4665
+ from_ref_type.heap_type.encode(self.sink);
4666
+ to_ref_type.heap_type.encode(self.sink);
4667
+ self
4668
+ }
4669
+
4670
+ /// Encode [`Instruction::BrOnCastDescFail`].
4671
+ pub fn br_on_cast_desc_fail(
4672
+ &mut self,
4673
+ relative_depth: u32,
4674
+ from_ref_type: RefType,
4675
+ to_ref_type: RefType,
4676
+ ) -> &mut Self {
4677
+ self.sink.push(0xFB);
4678
+ 38u32.encode(self.sink);
4679
+ let cast_flags = (from_ref_type.nullable as u8) | ((to_ref_type.nullable as u8) << 1);
4680
+ self.sink.push(cast_flags);
4681
+ relative_depth.encode(self.sink);
4682
+ from_ref_type.heap_type.encode(self.sink);
4683
+ to_ref_type.heap_type.encode(self.sink);
4684
+ self
4685
+ }
4686
+ }