wasmtime 21.0.1 → 22.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2043) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +80 -87
  3. data/ext/Cargo.toml +4 -4
  4. data/ext/cargo-vendor/cranelift-bforest-0.109.0/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.109.0/Cargo.toml +41 -0
  6. data/ext/cargo-vendor/cranelift-codegen-0.109.0/.cargo-checksum.json +1 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.109.0/Cargo.toml +193 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/context.rs +384 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/dominator_tree.rs +727 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/egraph.rs +835 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/inst_predicates.rs +230 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/dfg.rs +1777 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/extfunc.rs +402 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/immediates.rs +1612 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/stackslot.rs +208 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/ir/types.rs +627 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/abi.rs +1556 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/args.rs +711 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/emit.rs +3584 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/emit_tests.rs +7901 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/imms.rs +1213 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/mod.rs +3060 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/regs.rs +269 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst/unwind/systemv.rs +174 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/inst.isle +4218 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/aarch64/pcc.rs +568 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/abi.rs +1029 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/args.rs +2054 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/emit.rs +2682 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/emit_tests.rs +2215 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/encode.rs +675 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/imms.rs +374 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/mod.rs +1938 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/unwind/systemv.rs +170 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst/vector.rs +1150 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst.isle +3127 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/inst_vector.isle +1907 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/lower/isle.rs +649 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/lower.isle +2923 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/riscv64/mod.rs +260 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/abi.rs +1016 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/args.rs +298 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/emit.rs +3401 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/emit_tests.rs +13388 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/imms.rs +202 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/mod.rs +3401 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/regs.rs +169 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst/unwind/systemv.rs +212 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/inst.isle +5028 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/s390x/lower.isle +3995 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/abi.rs +1390 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/args.rs +2240 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit.rs +4287 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit_state.rs +52 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/emit_tests.rs +5171 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/mod.rs +2821 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/regs.rs +275 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst/unwind/systemv.rs +198 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/inst.isle +5289 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/lower.isle +4810 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isa/x64/pcc.rs +1014 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/isle_prelude.rs +986 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/lib.rs +106 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/abi.rs +2419 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/blockorder.rs +465 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/buffer.rs +2508 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/isle.rs +909 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/lower.rs +1432 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/mod.rs +551 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/reg.rs +479 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/valueregs.rs +138 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/machinst/vcode.rs +1741 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/cprop.isle +297 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/opts/shifts.isle +307 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/prelude.isle +664 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/prelude_lower.isle +1073 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/timing.rs +296 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/traversals.rs +216 -0
  79. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/verifier/mod.rs +1957 -0
  80. data/ext/cargo-vendor/cranelift-codegen-0.109.0/src/write.rs +638 -0
  81. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/.cargo-checksum.json +1 -0
  82. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/Cargo.toml +36 -0
  83. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/cdsl/types.rs +496 -0
  84. data/ext/cargo-vendor/cranelift-codegen-meta-0.109.0/src/isa/riscv64.rs +174 -0
  85. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/Cargo.toml +22 -0
  87. data/ext/cargo-vendor/cranelift-codegen-shared-0.109.0/src/constants.rs +28 -0
  88. data/ext/cargo-vendor/cranelift-control-0.109.0/.cargo-checksum.json +1 -0
  89. data/ext/cargo-vendor/cranelift-control-0.109.0/Cargo.toml +30 -0
  90. data/ext/cargo-vendor/cranelift-entity-0.109.0/.cargo-checksum.json +1 -0
  91. data/ext/cargo-vendor/cranelift-entity-0.109.0/Cargo.toml +53 -0
  92. data/ext/cargo-vendor/cranelift-entity-0.109.0/src/set.rs +290 -0
  93. data/ext/cargo-vendor/cranelift-frontend-0.109.0/.cargo-checksum.json +1 -0
  94. data/ext/cargo-vendor/cranelift-frontend-0.109.0/Cargo.toml +68 -0
  95. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/frontend.rs +1857 -0
  96. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/lib.rs +187 -0
  97. data/ext/cargo-vendor/cranelift-frontend-0.109.0/src/ssa.rs +1328 -0
  98. data/ext/cargo-vendor/cranelift-isle-0.109.0/.cargo-checksum.json +1 -0
  99. data/ext/cargo-vendor/cranelift-isle-0.109.0/Cargo.toml +47 -0
  100. data/ext/cargo-vendor/cranelift-isle-0.109.0/src/sema.rs +2492 -0
  101. data/ext/cargo-vendor/cranelift-native-0.109.0/.cargo-checksum.json +1 -0
  102. data/ext/cargo-vendor/cranelift-native-0.109.0/Cargo.toml +43 -0
  103. data/ext/cargo-vendor/cranelift-native-0.109.0/src/lib.rs +188 -0
  104. data/ext/cargo-vendor/cranelift-native-0.109.0/src/riscv.rs +128 -0
  105. data/ext/cargo-vendor/cranelift-wasm-0.109.0/.cargo-checksum.json +1 -0
  106. data/ext/cargo-vendor/cranelift-wasm-0.109.0/Cargo.toml +110 -0
  107. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/code_translator.rs +3695 -0
  108. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/func_translator.rs +296 -0
  109. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/module_translator.rs +120 -0
  110. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/sections_translator.rs +343 -0
  111. data/ext/cargo-vendor/cranelift-wasm-0.109.0/src/state.rs +522 -0
  112. data/ext/cargo-vendor/object-0.36.3/.cargo-checksum.json +1 -0
  113. data/ext/cargo-vendor/object-0.36.3/CHANGELOG.md +1028 -0
  114. data/ext/cargo-vendor/object-0.36.3/Cargo.toml +180 -0
  115. data/ext/cargo-vendor/object-0.36.3/README.md +60 -0
  116. data/ext/cargo-vendor/object-0.36.3/src/build/bytes.rs +146 -0
  117. data/ext/cargo-vendor/object-0.36.3/src/build/elf.rs +3113 -0
  118. data/ext/cargo-vendor/object-0.36.3/src/common.rs +590 -0
  119. data/ext/cargo-vendor/object-0.36.3/src/elf.rs +6303 -0
  120. data/ext/cargo-vendor/object-0.36.3/src/endian.rs +831 -0
  121. data/ext/cargo-vendor/object-0.36.3/src/macho.rs +3303 -0
  122. data/ext/cargo-vendor/object-0.36.3/src/pod.rs +281 -0
  123. data/ext/cargo-vendor/object-0.36.3/src/read/any.rs +1334 -0
  124. data/ext/cargo-vendor/object-0.36.3/src/read/archive.rs +1133 -0
  125. data/ext/cargo-vendor/object-0.36.3/src/read/coff/comdat.rs +220 -0
  126. data/ext/cargo-vendor/object-0.36.3/src/read/coff/file.rs +381 -0
  127. data/ext/cargo-vendor/object-0.36.3/src/read/coff/relocation.rs +113 -0
  128. data/ext/cargo-vendor/object-0.36.3/src/read/coff/section.rs +619 -0
  129. data/ext/cargo-vendor/object-0.36.3/src/read/coff/symbol.rs +669 -0
  130. data/ext/cargo-vendor/object-0.36.3/src/read/elf/attributes.rs +340 -0
  131. data/ext/cargo-vendor/object-0.36.3/src/read/elf/comdat.rs +186 -0
  132. data/ext/cargo-vendor/object-0.36.3/src/read/elf/file.rs +959 -0
  133. data/ext/cargo-vendor/object-0.36.3/src/read/elf/hash.rs +236 -0
  134. data/ext/cargo-vendor/object-0.36.3/src/read/elf/note.rs +302 -0
  135. data/ext/cargo-vendor/object-0.36.3/src/read/elf/relocation.rs +661 -0
  136. data/ext/cargo-vendor/object-0.36.3/src/read/elf/section.rs +1241 -0
  137. data/ext/cargo-vendor/object-0.36.3/src/read/elf/segment.rs +365 -0
  138. data/ext/cargo-vendor/object-0.36.3/src/read/elf/symbol.rs +654 -0
  139. data/ext/cargo-vendor/object-0.36.3/src/read/elf/version.rs +513 -0
  140. data/ext/cargo-vendor/object-0.36.3/src/read/gnu_compression.rs +36 -0
  141. data/ext/cargo-vendor/object-0.36.3/src/read/macho/dyld_cache.rs +384 -0
  142. data/ext/cargo-vendor/object-0.36.3/src/read/macho/file.rs +779 -0
  143. data/ext/cargo-vendor/object-0.36.3/src/read/macho/load_command.rs +404 -0
  144. data/ext/cargo-vendor/object-0.36.3/src/read/macho/section.rs +420 -0
  145. data/ext/cargo-vendor/object-0.36.3/src/read/macho/segment.rs +317 -0
  146. data/ext/cargo-vendor/object-0.36.3/src/read/macho/symbol.rs +532 -0
  147. data/ext/cargo-vendor/object-0.36.3/src/read/mod.rs +1018 -0
  148. data/ext/cargo-vendor/object-0.36.3/src/read/pe/file.rs +1033 -0
  149. data/ext/cargo-vendor/object-0.36.3/src/read/pe/import.rs +381 -0
  150. data/ext/cargo-vendor/object-0.36.3/src/read/pe/relocation.rs +109 -0
  151. data/ext/cargo-vendor/object-0.36.3/src/read/pe/section.rs +476 -0
  152. data/ext/cargo-vendor/object-0.36.3/src/read/read_cache.rs +261 -0
  153. data/ext/cargo-vendor/object-0.36.3/src/read/traits.rs +589 -0
  154. data/ext/cargo-vendor/object-0.36.3/src/read/wasm.rs +983 -0
  155. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/file.rs +716 -0
  156. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/relocation.rs +138 -0
  157. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/section.rs +452 -0
  158. data/ext/cargo-vendor/object-0.36.3/src/read/xcoff/symbol.rs +836 -0
  159. data/ext/cargo-vendor/object-0.36.3/src/write/coff/object.rs +681 -0
  160. data/ext/cargo-vendor/object-0.36.3/src/write/coff/writer.rs +520 -0
  161. data/ext/cargo-vendor/object-0.36.3/src/write/elf/object.rs +897 -0
  162. data/ext/cargo-vendor/object-0.36.3/src/write/elf/writer.rs +2361 -0
  163. data/ext/cargo-vendor/object-0.36.3/src/write/macho.rs +1124 -0
  164. data/ext/cargo-vendor/object-0.36.3/src/write/mod.rs +1023 -0
  165. data/ext/cargo-vendor/object-0.36.3/src/write/pe.rs +849 -0
  166. data/ext/cargo-vendor/object-0.36.3/src/write/xcoff.rs +588 -0
  167. data/ext/cargo-vendor/object-0.36.3/tests/build/elf.rs +254 -0
  168. data/ext/cargo-vendor/object-0.36.3/tests/build/mod.rs +3 -0
  169. data/ext/cargo-vendor/object-0.36.3/tests/integration.rs +3 -0
  170. data/ext/cargo-vendor/object-0.36.3/tests/read/macho.rs +49 -0
  171. data/ext/cargo-vendor/object-0.36.3/tests/read/mod.rs +5 -0
  172. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/bss.rs +244 -0
  173. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/comdat.rs +217 -0
  174. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/common.rs +241 -0
  175. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/elf.rs +302 -0
  176. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/mod.rs +682 -0
  177. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/section_flags.rs +89 -0
  178. data/ext/cargo-vendor/object-0.36.3/tests/round_trip/tls.rs +308 -0
  179. data/ext/cargo-vendor/wasi-common-22.0.0/.cargo-checksum.json +1 -0
  180. data/ext/cargo-vendor/wasi-common-22.0.0/Cargo.toml +224 -0
  181. data/ext/cargo-vendor/wasi-common-22.0.0/src/snapshots/preview_0.rs +1080 -0
  182. data/ext/cargo-vendor/wasi-common-22.0.0/src/snapshots/preview_1.rs +1562 -0
  183. data/ext/cargo-vendor/wasi-common-22.0.0/src/string_array.rs +75 -0
  184. data/ext/cargo-vendor/wasi-common-22.0.0/src/sync/sched/windows.rs +221 -0
  185. data/ext/cargo-vendor/wasi-common-22.0.0/src/tokio/file.rs +247 -0
  186. data/ext/cargo-vendor/wasmparser-0.209.1/.cargo-checksum.json +1 -0
  187. data/ext/cargo-vendor/wasmparser-0.209.1/Cargo.lock +662 -0
  188. data/ext/cargo-vendor/wasmparser-0.209.1/Cargo.toml +109 -0
  189. data/ext/cargo-vendor/wasmparser-0.209.1/src/binary_reader.rs +1929 -0
  190. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/hash.rs +120 -0
  191. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map/detail.rs +1094 -0
  192. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map/tests.rs +183 -0
  193. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_map.rs +656 -0
  194. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/index_set.rs +316 -0
  195. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/map.rs +840 -0
  196. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/mod.rs +24 -0
  197. data/ext/cargo-vendor/wasmparser-0.209.1/src/collections/set.rs +660 -0
  198. data/ext/cargo-vendor/wasmparser-0.209.1/src/features.rs +164 -0
  199. data/ext/cargo-vendor/wasmparser-0.209.1/src/lib.rs +814 -0
  200. data/ext/cargo-vendor/wasmparser-0.209.1/src/limits.rs +79 -0
  201. data/ext/cargo-vendor/wasmparser-0.209.1/src/parser.rs +1682 -0
  202. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/imports.rs +130 -0
  203. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/instances.rs +166 -0
  204. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/names.rs +99 -0
  205. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/component/types.rs +553 -0
  206. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/branch_hinting.rs +59 -0
  207. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/code.rs +142 -0
  208. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/coredumps.rs +278 -0
  209. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/custom.rs +128 -0
  210. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/data.rs +96 -0
  211. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/elements.rs +146 -0
  212. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/globals.rs +61 -0
  213. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/init.rs +57 -0
  214. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/linking.rs +457 -0
  215. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/names.rs +159 -0
  216. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/operators.rs +423 -0
  217. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/producers.rs +84 -0
  218. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/reloc.rs +300 -0
  219. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers/core/types.rs +1788 -0
  220. data/ext/cargo-vendor/wasmparser-0.209.1/src/readers.rs +315 -0
  221. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/component.rs +3236 -0
  222. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/core/canonical.rs +233 -0
  223. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/core.rs +1464 -0
  224. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/func.rs +331 -0
  225. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/names.rs +1016 -0
  226. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/operators.rs +4231 -0
  227. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator/types.rs +4550 -0
  228. data/ext/cargo-vendor/wasmparser-0.209.1/src/validator.rs +1633 -0
  229. data/ext/cargo-vendor/wasmprinter-0.209.1/.cargo-checksum.json +1 -0
  230. data/ext/cargo-vendor/wasmprinter-0.209.1/Cargo.toml +51 -0
  231. data/ext/cargo-vendor/wasmprinter-0.209.1/src/lib.rs +3225 -0
  232. data/ext/cargo-vendor/wasmprinter-0.209.1/src/operator.rs +1171 -0
  233. data/ext/cargo-vendor/wasmtime-22.0.0/.cargo-checksum.json +1 -0
  234. data/ext/cargo-vendor/wasmtime-22.0.0/Cargo.toml +387 -0
  235. data/ext/cargo-vendor/wasmtime-22.0.0/build.rs +42 -0
  236. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile/runtime.rs +167 -0
  237. data/ext/cargo-vendor/wasmtime-22.0.0/src/compile.rs +917 -0
  238. data/ext/cargo-vendor/wasmtime-22.0.0/src/config.rs +2943 -0
  239. data/ext/cargo-vendor/wasmtime-22.0.0/src/engine/serialization.rs +890 -0
  240. data/ext/cargo-vendor/wasmtime-22.0.0/src/lib.rs +389 -0
  241. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/jitdump.rs +67 -0
  242. data/ext/cargo-vendor/wasmtime-22.0.0/src/profiling_agent/perfmap.rs +48 -0
  243. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/code.rs +102 -0
  244. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/code_memory.rs +338 -0
  245. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_0_hello_world.rs +9 -0
  246. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_1_world_imports.rs +17 -0
  247. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_2_world_exports.rs +18 -0
  248. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_3_interface_imports.rs +20 -0
  249. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_4_imported_resources.rs +45 -0
  250. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_5_all_world_export_kinds.rs +29 -0
  251. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/_6_exported_resources.rs +26 -0
  252. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/bindgen_examples/mod.rs +489 -0
  253. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/component.rs +656 -0
  254. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func/typed.rs +2498 -0
  255. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/func.rs +689 -0
  256. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/instance.rs +810 -0
  257. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/linker.rs +854 -0
  258. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/matching.rs +217 -0
  259. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/mod.rs +657 -0
  260. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/resource_table.rs +355 -0
  261. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/component/types.rs +897 -0
  262. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/debug.rs +166 -0
  263. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals/global.rs +310 -0
  264. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/externals/table.rs +481 -0
  265. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/func/typed.rs +780 -0
  266. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/func.rs +2564 -0
  267. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/anyref.rs +410 -0
  268. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/externref.rs +592 -0
  269. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/enabled/i31.rs +299 -0
  270. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc/noextern.rs +154 -0
  271. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/gc.rs +92 -0
  272. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/instance.rs +992 -0
  273. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/instantiate.rs +337 -0
  274. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/linker.rs +1499 -0
  275. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/module/registry.rs +353 -0
  276. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/module.rs +1322 -0
  277. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store/func_refs.rs +90 -0
  278. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/store.rs +2824 -0
  279. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/func.rs +94 -0
  280. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/trampoline/memory.rs +287 -0
  281. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/type_registry.rs +1015 -0
  282. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/types.rs +2580 -0
  283. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/v128.rs +116 -0
  284. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/values.rs +966 -0
  285. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component/resources.rs +352 -0
  286. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/component.rs +857 -0
  287. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/cow.rs +972 -0
  288. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/export.rs +108 -0
  289. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/gc/gc_ref.rs +491 -0
  290. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/on_demand.rs +220 -0
  291. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +194 -0
  292. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +94 -0
  293. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +78 -0
  294. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +707 -0
  295. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +975 -0
  296. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/table_pool.rs +245 -0
  297. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +278 -0
  298. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator/pooling.rs +794 -0
  299. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance/allocator.rs +801 -0
  300. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/instance.rs +1514 -0
  301. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/memory.rs +736 -0
  302. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/capi.rs +200 -0
  303. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/custom/vm.rs +105 -0
  304. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/miri/vm.rs +59 -0
  305. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/mod.rs +36 -0
  306. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/signals.rs +407 -0
  307. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/unix/vm.rs +190 -0
  308. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/sys/windows/vm.rs +75 -0
  309. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/table.rs +899 -0
  310. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/traphandlers.rs +768 -0
  311. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/vmcontext/vm_host_func_context.rs +79 -0
  312. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm/vmcontext.rs +1302 -0
  313. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime/vm.rs +277 -0
  314. data/ext/cargo-vendor/wasmtime-22.0.0/src/runtime.rs +113 -0
  315. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/.cargo-checksum.json +1 -0
  316. data/ext/cargo-vendor/wasmtime-asm-macros-22.0.0/Cargo.toml +22 -0
  317. data/ext/cargo-vendor/wasmtime-cache-22.0.0/.cargo-checksum.json +1 -0
  318. data/ext/cargo-vendor/wasmtime-cache-22.0.0/Cargo.toml +89 -0
  319. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/config.rs +584 -0
  320. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/lib.rs +235 -0
  321. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/tests.rs +91 -0
  322. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/worker/tests.rs +758 -0
  323. data/ext/cargo-vendor/wasmtime-cache-22.0.0/src/worker.rs +890 -0
  324. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/.cargo-checksum.json +1 -0
  325. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/Cargo.toml +86 -0
  326. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/src/bindgen.rs +493 -0
  327. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/src/component.rs +1330 -0
  328. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/codegen.rs +651 -0
  329. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/char.rs +198 -0
  330. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/char_async.rs +215 -0
  331. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/conventions.rs +586 -0
  332. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/conventions_async.rs +631 -0
  333. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/dead-code.rs +165 -0
  334. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/dead-code_async.rs +178 -0
  335. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/direct-import.rs +91 -0
  336. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/direct-import_async.rs +97 -0
  337. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/empty.rs +45 -0
  338. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/empty_async.rs +45 -0
  339. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/flags.rs +637 -0
  340. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/flags_async.rs +679 -0
  341. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/floats.rs +255 -0
  342. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/floats_async.rs +282 -0
  343. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/function-new.rs +59 -0
  344. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/function-new_async.rs +62 -0
  345. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/integers.rs +722 -0
  346. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/integers_async.rs +819 -0
  347. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/lists.rs +1743 -0
  348. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/lists_async.rs +1927 -0
  349. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/many-arguments.rs +543 -0
  350. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/many-arguments_async.rs +561 -0
  351. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multi-return.rs +270 -0
  352. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multi-return_async.rs +298 -0
  353. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multiversion.rs +251 -0
  354. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/multiversion_async.rs +270 -0
  355. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/records.rs +815 -0
  356. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/records_async.rs +877 -0
  357. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/rename.rs +154 -0
  358. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/rename_async.rs +167 -0
  359. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-export.rs +467 -0
  360. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-export_async.rs +516 -0
  361. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-import.rs +1014 -0
  362. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/resources-import_async.rs +1086 -0
  363. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/share-types.rs +249 -0
  364. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/share-types_async.rs +265 -0
  365. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-functions.rs +313 -0
  366. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-functions_async.rs +347 -0
  367. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-lists.rs +350 -0
  368. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-lists_async.rs +381 -0
  369. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-wasi.rs +216 -0
  370. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/simple-wasi_async.rs +229 -0
  371. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/small-anonymous.rs +275 -0
  372. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/small-anonymous_async.rs +287 -0
  373. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-default.rs +59 -0
  374. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-default_async.rs +62 -0
  375. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-export.rs +86 -0
  376. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke-export_async.rs +89 -0
  377. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke.rs +104 -0
  378. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/smoke_async.rs +111 -0
  379. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/strings.rs +247 -0
  380. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/strings_async.rs +269 -0
  381. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/unversioned-foo.rs +136 -0
  382. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/unversioned-foo_async.rs +143 -0
  383. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/use-paths.rs +288 -0
  384. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/use-paths_async.rs +314 -0
  385. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/variants.rs +1750 -0
  386. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/variants_async.rs +1867 -0
  387. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/wat.rs +84 -0
  388. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/wat_async.rs +84 -0
  389. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/worlds-with-types.rs +138 -0
  390. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded/worlds-with-types_async.rs +148 -0
  391. data/ext/cargo-vendor/wasmtime-component-macro-22.0.0/tests/expanded.rs +65 -0
  392. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/.cargo-checksum.json +1 -0
  393. data/ext/cargo-vendor/wasmtime-component-util-22.0.0/Cargo.toml +25 -0
  394. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/.cargo-checksum.json +1 -0
  395. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/Cargo.toml +115 -0
  396. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/compiler/component.rs +957 -0
  397. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/compiler.rs +1067 -0
  398. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/address_transform.rs +783 -0
  399. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/mod.rs +256 -0
  400. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/simulate.rs +411 -0
  401. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/unit.rs +529 -0
  402. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/transform/utils.rs +186 -0
  403. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/debug/write_debuginfo.rs +196 -0
  404. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/func_environ.rs +2910 -0
  405. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/gc/enabled.rs +648 -0
  406. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/lib.rs +462 -0
  407. data/ext/cargo-vendor/wasmtime-cranelift-22.0.0/src/obj.rs +545 -0
  408. data/ext/cargo-vendor/wasmtime-environ-22.0.0/.cargo-checksum.json +1 -0
  409. data/ext/cargo-vendor/wasmtime-environ-22.0.0/Cargo.lock +774 -0
  410. data/ext/cargo-vendor/wasmtime-environ-22.0.0/Cargo.toml +161 -0
  411. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/address_map.rs +73 -0
  412. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/mod.rs +374 -0
  413. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_artifacts.rs +315 -0
  414. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_environ.rs +1348 -0
  415. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/compile/module_types.rs +455 -0
  416. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/artifacts.rs +68 -0
  417. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/info.rs +672 -0
  418. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/translate/adapt.rs +455 -0
  419. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/translate.rs +985 -0
  420. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types.rs +1038 -0
  421. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types_builder/resources.rs +233 -0
  422. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/component/types_builder.rs +1004 -0
  423. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/trampoline.rs +3234 -0
  424. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact/transcode.rs +90 -0
  425. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/fact.rs +714 -0
  426. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/lib.rs +151 -0
  427. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module.rs +704 -0
  428. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module_artifacts.rs +144 -0
  429. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/module_types.rs +139 -0
  430. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/ref_bits.rs +36 -0
  431. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/tunables.rs +175 -0
  432. data/ext/cargo-vendor/wasmtime-environ-22.0.0/src/vmoffsets.rs +989 -0
  433. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/.cargo-checksum.json +1 -0
  434. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/Cargo.toml +65 -0
  435. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/build.rs +39 -0
  436. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/lib.rs +340 -0
  437. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/unix.rs +494 -0
  438. data/ext/cargo-vendor/wasmtime-fiber-22.0.0/src/windows.rs +170 -0
  439. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/.cargo-checksum.json +1 -0
  440. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/Cargo.toml +68 -0
  441. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/src/gdb_jit_int.rs +130 -0
  442. data/ext/cargo-vendor/wasmtime-jit-debug-22.0.0/src/perf_jitdump.rs +293 -0
  443. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/.cargo-checksum.json +1 -0
  444. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/Cargo.toml +52 -0
  445. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-22.0.0/src/libc.rs +164 -0
  446. data/ext/cargo-vendor/wasmtime-slab-22.0.0/.cargo-checksum.json +1 -0
  447. data/ext/cargo-vendor/wasmtime-slab-22.0.0/Cargo.toml +21 -0
  448. data/ext/cargo-vendor/wasmtime-slab-22.0.0/src/lib.rs +498 -0
  449. data/ext/cargo-vendor/wasmtime-types-22.0.0/.cargo-checksum.json +1 -0
  450. data/ext/cargo-vendor/wasmtime-types-22.0.0/Cargo.toml +56 -0
  451. data/ext/cargo-vendor/wasmtime-types-22.0.0/src/lib.rs +1737 -0
  452. data/ext/cargo-vendor/wasmtime-versioned-export-macros-22.0.0/.cargo-checksum.json +1 -0
  453. data/ext/cargo-vendor/wasmtime-versioned-export-macros-22.0.0/Cargo.toml +32 -0
  454. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/.cargo-checksum.json +1 -0
  455. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/Cargo.toml +201 -0
  456. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/bindings.rs +289 -0
  457. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/ctx.rs +704 -0
  458. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/filesystem.rs +446 -0
  459. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/clocks.rs +109 -0
  460. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/env.rs +18 -0
  461. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/exit.rs +14 -0
  462. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/filesystem/sync.rs +525 -0
  463. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/filesystem.rs +1091 -0
  464. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/instance_network.rs +18 -0
  465. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/io.rs +388 -0
  466. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/network.rs +545 -0
  467. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/random.rs +45 -0
  468. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/tcp.rs +547 -0
  469. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/tcp_create_socket.rs +18 -0
  470. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/udp.rs +762 -0
  471. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/host/udp_create_socket.rs +18 -0
  472. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/ip_name_lookup.rs +132 -0
  473. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/lib.rs +417 -0
  474. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/network.rs +113 -0
  475. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/pipe.rs +826 -0
  476. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/poll.rs +245 -0
  477. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/preview0.rs +983 -0
  478. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/preview1.rs +2801 -0
  479. data/ext/cargo-vendor/wasmtime-wasi-22.0.0/src/stdio.rs +533 -0
  480. data/ext/cargo-vendor/wasmtime-winch-22.0.0/.cargo-checksum.json +1 -0
  481. data/ext/cargo-vendor/wasmtime-winch-22.0.0/Cargo.toml +82 -0
  482. data/ext/cargo-vendor/wasmtime-winch-22.0.0/src/compiler.rs +239 -0
  483. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/.cargo-checksum.json +1 -0
  484. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/Cargo.toml +47 -0
  485. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/lib.rs +2639 -0
  486. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/rust.rs +427 -0
  487. data/ext/cargo-vendor/wasmtime-wit-bindgen-22.0.0/src/types.rs +202 -0
  488. data/ext/cargo-vendor/wiggle-22.0.0/.cargo-checksum.json +1 -0
  489. data/ext/cargo-vendor/wiggle-22.0.0/Cargo.toml +124 -0
  490. data/ext/cargo-vendor/wiggle-22.0.0/src/guest_type.rs +200 -0
  491. data/ext/cargo-vendor/wiggle-22.0.0/src/lib.rs +605 -0
  492. data/ext/cargo-vendor/wiggle-generate-22.0.0/.cargo-checksum.json +1 -0
  493. data/ext/cargo-vendor/wiggle-generate-22.0.0/Cargo.toml +67 -0
  494. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/funcs.rs +434 -0
  495. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/module_trait.rs +89 -0
  496. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/names.rs +299 -0
  497. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/flags.rs +92 -0
  498. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/handle.rs +84 -0
  499. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/mod.rs +129 -0
  500. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/record.rs +129 -0
  501. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/types/variant.rs +186 -0
  502. data/ext/cargo-vendor/wiggle-generate-22.0.0/src/wasmtime.rs +172 -0
  503. data/ext/cargo-vendor/wiggle-macro-22.0.0/.cargo-checksum.json +1 -0
  504. data/ext/cargo-vendor/wiggle-macro-22.0.0/Cargo.toml +51 -0
  505. data/ext/cargo-vendor/wiggle-macro-22.0.0/build.rs +5 -0
  506. data/ext/cargo-vendor/wiggle-macro-22.0.0/src/lib.rs +233 -0
  507. data/ext/cargo-vendor/winch-codegen-0.20.0/.cargo-checksum.json +1 -0
  508. data/ext/cargo-vendor/winch-codegen-0.20.0/Cargo.toml +77 -0
  509. data/ext/cargo-vendor/winch-codegen-0.20.0/src/abi/mod.rs +671 -0
  510. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/context.rs +536 -0
  511. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/control.rs +972 -0
  512. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/env.rs +448 -0
  513. data/ext/cargo-vendor/winch-codegen-0.20.0/src/codegen/mod.rs +882 -0
  514. data/ext/cargo-vendor/winch-codegen-0.20.0/src/frame/mod.rs +258 -0
  515. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/asm.rs +430 -0
  516. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/masm.rs +572 -0
  517. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/aarch64/regs.rs +161 -0
  518. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/x64/asm.rs +1423 -0
  519. data/ext/cargo-vendor/winch-codegen-0.20.0/src/isa/x64/masm.rs +1120 -0
  520. data/ext/cargo-vendor/winch-codegen-0.20.0/src/masm.rs +941 -0
  521. data/ext/cargo-vendor/winch-codegen-0.20.0/src/regalloc.rs +65 -0
  522. data/ext/cargo-vendor/winch-codegen-0.20.0/src/stack.rs +439 -0
  523. data/ext/cargo-vendor/winch-codegen-0.20.0/src/visitor.rs +2149 -0
  524. data/ext/cargo-vendor/wit-parser-0.209.1/.cargo-checksum.json +1 -0
  525. data/ext/cargo-vendor/wit-parser-0.209.1/Cargo.toml +112 -0
  526. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast/resolve.rs +1524 -0
  527. data/ext/cargo-vendor/wit-parser-0.209.1/src/ast.rs +1668 -0
  528. data/ext/cargo-vendor/wit-parser-0.209.1/src/decoding.rs +1795 -0
  529. data/ext/cargo-vendor/wit-parser-0.209.1/src/lib.rs +873 -0
  530. data/ext/cargo-vendor/wit-parser-0.209.1/src/live.rs +126 -0
  531. data/ext/cargo-vendor/wit-parser-0.209.1/src/metadata.rs +772 -0
  532. data/ext/cargo-vendor/wit-parser-0.209.1/src/resolve.rs +2498 -0
  533. data/ext/cargo-vendor/wit-parser-0.209.1/src/serde_.rs +124 -0
  534. data/ext/cargo-vendor/wit-parser-0.209.1/tests/all.rs +154 -0
  535. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/complex-include.wit.json +200 -0
  536. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/diamond1.wit.json +59 -0
  537. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/disambiguate-diamond.wit.json +115 -0
  538. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/feature-gates.wit +118 -0
  539. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/feature-gates.wit.json +288 -0
  540. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/foreign-deps-union.wit.json +410 -0
  541. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/foreign-deps.wit.json +362 -0
  542. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/ignore-files-deps.wit.json +41 -0
  543. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/import-export-overlap2.wit.json +43 -0
  544. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/include-reps.wit.json +68 -0
  545. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/kinds-of-deps.wit.json +95 -0
  546. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/many-names.wit.json +42 -0
  547. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/multi-file.wit.json +304 -0
  548. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate1.wit +8 -0
  549. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate1.wit.result +5 -0
  550. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate2.wit +8 -0
  551. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate2.wit.result +5 -0
  552. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate3.wit +6 -0
  553. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate3.wit.result +8 -0
  554. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate4.wit +8 -0
  555. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate4.wit.result +8 -0
  556. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate5.wit +11 -0
  557. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-gate5.wit.result +8 -0
  558. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since1.wit +4 -0
  559. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since1.wit.result +5 -0
  560. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since3.wit +5 -0
  561. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/bad-since3.wit.result +5 -0
  562. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/conflicting-package.wit.result +10 -0
  563. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/multiple-package-docs.wit.result +10 -0
  564. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +8 -0
  565. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/resources-return-borrow.wit.result +8 -0
  566. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow1.wit.result +8 -0
  567. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow2.wit.result +8 -0
  568. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow6.wit.result +8 -0
  569. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow7.wit.result +8 -0
  570. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/parse-fail/return-borrow8.wit.result +9 -0
  571. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/shared-types.wit.json +87 -0
  572. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/since-and-unstable.wit +89 -0
  573. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/since-and-unstable.wit.json +549 -0
  574. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/stress-export-elaborate.wit.json +1156 -0
  575. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-diamond.wit.json +124 -0
  576. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-iface-no-collide.wit.json +68 -0
  577. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import1.wit.json +81 -0
  578. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import2.wit.json +72 -0
  579. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-implicit-import3.wit.json +73 -0
  580. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-same-fields4.wit.json +82 -0
  581. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/world-top-level-resources.wit.json +237 -0
  582. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/worlds-union-dedup.wit.json +112 -0
  583. data/ext/cargo-vendor/wit-parser-0.209.1/tests/ui/worlds-with-types.wit.json +204 -0
  584. data/ext/src/ruby_api/pooling_allocation_config.rs +6 -6
  585. data/lib/wasmtime/version.rb +1 -1
  586. metadata +1525 -1459
  587. data/ext/cargo-vendor/cranelift-bforest-0.108.1/.cargo-checksum.json +0 -1
  588. data/ext/cargo-vendor/cranelift-bforest-0.108.1/Cargo.toml +0 -40
  589. data/ext/cargo-vendor/cranelift-codegen-0.108.1/.cargo-checksum.json +0 -1
  590. data/ext/cargo-vendor/cranelift-codegen-0.108.1/Cargo.toml +0 -189
  591. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/context.rs +0 -395
  592. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/dce.rs +0 -37
  593. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/dominator_tree.rs +0 -803
  594. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/egraph.rs +0 -839
  595. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/inst_predicates.rs +0 -236
  596. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ir/dfg.rs +0 -1777
  597. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ir/extfunc.rs +0 -411
  598. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ir/immediates.rs +0 -1612
  599. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ir/stackslot.rs +0 -216
  600. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ir/types.rs +0 -629
  601. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/abi.rs +0 -1580
  602. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/args.rs +0 -721
  603. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/emit.rs +0 -3846
  604. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/emit_tests.rs +0 -7902
  605. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/imms.rs +0 -1213
  606. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/mod.rs +0 -3094
  607. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/regs.rs +0 -288
  608. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/unwind/systemv.rs +0 -174
  609. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst.isle +0 -4225
  610. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/pcc.rs +0 -568
  611. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/abi.rs +0 -1051
  612. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/args.rs +0 -1938
  613. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/emit.rs +0 -2681
  614. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/emit_tests.rs +0 -2197
  615. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/encode.rs +0 -654
  616. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/imms.rs +0 -374
  617. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/mod.rs +0 -1975
  618. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/unwind/systemv.rs +0 -170
  619. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/vector.rs +0 -1144
  620. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst.isle +0 -2969
  621. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst_vector.isle +0 -1899
  622. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/lower/isle.rs +0 -625
  623. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/lower.isle +0 -2883
  624. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/mod.rs +0 -260
  625. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/abi.rs +0 -1037
  626. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/args.rs +0 -314
  627. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/emit.rs +0 -3646
  628. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/emit_tests.rs +0 -13389
  629. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/imms.rs +0 -202
  630. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/mod.rs +0 -3421
  631. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/regs.rs +0 -180
  632. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/unwind/systemv.rs +0 -212
  633. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst.isle +0 -5033
  634. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/lower.isle +0 -3995
  635. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/abi.rs +0 -1410
  636. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/args.rs +0 -2256
  637. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/emit.rs +0 -4311
  638. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/emit_state.rs +0 -74
  639. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/emit_tests.rs +0 -5171
  640. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/mod.rs +0 -2838
  641. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/regs.rs +0 -276
  642. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/unwind/systemv.rs +0 -198
  643. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst.isle +0 -5294
  644. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/lower.isle +0 -4808
  645. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/pcc.rs +0 -1014
  646. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isle_prelude.rs +0 -957
  647. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/lib.rs +0 -106
  648. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/abi.rs +0 -2506
  649. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/blockorder.rs +0 -465
  650. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/buffer.rs +0 -2512
  651. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/isle.rs +0 -903
  652. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/lower.rs +0 -1432
  653. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/mod.rs +0 -555
  654. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/reg.rs +0 -522
  655. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/valueregs.rs +0 -138
  656. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/vcode.rs +0 -1741
  657. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/opts/cprop.isle +0 -281
  658. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/opts/shifts.isle +0 -307
  659. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/prelude.isle +0 -646
  660. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/prelude_lower.isle +0 -1073
  661. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/timing.rs +0 -297
  662. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/verifier/mod.rs +0 -1957
  663. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/write.rs +0 -631
  664. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/.cargo-checksum.json +0 -1
  665. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/Cargo.toml +0 -35
  666. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/cdsl/types.rs +0 -496
  667. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/isa/riscv64.rs +0 -168
  668. data/ext/cargo-vendor/cranelift-codegen-shared-0.108.1/.cargo-checksum.json +0 -1
  669. data/ext/cargo-vendor/cranelift-codegen-shared-0.108.1/Cargo.toml +0 -22
  670. data/ext/cargo-vendor/cranelift-codegen-shared-0.108.1/src/constants.rs +0 -28
  671. data/ext/cargo-vendor/cranelift-control-0.108.1/.cargo-checksum.json +0 -1
  672. data/ext/cargo-vendor/cranelift-control-0.108.1/Cargo.toml +0 -30
  673. data/ext/cargo-vendor/cranelift-entity-0.108.1/.cargo-checksum.json +0 -1
  674. data/ext/cargo-vendor/cranelift-entity-0.108.1/Cargo.toml +0 -52
  675. data/ext/cargo-vendor/cranelift-entity-0.108.1/src/set.rs +0 -290
  676. data/ext/cargo-vendor/cranelift-frontend-0.108.1/.cargo-checksum.json +0 -1
  677. data/ext/cargo-vendor/cranelift-frontend-0.108.1/Cargo.toml +0 -67
  678. data/ext/cargo-vendor/cranelift-frontend-0.108.1/src/frontend.rs +0 -1854
  679. data/ext/cargo-vendor/cranelift-frontend-0.108.1/src/lib.rs +0 -189
  680. data/ext/cargo-vendor/cranelift-frontend-0.108.1/src/ssa.rs +0 -1328
  681. data/ext/cargo-vendor/cranelift-isle-0.108.1/.cargo-checksum.json +0 -1
  682. data/ext/cargo-vendor/cranelift-isle-0.108.1/Cargo.toml +0 -46
  683. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/sema.rs +0 -2492
  684. data/ext/cargo-vendor/cranelift-native-0.108.1/.cargo-checksum.json +0 -1
  685. data/ext/cargo-vendor/cranelift-native-0.108.1/Cargo.toml +0 -43
  686. data/ext/cargo-vendor/cranelift-native-0.108.1/src/lib.rs +0 -188
  687. data/ext/cargo-vendor/cranelift-native-0.108.1/src/riscv.rs +0 -128
  688. data/ext/cargo-vendor/cranelift-wasm-0.108.1/.cargo-checksum.json +0 -1
  689. data/ext/cargo-vendor/cranelift-wasm-0.108.1/Cargo.toml +0 -109
  690. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/code_translator.rs +0 -3687
  691. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/func_translator.rs +0 -296
  692. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/module_translator.rs +0 -128
  693. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/sections_translator.rs +0 -389
  694. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/state.rs +0 -522
  695. data/ext/cargo-vendor/object-0.33.0/.cargo-checksum.json +0 -1
  696. data/ext/cargo-vendor/object-0.33.0/CHANGELOG.md +0 -797
  697. data/ext/cargo-vendor/object-0.33.0/Cargo.toml +0 -179
  698. data/ext/cargo-vendor/object-0.33.0/README.md +0 -56
  699. data/ext/cargo-vendor/object-0.33.0/src/build/bytes.rs +0 -141
  700. data/ext/cargo-vendor/object-0.33.0/src/build/elf.rs +0 -3033
  701. data/ext/cargo-vendor/object-0.33.0/src/common.rs +0 -568
  702. data/ext/cargo-vendor/object-0.33.0/src/elf.rs +0 -6291
  703. data/ext/cargo-vendor/object-0.33.0/src/endian.rs +0 -831
  704. data/ext/cargo-vendor/object-0.33.0/src/macho.rs +0 -3309
  705. data/ext/cargo-vendor/object-0.33.0/src/pod.rs +0 -239
  706. data/ext/cargo-vendor/object-0.33.0/src/read/any.rs +0 -1328
  707. data/ext/cargo-vendor/object-0.33.0/src/read/archive.rs +0 -759
  708. data/ext/cargo-vendor/object-0.33.0/src/read/coff/comdat.rs +0 -211
  709. data/ext/cargo-vendor/object-0.33.0/src/read/coff/file.rs +0 -383
  710. data/ext/cargo-vendor/object-0.33.0/src/read/coff/relocation.rs +0 -108
  711. data/ext/cargo-vendor/object-0.33.0/src/read/coff/section.rs +0 -585
  712. data/ext/cargo-vendor/object-0.33.0/src/read/coff/symbol.rs +0 -635
  713. data/ext/cargo-vendor/object-0.33.0/src/read/elf/attributes.rs +0 -306
  714. data/ext/cargo-vendor/object-0.33.0/src/read/elf/comdat.rs +0 -162
  715. data/ext/cargo-vendor/object-0.33.0/src/read/elf/file.rs +0 -918
  716. data/ext/cargo-vendor/object-0.33.0/src/read/elf/hash.rs +0 -224
  717. data/ext/cargo-vendor/object-0.33.0/src/read/elf/note.rs +0 -271
  718. data/ext/cargo-vendor/object-0.33.0/src/read/elf/relocation.rs +0 -629
  719. data/ext/cargo-vendor/object-0.33.0/src/read/elf/section.rs +0 -1150
  720. data/ext/cargo-vendor/object-0.33.0/src/read/elf/segment.rs +0 -356
  721. data/ext/cargo-vendor/object-0.33.0/src/read/elf/symbol.rs +0 -595
  722. data/ext/cargo-vendor/object-0.33.0/src/read/elf/version.rs +0 -424
  723. data/ext/cargo-vendor/object-0.33.0/src/read/macho/dyld_cache.rs +0 -345
  724. data/ext/cargo-vendor/object-0.33.0/src/read/macho/file.rs +0 -783
  725. data/ext/cargo-vendor/object-0.33.0/src/read/macho/load_command.rs +0 -386
  726. data/ext/cargo-vendor/object-0.33.0/src/read/macho/section.rs +0 -389
  727. data/ext/cargo-vendor/object-0.33.0/src/read/macho/segment.rs +0 -303
  728. data/ext/cargo-vendor/object-0.33.0/src/read/macho/symbol.rs +0 -492
  729. data/ext/cargo-vendor/object-0.33.0/src/read/mod.rs +0 -880
  730. data/ext/cargo-vendor/object-0.33.0/src/read/pe/file.rs +0 -1053
  731. data/ext/cargo-vendor/object-0.33.0/src/read/pe/import.rs +0 -339
  732. data/ext/cargo-vendor/object-0.33.0/src/read/pe/relocation.rs +0 -92
  733. data/ext/cargo-vendor/object-0.33.0/src/read/pe/section.rs +0 -440
  734. data/ext/cargo-vendor/object-0.33.0/src/read/read_cache.rs +0 -213
  735. data/ext/cargo-vendor/object-0.33.0/src/read/traits.rs +0 -551
  736. data/ext/cargo-vendor/object-0.33.0/src/read/wasm.rs +0 -966
  737. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/file.rs +0 -697
  738. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/relocation.rs +0 -134
  739. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/section.rs +0 -433
  740. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/symbol.rs +0 -784
  741. data/ext/cargo-vendor/object-0.33.0/src/write/coff/object.rs +0 -678
  742. data/ext/cargo-vendor/object-0.33.0/src/write/coff/writer.rs +0 -518
  743. data/ext/cargo-vendor/object-0.33.0/src/write/elf/object.rs +0 -885
  744. data/ext/cargo-vendor/object-0.33.0/src/write/elf/writer.rs +0 -2309
  745. data/ext/cargo-vendor/object-0.33.0/src/write/macho.rs +0 -1107
  746. data/ext/cargo-vendor/object-0.33.0/src/write/mod.rs +0 -990
  747. data/ext/cargo-vendor/object-0.33.0/src/write/pe.rs +0 -847
  748. data/ext/cargo-vendor/object-0.33.0/src/write/xcoff.rs +0 -589
  749. data/ext/cargo-vendor/object-0.33.0/tests/integration.rs +0 -2
  750. data/ext/cargo-vendor/object-0.33.0/tests/read/mod.rs +0 -4
  751. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/bss.rs +0 -255
  752. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/comdat.rs +0 -225
  753. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/common.rs +0 -245
  754. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/elf.rs +0 -289
  755. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/mod.rs +0 -704
  756. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/section_flags.rs +0 -90
  757. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/tls.rs +0 -316
  758. data/ext/cargo-vendor/wasi-common-21.0.1/.cargo-checksum.json +0 -1
  759. data/ext/cargo-vendor/wasi-common-21.0.1/Cargo.toml +0 -223
  760. data/ext/cargo-vendor/wasi-common-21.0.1/src/snapshots/preview_0.rs +0 -1145
  761. data/ext/cargo-vendor/wasi-common-21.0.1/src/snapshots/preview_1.rs +0 -1497
  762. data/ext/cargo-vendor/wasi-common-21.0.1/src/string_array.rs +0 -74
  763. data/ext/cargo-vendor/wasi-common-21.0.1/src/sync/sched/windows.rs +0 -221
  764. data/ext/cargo-vendor/wasi-common-21.0.1/src/tokio/file.rs +0 -247
  765. data/ext/cargo-vendor/wasm-encoder-0.207.0/.cargo-checksum.json +0 -1
  766. data/ext/cargo-vendor/wasm-encoder-0.207.0/Cargo.toml +0 -45
  767. data/ext/cargo-vendor/wasm-encoder-0.207.0/README.md +0 -80
  768. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/aliases.rs +0 -160
  769. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/builder.rs +0 -455
  770. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/canonicals.rs +0 -159
  771. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/components.rs +0 -29
  772. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/exports.rs +0 -124
  773. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/imports.rs +0 -175
  774. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/instances.rs +0 -200
  775. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/modules.rs +0 -29
  776. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/names.rs +0 -149
  777. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/start.rs +0 -52
  778. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component/types.rs +0 -792
  779. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/component.rs +0 -168
  780. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/code.rs +0 -3502
  781. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/custom.rs +0 -73
  782. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/data.rs +0 -186
  783. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/dump.rs +0 -627
  784. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/elements.rs +0 -221
  785. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/exports.rs +0 -98
  786. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/functions.rs +0 -63
  787. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/globals.rs +0 -112
  788. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/imports.rs +0 -157
  789. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/linking.rs +0 -263
  790. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/memories.rs +0 -128
  791. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/names.rs +0 -298
  792. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/producers.rs +0 -180
  793. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/start.rs +0 -39
  794. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/tables.rs +0 -134
  795. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/tags.rs +0 -104
  796. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/types.rs +0 -678
  797. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core.rs +0 -168
  798. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/lib.rs +0 -215
  799. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/raw.rs +0 -30
  800. data/ext/cargo-vendor/wasmparser-0.207.0/.cargo-checksum.json +0 -1
  801. data/ext/cargo-vendor/wasmparser-0.207.0/Cargo.lock +0 -659
  802. data/ext/cargo-vendor/wasmparser-0.207.0/Cargo.toml +0 -95
  803. data/ext/cargo-vendor/wasmparser-0.207.0/src/binary_reader.rs +0 -1867
  804. data/ext/cargo-vendor/wasmparser-0.207.0/src/lib.rs +0 -805
  805. data/ext/cargo-vendor/wasmparser-0.207.0/src/limits.rs +0 -78
  806. data/ext/cargo-vendor/wasmparser-0.207.0/src/map.rs +0 -137
  807. data/ext/cargo-vendor/wasmparser-0.207.0/src/parser.rs +0 -1636
  808. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/imports.rs +0 -129
  809. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/instances.rs +0 -164
  810. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/names.rs +0 -102
  811. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/types.rs +0 -551
  812. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/branch_hinting.rs +0 -59
  813. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/code.rs +0 -146
  814. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/coredumps.rs +0 -244
  815. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/custom.rs +0 -64
  816. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/data.rs +0 -96
  817. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/elements.rs +0 -152
  818. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/globals.rs +0 -51
  819. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/init.rs +0 -51
  820. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/linking.rs +0 -450
  821. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/names.rs +0 -159
  822. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/operators.rs +0 -430
  823. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/producers.rs +0 -83
  824. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/reloc.rs +0 -301
  825. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/types.rs +0 -1773
  826. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers.rs +0 -316
  827. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/component.rs +0 -3242
  828. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/core/canonical.rs +0 -233
  829. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/core.rs +0 -1450
  830. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/func.rs +0 -331
  831. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/names.rs +0 -947
  832. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/operators.rs +0 -4117
  833. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/types.rs +0 -4492
  834. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator.rs +0 -1786
  835. data/ext/cargo-vendor/wasmprinter-0.207.0/.cargo-checksum.json +0 -1
  836. data/ext/cargo-vendor/wasmprinter-0.207.0/Cargo.toml +0 -50
  837. data/ext/cargo-vendor/wasmprinter-0.207.0/src/lib.rs +0 -3226
  838. data/ext/cargo-vendor/wasmprinter-0.207.0/src/operator.rs +0 -1164
  839. data/ext/cargo-vendor/wasmtime-21.0.1/.cargo-checksum.json +0 -1
  840. data/ext/cargo-vendor/wasmtime-21.0.1/Cargo.toml +0 -386
  841. data/ext/cargo-vendor/wasmtime-21.0.1/build.rs +0 -37
  842. data/ext/cargo-vendor/wasmtime-21.0.1/src/compile/runtime.rs +0 -176
  843. data/ext/cargo-vendor/wasmtime-21.0.1/src/compile.rs +0 -910
  844. data/ext/cargo-vendor/wasmtime-21.0.1/src/config.rs +0 -2904
  845. data/ext/cargo-vendor/wasmtime-21.0.1/src/engine/serialization.rs +0 -887
  846. data/ext/cargo-vendor/wasmtime-21.0.1/src/lib.rs +0 -328
  847. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent/jitdump.rs +0 -67
  848. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent/perfmap.rs +0 -48
  849. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/code.rs +0 -102
  850. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/code_memory.rs +0 -337
  851. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/component.rs +0 -661
  852. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func/typed.rs +0 -2498
  853. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func.rs +0 -746
  854. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/instance.rs +0 -814
  855. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/linker.rs +0 -783
  856. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/matching.rs +0 -217
  857. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/mod.rs +0 -783
  858. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/resource_table.rs +0 -355
  859. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/types.rs +0 -892
  860. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/debug.rs +0 -166
  861. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/externals/global.rs +0 -310
  862. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/externals/table.rs +0 -477
  863. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/func/typed.rs +0 -899
  864. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/func.rs +0 -2627
  865. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/anyref.rs +0 -473
  866. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/externref.rs +0 -650
  867. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/i31.rs +0 -346
  868. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc.rs +0 -89
  869. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/instance.rs +0 -992
  870. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/instantiate.rs +0 -346
  871. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/linker.rs +0 -1506
  872. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/module/registry.rs +0 -353
  873. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/module.rs +0 -1295
  874. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store/func_refs.rs +0 -90
  875. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store.rs +0 -2820
  876. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/func.rs +0 -139
  877. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/memory.rs +0 -287
  878. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/type_registry.rs +0 -807
  879. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/types.rs +0 -2239
  880. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/v128.rs +0 -131
  881. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/values.rs +0 -966
  882. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/component/resources.rs +0 -352
  883. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/component.rs +0 -860
  884. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/cow.rs +0 -893
  885. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/export.rs +0 -108
  886. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/gc_ref.rs +0 -491
  887. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/on_demand.rs +0 -218
  888. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +0 -93
  889. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +0 -66
  890. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +0 -705
  891. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +0 -1000
  892. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/table_pool.rs +0 -233
  893. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +0 -245
  894. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling.rs +0 -656
  895. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator.rs +0 -798
  896. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance.rs +0 -1519
  897. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/memory.rs +0 -744
  898. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/capi.rs +0 -200
  899. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/vm.rs +0 -109
  900. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/miri/vm.rs +0 -63
  901. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/mod.rs +0 -25
  902. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/signals.rs +0 -401
  903. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/vm.rs +0 -215
  904. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/windows/vm.rs +0 -79
  905. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/table.rs +0 -847
  906. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers.rs +0 -768
  907. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/vmcontext/vm_host_func_context.rs +0 -138
  908. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/vmcontext.rs +0 -1337
  909. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm.rs +0 -287
  910. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime.rs +0 -110
  911. data/ext/cargo-vendor/wasmtime-asm-macros-21.0.1/.cargo-checksum.json +0 -1
  912. data/ext/cargo-vendor/wasmtime-asm-macros-21.0.1/Cargo.toml +0 -22
  913. data/ext/cargo-vendor/wasmtime-cache-21.0.1/.cargo-checksum.json +0 -1
  914. data/ext/cargo-vendor/wasmtime-cache-21.0.1/Cargo.toml +0 -88
  915. data/ext/cargo-vendor/wasmtime-cache-21.0.1/src/config.rs +0 -584
  916. data/ext/cargo-vendor/wasmtime-cache-21.0.1/src/lib.rs +0 -235
  917. data/ext/cargo-vendor/wasmtime-cache-21.0.1/src/tests.rs +0 -91
  918. data/ext/cargo-vendor/wasmtime-cache-21.0.1/src/worker/tests.rs +0 -758
  919. data/ext/cargo-vendor/wasmtime-cache-21.0.1/src/worker.rs +0 -890
  920. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/.cargo-checksum.json +0 -1
  921. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/Cargo.toml +0 -79
  922. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/src/bindgen.rs +0 -436
  923. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/src/component.rs +0 -1295
  924. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/tests/codegen.rs +0 -576
  925. data/ext/cargo-vendor/wasmtime-component-util-21.0.1/.cargo-checksum.json +0 -1
  926. data/ext/cargo-vendor/wasmtime-component-util-21.0.1/Cargo.toml +0 -25
  927. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/.cargo-checksum.json +0 -1
  928. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/Cargo.toml +0 -114
  929. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/compiler/component.rs +0 -968
  930. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/compiler.rs +0 -1383
  931. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/address_transform.rs +0 -783
  932. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/mod.rs +0 -256
  933. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/simulate.rs +0 -411
  934. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/unit.rs +0 -529
  935. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/utils.rs +0 -186
  936. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/write_debuginfo.rs +0 -196
  937. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/func_environ.rs +0 -2888
  938. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/gc/enabled.rs +0 -648
  939. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/lib.rs +0 -511
  940. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/obj.rs +0 -545
  941. data/ext/cargo-vendor/wasmtime-environ-21.0.1/.cargo-checksum.json +0 -1
  942. data/ext/cargo-vendor/wasmtime-environ-21.0.1/Cargo.lock +0 -772
  943. data/ext/cargo-vendor/wasmtime-environ-21.0.1/Cargo.toml +0 -154
  944. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/address_map.rs +0 -73
  945. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/mod.rs +0 -419
  946. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_artifacts.rs +0 -315
  947. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_environ.rs +0 -1337
  948. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_types.rs +0 -362
  949. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/artifacts.rs +0 -72
  950. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/info.rs +0 -672
  951. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/translate/adapt.rs +0 -455
  952. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/translate.rs +0 -978
  953. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types.rs +0 -1029
  954. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types_builder/resources.rs +0 -233
  955. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types_builder.rs +0 -997
  956. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/trampoline.rs +0 -3234
  957. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/transcode.rs +0 -90
  958. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact.rs +0 -714
  959. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/lib.rs +0 -161
  960. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module.rs +0 -697
  961. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module_artifacts.rs +0 -146
  962. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module_types.rs +0 -91
  963. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/ref_bits.rs +0 -36
  964. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/tunables.rs +0 -168
  965. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/vmoffsets.rs +0 -1015
  966. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/.cargo-checksum.json +0 -1
  967. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/Cargo.toml +0 -64
  968. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/build.rs +0 -38
  969. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/lib.rs +0 -328
  970. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/unix.rs +0 -490
  971. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/windows.rs +0 -166
  972. data/ext/cargo-vendor/wasmtime-jit-debug-21.0.1/.cargo-checksum.json +0 -1
  973. data/ext/cargo-vendor/wasmtime-jit-debug-21.0.1/Cargo.toml +0 -67
  974. data/ext/cargo-vendor/wasmtime-jit-debug-21.0.1/src/gdb_jit_int.rs +0 -130
  975. data/ext/cargo-vendor/wasmtime-jit-debug-21.0.1/src/perf_jitdump.rs +0 -293
  976. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/.cargo-checksum.json +0 -1
  977. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/Cargo.toml +0 -51
  978. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/libc.rs +0 -163
  979. data/ext/cargo-vendor/wasmtime-slab-21.0.1/.cargo-checksum.json +0 -1
  980. data/ext/cargo-vendor/wasmtime-slab-21.0.1/Cargo.toml +0 -21
  981. data/ext/cargo-vendor/wasmtime-slab-21.0.1/src/lib.rs +0 -498
  982. data/ext/cargo-vendor/wasmtime-types-21.0.1/.cargo-checksum.json +0 -1
  983. data/ext/cargo-vendor/wasmtime-types-21.0.1/Cargo.toml +0 -55
  984. data/ext/cargo-vendor/wasmtime-types-21.0.1/src/lib.rs +0 -1572
  985. data/ext/cargo-vendor/wasmtime-versioned-export-macros-21.0.1/.cargo-checksum.json +0 -1
  986. data/ext/cargo-vendor/wasmtime-versioned-export-macros-21.0.1/Cargo.toml +0 -32
  987. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/.cargo-checksum.json +0 -1
  988. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/Cargo.toml +0 -200
  989. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/bindings.rs +0 -280
  990. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/ctx.rs +0 -667
  991. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/filesystem.rs +0 -446
  992. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/clocks.rs +0 -103
  993. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/env.rs +0 -15
  994. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/exit.rs +0 -11
  995. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/filesystem/sync.rs +0 -518
  996. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/filesystem.rs +0 -1079
  997. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/instance_network.rs +0 -15
  998. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/io.rs +0 -367
  999. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/network.rs +0 -539
  1000. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/random.rs +0 -36
  1001. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/tcp.rs +0 -306
  1002. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/tcp_create_socket.rs +0 -15
  1003. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/udp.rs +0 -532
  1004. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/host/udp_create_socket.rs +0 -15
  1005. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/ip_name_lookup.rs +0 -126
  1006. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/lib.rs +0 -426
  1007. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/network.rs +0 -107
  1008. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/pipe.rs +0 -826
  1009. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/poll.rs +0 -233
  1010. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/preview0.rs +0 -877
  1011. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/preview1.rs +0 -2660
  1012. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/stdio.rs +0 -507
  1013. data/ext/cargo-vendor/wasmtime-winch-21.0.1/.cargo-checksum.json +0 -1
  1014. data/ext/cargo-vendor/wasmtime-winch-21.0.1/Cargo.toml +0 -81
  1015. data/ext/cargo-vendor/wasmtime-winch-21.0.1/src/compiler.rs +0 -261
  1016. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/.cargo-checksum.json +0 -1
  1017. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/Cargo.toml +0 -46
  1018. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/src/lib.rs +0 -2541
  1019. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/src/rust.rs +0 -421
  1020. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/src/types.rs +0 -202
  1021. data/ext/cargo-vendor/wiggle-21.0.1/.cargo-checksum.json +0 -1
  1022. data/ext/cargo-vendor/wiggle-21.0.1/Cargo.toml +0 -123
  1023. data/ext/cargo-vendor/wiggle-21.0.1/src/borrow.rs +0 -113
  1024. data/ext/cargo-vendor/wiggle-21.0.1/src/guest_type.rs +0 -237
  1025. data/ext/cargo-vendor/wiggle-21.0.1/src/lib.rs +0 -1184
  1026. data/ext/cargo-vendor/wiggle-21.0.1/src/wasmtime.rs +0 -97
  1027. data/ext/cargo-vendor/wiggle-generate-21.0.1/.cargo-checksum.json +0 -1
  1028. data/ext/cargo-vendor/wiggle-generate-21.0.1/Cargo.toml +0 -66
  1029. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/funcs.rs +0 -435
  1030. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/module_trait.rs +0 -102
  1031. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/names.rs +0 -303
  1032. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/types/flags.rs +0 -92
  1033. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/types/handle.rs +0 -84
  1034. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/types/mod.rs +0 -129
  1035. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/types/record.rs +0 -132
  1036. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/types/variant.rs +0 -191
  1037. data/ext/cargo-vendor/wiggle-generate-21.0.1/src/wasmtime.rs +0 -170
  1038. data/ext/cargo-vendor/wiggle-macro-21.0.1/.cargo-checksum.json +0 -1
  1039. data/ext/cargo-vendor/wiggle-macro-21.0.1/Cargo.toml +0 -55
  1040. data/ext/cargo-vendor/wiggle-macro-21.0.1/LICENSE +0 -220
  1041. data/ext/cargo-vendor/wiggle-macro-21.0.1/src/lib.rs +0 -210
  1042. data/ext/cargo-vendor/winch-codegen-0.19.1/.cargo-checksum.json +0 -1
  1043. data/ext/cargo-vendor/winch-codegen-0.19.1/Cargo.toml +0 -76
  1044. data/ext/cargo-vendor/winch-codegen-0.19.1/src/abi/mod.rs +0 -671
  1045. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/context.rs +0 -534
  1046. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/control.rs +0 -972
  1047. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/env.rs +0 -440
  1048. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/mod.rs +0 -882
  1049. data/ext/cargo-vendor/winch-codegen-0.19.1/src/frame/mod.rs +0 -258
  1050. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/asm.rs +0 -380
  1051. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/masm.rs +0 -566
  1052. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/regs.rs +0 -161
  1053. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/x64/asm.rs +0 -1423
  1054. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/x64/masm.rs +0 -1120
  1055. data/ext/cargo-vendor/winch-codegen-0.19.1/src/masm.rs +0 -941
  1056. data/ext/cargo-vendor/winch-codegen-0.19.1/src/regalloc.rs +0 -65
  1057. data/ext/cargo-vendor/winch-codegen-0.19.1/src/stack.rs +0 -439
  1058. data/ext/cargo-vendor/winch-codegen-0.19.1/src/visitor.rs +0 -2144
  1059. data/ext/cargo-vendor/wit-parser-0.207.0/.cargo-checksum.json +0 -1
  1060. data/ext/cargo-vendor/wit-parser-0.207.0/Cargo.toml +0 -109
  1061. data/ext/cargo-vendor/wit-parser-0.207.0/src/ast/resolve.rs +0 -1442
  1062. data/ext/cargo-vendor/wit-parser-0.207.0/src/ast.rs +0 -1348
  1063. data/ext/cargo-vendor/wit-parser-0.207.0/src/decoding.rs +0 -1764
  1064. data/ext/cargo-vendor/wit-parser-0.207.0/src/docs.rs +0 -389
  1065. data/ext/cargo-vendor/wit-parser-0.207.0/src/lib.rs +0 -777
  1066. data/ext/cargo-vendor/wit-parser-0.207.0/src/live.rs +0 -126
  1067. data/ext/cargo-vendor/wit-parser-0.207.0/src/resolve.rs +0 -2337
  1068. data/ext/cargo-vendor/wit-parser-0.207.0/src/serde_.rs +0 -108
  1069. data/ext/cargo-vendor/wit-parser-0.207.0/tests/all.rs +0 -153
  1070. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/complex-include.wit.json +0 -168
  1071. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/diamond1.wit.json +0 -55
  1072. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/disambiguate-diamond.wit.json +0 -107
  1073. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/foreign-deps-union.wit.json +0 -380
  1074. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/foreign-deps.wit.json +0 -344
  1075. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/ignore-files-deps.wit.json +0 -39
  1076. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/import-export-overlap2.wit.json +0 -41
  1077. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/include-reps.wit.json +0 -60
  1078. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/kinds-of-deps.wit.json +0 -87
  1079. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/many-names.wit.json +0 -40
  1080. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/multi-file.wit.json +0 -298
  1081. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/conflicting-package.wit.result +0 -9
  1082. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/multiple-package-docs.wit.result +0 -9
  1083. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +0 -5
  1084. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/resources-return-borrow.wit.result +0 -5
  1085. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow1.wit.result +0 -5
  1086. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow2.wit.result +0 -5
  1087. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow6.wit.result +0 -5
  1088. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow7.wit.result +0 -5
  1089. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow8.wit.result +0 -8
  1090. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/shared-types.wit.json +0 -83
  1091. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/stress-export-elaborate.wit.json +0 -1136
  1092. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-diamond.wit.json +0 -118
  1093. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-iface-no-collide.wit.json +0 -66
  1094. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-implicit-import1.wit.json +0 -75
  1095. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-implicit-import2.wit.json +0 -70
  1096. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-implicit-import3.wit.json +0 -71
  1097. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-same-fields4.wit.json +0 -76
  1098. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-top-level-resources.wit.json +0 -231
  1099. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/worlds-union-dedup.wit.json +0 -100
  1100. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/worlds-with-types.wit.json +0 -202
  1101. /data/ext/cargo-vendor/{cranelift-bforest-0.108.1 → cranelift-bforest-0.109.0}/LICENSE +0 -0
  1102. /data/ext/cargo-vendor/{cranelift-bforest-0.108.1 → cranelift-bforest-0.109.0}/README.md +0 -0
  1103. /data/ext/cargo-vendor/{cranelift-bforest-0.108.1 → cranelift-bforest-0.109.0}/src/lib.rs +0 -0
  1104. /data/ext/cargo-vendor/{cranelift-bforest-0.108.1 → cranelift-bforest-0.109.0}/src/map.rs +0 -0
  1105. /data/ext/cargo-vendor/{cranelift-bforest-0.108.1 → cranelift-bforest-0.109.0}/src/node.rs +0 -0
  1106. /data/ext/cargo-vendor/{cranelift-bforest-0.108.1 → cranelift-bforest-0.109.0}/src/path.rs +0 -0
  1107. /data/ext/cargo-vendor/{cranelift-bforest-0.108.1 → cranelift-bforest-0.109.0}/src/pool.rs +0 -0
  1108. /data/ext/cargo-vendor/{cranelift-bforest-0.108.1 → cranelift-bforest-0.109.0}/src/set.rs +0 -0
  1109. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/LICENSE +0 -0
  1110. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/README.md +0 -0
  1111. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/benches/x64-evex-encoding.rs +0 -0
  1112. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/build.rs +0 -0
  1113. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/alias_analysis.rs +0 -0
  1114. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/binemit/mod.rs +0 -0
  1115. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/binemit/stack_map.rs +0 -0
  1116. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/bitset.rs +0 -0
  1117. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/cfg_printer.rs +0 -0
  1118. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/constant_hash.rs +0 -0
  1119. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ctxhash.rs +0 -0
  1120. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/cursor.rs +0 -0
  1121. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/data_value.rs +0 -0
  1122. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/dbg.rs +0 -0
  1123. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/egraph/cost.rs +0 -0
  1124. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/egraph/elaborate.rs +0 -0
  1125. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/flowgraph.rs +0 -0
  1126. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/incremental_cache.rs +0 -0
  1127. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/atomic_rmw_op.rs +0 -0
  1128. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/builder.rs +0 -0
  1129. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/condcodes.rs +0 -0
  1130. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/constant.rs +0 -0
  1131. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/dynamic_type.rs +0 -0
  1132. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/entities.rs +0 -0
  1133. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/extname.rs +0 -0
  1134. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/function.rs +0 -0
  1135. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/globalvalue.rs +0 -0
  1136. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/instructions.rs +0 -0
  1137. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/jumptable.rs +0 -0
  1138. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/known_symbol.rs +0 -0
  1139. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/layout.rs +0 -0
  1140. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/libcall.rs +0 -0
  1141. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/memflags.rs +0 -0
  1142. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/memtype.rs +0 -0
  1143. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/mod.rs +0 -0
  1144. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/pcc.rs +0 -0
  1145. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/progpoint.rs +0 -0
  1146. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/sourceloc.rs +0 -0
  1147. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ir/trapcode.rs +0 -0
  1148. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  1149. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/inst_neon.isle +0 -0
  1150. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1151. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower/isle.rs +0 -0
  1152. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower.isle +0 -0
  1153. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower.rs +0 -0
  1154. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1155. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/mod.rs +0 -0
  1156. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/aarch64/settings.rs +0 -0
  1157. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/call_conv.rs +0 -0
  1158. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/mod.rs +0 -0
  1159. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/riscv64/inst/regs.rs +0 -0
  1160. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  1161. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1162. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/riscv64/lower.rs +0 -0
  1163. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/riscv64/settings.rs +0 -0
  1164. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/s390x/inst/unwind.rs +0 -0
  1165. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1166. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/s390x/lower/isle.rs +0 -0
  1167. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/s390x/lower.rs +0 -0
  1168. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/s390x/mod.rs +0 -0
  1169. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/s390x/settings.rs +0 -0
  1170. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/unwind/systemv.rs +0 -0
  1171. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/unwind/winx64.rs +0 -0
  1172. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/unwind.rs +0 -0
  1173. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/evex.rs +0 -0
  1174. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/mod.rs +0 -0
  1175. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/rex.rs +0 -0
  1176. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/encoding/vex.rs +0 -0
  1177. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1178. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/inst/unwind.rs +0 -0
  1179. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1180. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/lower/isle.rs +0 -0
  1181. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/lower.rs +0 -0
  1182. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/mod.rs +0 -0
  1183. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/isa/x64/settings.rs +0 -0
  1184. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/iterators.rs +0 -0
  1185. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/legalizer/globalvalue.rs +0 -0
  1186. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/legalizer/mod.rs +0 -0
  1187. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/loop_analysis.rs +0 -0
  1188. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/machinst/compile.rs +0 -0
  1189. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/machinst/helpers.rs +0 -0
  1190. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/machinst/inst_common.rs +0 -0
  1191. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/machinst/pcc.rs +0 -0
  1192. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/nan_canonicalization.rs +0 -0
  1193. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/README.md +0 -0
  1194. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/arithmetic.isle +0 -0
  1195. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/bitops.isle +0 -0
  1196. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/extends.isle +0 -0
  1197. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/generated_code.rs +0 -0
  1198. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/icmp.isle +0 -0
  1199. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/remat.isle +0 -0
  1200. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/selects.isle +0 -0
  1201. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/spaceship.isle +0 -0
  1202. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/spectre.isle +0 -0
  1203. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts/vector.isle +0 -0
  1204. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/opts.rs +0 -0
  1205. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/prelude_opt.isle +0 -0
  1206. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/print_errors.rs +0 -0
  1207. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/ranges.rs +0 -0
  1208. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/remove_constant_phis.rs +0 -0
  1209. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/result.rs +0 -0
  1210. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/scoped_hash_map.rs +0 -0
  1211. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/settings.rs +0 -0
  1212. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/souper_harvest.rs +0 -0
  1213. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/unionfind.rs +0 -0
  1214. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/unreachable_code.rs +0 -0
  1215. /data/ext/cargo-vendor/{cranelift-codegen-0.108.1 → cranelift-codegen-0.109.0}/src/value_label.rs +0 -0
  1216. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/LICENSE +0 -0
  1217. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/README.md +0 -0
  1218. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/cdsl/formats.rs +0 -0
  1219. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/cdsl/instructions.rs +0 -0
  1220. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/cdsl/isa.rs +0 -0
  1221. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/cdsl/mod.rs +0 -0
  1222. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/cdsl/operands.rs +0 -0
  1223. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/cdsl/settings.rs +0 -0
  1224. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/cdsl/typevar.rs +0 -0
  1225. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/constant_hash.rs +0 -0
  1226. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/error.rs +0 -0
  1227. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/gen_inst.rs +0 -0
  1228. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/gen_isle.rs +0 -0
  1229. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/gen_settings.rs +0 -0
  1230. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/gen_types.rs +0 -0
  1231. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/isa/arm64.rs +0 -0
  1232. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/isa/mod.rs +0 -0
  1233. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/isa/s390x.rs +0 -0
  1234. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/isa/x86.rs +0 -0
  1235. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/isle.rs +0 -0
  1236. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/lib.rs +0 -0
  1237. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/shared/entities.rs +0 -0
  1238. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/shared/formats.rs +0 -0
  1239. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/shared/immediates.rs +0 -0
  1240. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/shared/instructions.rs +0 -0
  1241. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/shared/mod.rs +0 -0
  1242. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/shared/settings.rs +0 -0
  1243. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/shared/types.rs +0 -0
  1244. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/srcgen.rs +0 -0
  1245. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.108.1 → cranelift-codegen-meta-0.109.0}/src/unique_table.rs +0 -0
  1246. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.108.1 → cranelift-codegen-shared-0.109.0}/LICENSE +0 -0
  1247. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.108.1 → cranelift-codegen-shared-0.109.0}/README.md +0 -0
  1248. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.108.1 → cranelift-codegen-shared-0.109.0}/src/constant_hash.rs +0 -0
  1249. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.108.1 → cranelift-codegen-shared-0.109.0}/src/lib.rs +0 -0
  1250. /data/ext/cargo-vendor/{cranelift-control-0.108.1 → cranelift-control-0.109.0}/LICENSE +0 -0
  1251. /data/ext/cargo-vendor/{cranelift-control-0.108.1 → cranelift-control-0.109.0}/README.md +0 -0
  1252. /data/ext/cargo-vendor/{cranelift-control-0.108.1 → cranelift-control-0.109.0}/src/chaos.rs +0 -0
  1253. /data/ext/cargo-vendor/{cranelift-control-0.108.1 → cranelift-control-0.109.0}/src/lib.rs +0 -0
  1254. /data/ext/cargo-vendor/{cranelift-control-0.108.1 → cranelift-control-0.109.0}/src/zero_sized.rs +0 -0
  1255. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/LICENSE +0 -0
  1256. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/README.md +0 -0
  1257. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/boxed_slice.rs +0 -0
  1258. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/iter.rs +0 -0
  1259. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/keys.rs +0 -0
  1260. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/lib.rs +0 -0
  1261. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/list.rs +0 -0
  1262. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/map.rs +0 -0
  1263. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/packed_option.rs +0 -0
  1264. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/primary.rs +0 -0
  1265. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/sparse.rs +0 -0
  1266. /data/ext/cargo-vendor/{cranelift-entity-0.108.1 → cranelift-entity-0.109.0}/src/unsigned.rs +0 -0
  1267. /data/ext/cargo-vendor/{cranelift-frontend-0.108.1 → cranelift-frontend-0.109.0}/LICENSE +0 -0
  1268. /data/ext/cargo-vendor/{cranelift-frontend-0.108.1 → cranelift-frontend-0.109.0}/README.md +0 -0
  1269. /data/ext/cargo-vendor/{cranelift-frontend-0.108.1 → cranelift-frontend-0.109.0}/src/switch.rs +0 -0
  1270. /data/ext/cargo-vendor/{cranelift-frontend-0.108.1 → cranelift-frontend-0.109.0}/src/variable.rs +0 -0
  1271. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/README.md +0 -0
  1272. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/build.rs +0 -0
  1273. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/bad_converters.isle +0 -0
  1274. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1275. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1276. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/error1.isle +0 -0
  1277. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/extra_parens.isle +0 -0
  1278. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/impure_expression.isle +0 -0
  1279. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/impure_rhs.isle +0 -0
  1280. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1281. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/fail/multi_prio.isle +0 -0
  1282. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/borrows.isle +0 -0
  1283. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/borrows_main.rs +0 -0
  1284. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/iflets.isle +0 -0
  1285. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/iflets_main.rs +0 -0
  1286. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/multi_constructor.isle +0 -0
  1287. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/multi_constructor_main.rs +0 -0
  1288. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/multi_extractor.isle +0 -0
  1289. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/multi_extractor_main.rs +0 -0
  1290. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/test.isle +0 -0
  1291. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/link/test_main.rs +0 -0
  1292. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/bound_var.isle +0 -0
  1293. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  1294. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/conversions.isle +0 -0
  1295. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/conversions_extern.isle +0 -0
  1296. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/let.isle +0 -0
  1297. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/nodebug.isle +0 -0
  1298. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1299. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/test2.isle +0 -0
  1300. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/test3.isle +0 -0
  1301. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/test4.isle +0 -0
  1302. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/pass/tutorial.isle +0 -0
  1303. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/run/iconst.isle +0 -0
  1304. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/run/iconst_main.rs +0 -0
  1305. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/run/let_shadowing.isle +0 -0
  1306. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  1307. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/ast.rs +0 -0
  1308. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/codegen.rs +0 -0
  1309. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/compile.rs +0 -0
  1310. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/disjointsets.rs +0 -0
  1311. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/error.rs +0 -0
  1312. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/lexer.rs +0 -0
  1313. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/lib.rs +0 -0
  1314. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/log.rs +0 -0
  1315. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/overlap.rs +0 -0
  1316. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/parser.rs +0 -0
  1317. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/serialize.rs +0 -0
  1318. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/stablemapset.rs +0 -0
  1319. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/src/trie_again.rs +0 -0
  1320. /data/ext/cargo-vendor/{cranelift-isle-0.108.1 → cranelift-isle-0.109.0}/tests/run_tests.rs +0 -0
  1321. /data/ext/cargo-vendor/{cranelift-native-0.108.1 → cranelift-native-0.109.0}/LICENSE +0 -0
  1322. /data/ext/cargo-vendor/{cranelift-native-0.108.1 → cranelift-native-0.109.0}/README.md +0 -0
  1323. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/LICENSE +0 -0
  1324. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/README.md +0 -0
  1325. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/src/code_translator/bounds_checks.rs +0 -0
  1326. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/src/environ/dummy.rs +0 -0
  1327. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/src/environ/mod.rs +0 -0
  1328. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/src/environ/spec.rs +0 -0
  1329. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/src/heap.rs +0 -0
  1330. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/src/lib.rs +0 -0
  1331. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/src/table.rs +0 -0
  1332. /data/ext/cargo-vendor/{cranelift-wasm-0.108.1 → cranelift-wasm-0.109.0}/src/translation_utils.rs +0 -0
  1333. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/LICENSE-APACHE +0 -0
  1334. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/LICENSE-MIT +0 -0
  1335. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/archive.rs +0 -0
  1336. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/error.rs +0 -0
  1337. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/mod.rs +0 -0
  1338. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/build/table.rs +0 -0
  1339. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/lib.rs +0 -0
  1340. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/pe.rs +0 -0
  1341. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/coff/import.rs +0 -0
  1342. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/coff/mod.rs +0 -0
  1343. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/compression.rs +0 -0
  1344. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/dynamic.rs +0 -0
  1345. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/elf/mod.rs +0 -0
  1346. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/fat.rs +0 -0
  1347. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/mod.rs +0 -0
  1348. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/macho/relocation.rs +0 -0
  1349. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/data_directory.rs +0 -0
  1350. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/export.rs +0 -0
  1351. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/mod.rs +0 -0
  1352. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/resource.rs +0 -0
  1353. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/pe/rich.rs +0 -0
  1354. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/read_ref.rs +0 -0
  1355. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/util.rs +0 -0
  1356. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/comdat.rs +0 -0
  1357. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/mod.rs +0 -0
  1358. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/read/xcoff/segment.rs +0 -0
  1359. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/coff/mod.rs +0 -0
  1360. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/elf/mod.rs +0 -0
  1361. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/string.rs +0 -0
  1362. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/write/util.rs +0 -0
  1363. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/src/xcoff.rs +0 -0
  1364. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/parse_self.rs +0 -0
  1365. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/read/coff.rs +0 -0
  1366. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/read/elf.rs +0 -0
  1367. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/round_trip/coff.rs +0 -0
  1368. /data/ext/cargo-vendor/{object-0.33.0 → object-0.36.3}/tests/round_trip/macho.rs +0 -0
  1369. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/LICENSE +0 -0
  1370. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/README.md +0 -0
  1371. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/clocks.rs +0 -0
  1372. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/ctx.rs +0 -0
  1373. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/dir.rs +0 -0
  1374. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/error.rs +0 -0
  1375. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/file.rs +0 -0
  1376. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/lib.rs +0 -0
  1377. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/pipe.rs +0 -0
  1378. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/random.rs +0 -0
  1379. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sched/subscription.rs +0 -0
  1380. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sched.rs +0 -0
  1381. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/snapshots/mod.rs +0 -0
  1382. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/snapshots/preview_1/error.rs +0 -0
  1383. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sync/clocks.rs +0 -0
  1384. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sync/dir.rs +0 -0
  1385. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sync/file.rs +0 -0
  1386. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sync/mod.rs +0 -0
  1387. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sync/net.rs +0 -0
  1388. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sync/sched/unix.rs +0 -0
  1389. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sync/sched.rs +0 -0
  1390. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/sync/stdio.rs +0 -0
  1391. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/table.rs +0 -0
  1392. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/tokio/dir.rs +0 -0
  1393. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/tokio/mod.rs +0 -0
  1394. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/tokio/net.rs +0 -0
  1395. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/tokio/sched/unix.rs +0 -0
  1396. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/tokio/sched/windows.rs +0 -0
  1397. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/tokio/sched.rs +0 -0
  1398. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/src/tokio/stdio.rs +0 -0
  1399. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/tests/all/async_.rs +0 -0
  1400. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/tests/all/main.rs +0 -0
  1401. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/tests/all/sync.rs +0 -0
  1402. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/witx/preview0/typenames.witx +0 -0
  1403. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  1404. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/witx/preview1/typenames.witx +0 -0
  1405. /data/ext/cargo-vendor/{wasi-common-21.0.1 → wasi-common-22.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1406. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/README.md +0 -0
  1407. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/benches/benchmark.rs +0 -0
  1408. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/examples/simple.rs +0 -0
  1409. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/component/aliases.rs +0 -0
  1410. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/component/canonicals.rs +0 -0
  1411. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/component/exports.rs +0 -0
  1412. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/component/start.rs +0 -0
  1413. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/component.rs +0 -0
  1414. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core/dylink0.rs +0 -0
  1415. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core/exports.rs +0 -0
  1416. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core/functions.rs +0 -0
  1417. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core/imports.rs +0 -0
  1418. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core/memories.rs +0 -0
  1419. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core/tables.rs +0 -0
  1420. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core/tags.rs +0 -0
  1421. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core/types/matches.rs +0 -0
  1422. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/readers/core.rs +0 -0
  1423. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/src/resources.rs +0 -0
  1424. /data/ext/cargo-vendor/{wasmparser-0.207.0 → wasmparser-0.209.1}/tests/big-module.rs +0 -0
  1425. /data/ext/cargo-vendor/{wasm-encoder-0.207.0 → wasmprinter-0.209.1}/LICENSE +0 -0
  1426. /data/ext/cargo-vendor/{wasmprinter-0.207.0 → wasmprinter-0.209.1}/README.md +0 -0
  1427. /data/ext/cargo-vendor/{wasmprinter-0.207.0 → wasmprinter-0.209.1}/tests/all.rs +0 -0
  1428. /data/ext/cargo-vendor/{wasmprinter-0.207.0 → wasmtime-22.0.0}/LICENSE +0 -0
  1429. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/README.md +0 -0
  1430. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/proptest-regressions/runtime/vm/instance/allocator/pooling/memory_pool.txt +0 -0
  1431. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/compile/code_builder.rs +0 -0
  1432. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/engine.rs +0 -0
  1433. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/profiling_agent/vtune.rs +0 -0
  1434. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/profiling_agent.rs +0 -0
  1435. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/component/func/host.rs +0 -0
  1436. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/component/func/options.rs +0 -0
  1437. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/component/resources.rs +0 -0
  1438. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/component/storage.rs +0 -0
  1439. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/component/store.rs +0 -0
  1440. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/component/values.rs +0 -0
  1441. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/coredump.rs +0 -0
  1442. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/externals.rs +0 -0
  1443. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/gc/disabled/anyref.rs +0 -0
  1444. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/gc/disabled/externref.rs +0 -0
  1445. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/gc/disabled/i31.rs +0 -0
  1446. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/gc/disabled/rooting.rs +0 -0
  1447. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/gc/disabled.rs +0 -0
  1448. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/gc/enabled/rooting.rs +0 -0
  1449. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/gc/enabled.rs +0 -0
  1450. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/limits.rs +0 -0
  1451. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/memory.rs +0 -0
  1452. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/profiling.rs +0 -0
  1453. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/resources.rs +0 -0
  1454. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/signatures.rs +0 -0
  1455. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/stack.rs +0 -0
  1456. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/store/context.rs +0 -0
  1457. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/store/data.rs +0 -0
  1458. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/trampoline/global.rs +0 -0
  1459. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/trampoline/table.rs +0 -0
  1460. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/trampoline.rs +0 -0
  1461. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/trap.rs +0 -0
  1462. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/types/matching.rs +0 -0
  1463. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/uninhabited.rs +0 -0
  1464. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/unix.rs +0 -0
  1465. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/arch/aarch64.rs +0 -0
  1466. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/arch/mod.rs +0 -0
  1467. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/arch/riscv64.rs +0 -0
  1468. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/arch/s390x.S +0 -0
  1469. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/arch/s390x.rs +0 -0
  1470. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/arch/x86_64.rs +0 -0
  1471. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/async_yield.rs +0 -0
  1472. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/component/libcalls.rs +0 -0
  1473. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/const_expr.rs +0 -0
  1474. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/debug_builtins.rs +0 -0
  1475. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc/disabled.rs +0 -0
  1476. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc/enabled/drc.rs +0 -0
  1477. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc/enabled/externref.rs +0 -0
  1478. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc/enabled/free_list.rs +0 -0
  1479. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc/enabled.rs +0 -0
  1480. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc/gc_runtime.rs +0 -0
  1481. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc/host_data.rs +0 -0
  1482. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc/i31.rs +0 -0
  1483. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/gc.rs +0 -0
  1484. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/helpers.c +0 -0
  1485. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/imports.rs +0 -0
  1486. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/libcalls.rs +0 -0
  1487. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/mmap.rs +0 -0
  1488. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/mmap_vec.rs +0 -0
  1489. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/module_id.rs +0 -0
  1490. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/mpk/disabled.rs +0 -0
  1491. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/mpk/enabled.rs +0 -0
  1492. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/mpk/mod.rs +0 -0
  1493. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/mpk/pkru.rs +0 -0
  1494. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/mpk/sys.rs +0 -0
  1495. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/send_sync_ptr.rs +0 -0
  1496. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/store_box.rs +0 -0
  1497. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/custom/mmap.rs +0 -0
  1498. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/custom/mod.rs +0 -0
  1499. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/custom/traphandlers.rs +0 -0
  1500. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/custom/unwind.rs +0 -0
  1501. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/miri/mmap.rs +0 -0
  1502. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/miri/mod.rs +0 -0
  1503. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/miri/traphandlers.rs +0 -0
  1504. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/miri/unwind.rs +0 -0
  1505. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/unix/machports.rs +0 -0
  1506. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/unix/macos_traphandlers.rs +0 -0
  1507. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/unix/mmap.rs +0 -0
  1508. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/unix/mod.rs +0 -0
  1509. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/unix/unwind.rs +0 -0
  1510. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/windows/mmap.rs +0 -0
  1511. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/windows/mod.rs +0 -0
  1512. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/windows/traphandlers.rs +0 -0
  1513. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/sys/windows/unwind.rs +0 -0
  1514. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/threads/mod.rs +0 -0
  1515. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/threads/parking_spot.rs +0 -0
  1516. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/threads/shared_memory.rs +0 -0
  1517. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/threads/shared_memory_disabled.rs +0 -0
  1518. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/traphandlers/backtrace.rs +0 -0
  1519. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/traphandlers/coredump_disabled.rs +0 -0
  1520. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/vm/traphandlers/coredump_enabled.rs +0 -0
  1521. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/runtime/windows.rs +0 -0
  1522. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/sync_nostd.rs +0 -0
  1523. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-22.0.0}/src/sync_std.rs +0 -0
  1524. /data/ext/cargo-vendor/{wasmtime-asm-macros-21.0.1 → wasmtime-asm-macros-22.0.0}/src/lib.rs +0 -0
  1525. /data/ext/cargo-vendor/{wasmtime-21.0.1 → wasmtime-cache-22.0.0}/LICENSE +0 -0
  1526. /data/ext/cargo-vendor/{wasmtime-cache-21.0.1 → wasmtime-cache-22.0.0}/build.rs +0 -0
  1527. /data/ext/cargo-vendor/{wasmtime-cache-21.0.1 → wasmtime-cache-22.0.0}/src/config/tests.rs +0 -0
  1528. /data/ext/cargo-vendor/{wasmtime-cache-21.0.1 → wasmtime-cache-22.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  1529. /data/ext/cargo-vendor/{wasmtime-cache-21.0.1 → wasmtime-cache-22.0.0}/tests/cache_write_default_config.rs +0 -0
  1530. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/build.rs +0 -0
  1531. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/src/lib.rs +0 -0
  1532. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/char.wit +0 -0
  1533. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/conventions.wit +0 -0
  1534. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/dead-code.wit +0 -0
  1535. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/direct-import.wit +0 -0
  1536. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/empty.wit +0 -0
  1537. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/flags.wit +0 -0
  1538. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/floats.wit +0 -0
  1539. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/function-new.wit +0 -0
  1540. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/integers.wit +0 -0
  1541. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/lists.wit +0 -0
  1542. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/many-arguments.wit +0 -0
  1543. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/multi-return.wit +0 -0
  1544. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1545. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1546. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/multiversion/root.wit +0 -0
  1547. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/records.wit +0 -0
  1548. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/rename.wit +0 -0
  1549. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/resources-export.wit +0 -0
  1550. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/resources-import.wit +0 -0
  1551. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/share-types.wit +0 -0
  1552. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-functions.wit +0 -0
  1553. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-lists.wit +0 -0
  1554. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/simple-wasi.wit +0 -0
  1555. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/small-anonymous.wit +0 -0
  1556. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke-default.wit +0 -0
  1557. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke-export.wit +0 -0
  1558. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/smoke.wit +0 -0
  1559. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/strings.wit +0 -0
  1560. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/unversioned-foo.wit +0 -0
  1561. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/use-paths.wit +0 -0
  1562. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/variants.wit +0 -0
  1563. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/wat.wit +0 -0
  1564. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  1565. /data/ext/cargo-vendor/{wasmtime-component-macro-21.0.1 → wasmtime-component-macro-22.0.0}/tests/codegen_no_std.rs +0 -0
  1566. /data/ext/cargo-vendor/{wasmtime-component-util-21.0.1 → wasmtime-component-util-22.0.0}/src/lib.rs +0 -0
  1567. /data/ext/cargo-vendor/{wasmtime-cache-21.0.1 → wasmtime-cranelift-22.0.0}/LICENSE +0 -0
  1568. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/SECURITY.md +0 -0
  1569. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/builder.rs +0 -0
  1570. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/compiled_function.rs +0 -0
  1571. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/debug/gc.rs +0 -0
  1572. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/debug/transform/attr.rs +0 -0
  1573. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/debug/transform/expression.rs +0 -0
  1574. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/debug/transform/line_program.rs +0 -0
  1575. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1576. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/debug/transform/refs.rs +0 -0
  1577. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/debug.rs +0 -0
  1578. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/gc/disabled.rs +0 -0
  1579. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/gc.rs +0 -0
  1580. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-cranelift-22.0.0}/src/isa_builder.rs +0 -0
  1581. /data/ext/cargo-vendor/{wasmtime-cranelift-21.0.1 → wasmtime-environ-22.0.0}/LICENSE +0 -0
  1582. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/examples/factc.rs +0 -0
  1583. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/address_map.rs +0 -0
  1584. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/builtin.rs +0 -0
  1585. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/compile/trap_encoding.rs +0 -0
  1586. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/component/compiler.rs +0 -0
  1587. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/component/dfg.rs +0 -0
  1588. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/component/translate/inline.rs +0 -0
  1589. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1590. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/component.rs +0 -0
  1591. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/demangling.rs +0 -0
  1592. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/fact/core_types.rs +0 -0
  1593. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/fact/signature.rs +0 -0
  1594. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/fact/traps.rs +0 -0
  1595. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/gc.rs +0 -0
  1596. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/obj.rs +0 -0
  1597. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/scopevec.rs +0 -0
  1598. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/stack_map.rs +0 -0
  1599. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-environ-22.0.0}/src/trap_encoding.rs +0 -0
  1600. /data/ext/cargo-vendor/{wasmtime-environ-21.0.1 → wasmtime-fiber-22.0.0}/LICENSE +0 -0
  1601. /data/ext/cargo-vendor/{wasmtime-fiber-21.0.1 → wasmtime-fiber-22.0.0}/src/unix/aarch64.rs +0 -0
  1602. /data/ext/cargo-vendor/{wasmtime-fiber-21.0.1 → wasmtime-fiber-22.0.0}/src/unix/arm.rs +0 -0
  1603. /data/ext/cargo-vendor/{wasmtime-fiber-21.0.1 → wasmtime-fiber-22.0.0}/src/unix/riscv64.rs +0 -0
  1604. /data/ext/cargo-vendor/{wasmtime-fiber-21.0.1 → wasmtime-fiber-22.0.0}/src/unix/s390x.S +0 -0
  1605. /data/ext/cargo-vendor/{wasmtime-fiber-21.0.1 → wasmtime-fiber-22.0.0}/src/unix/x86.rs +0 -0
  1606. /data/ext/cargo-vendor/{wasmtime-fiber-21.0.1 → wasmtime-fiber-22.0.0}/src/unix/x86_64.rs +0 -0
  1607. /data/ext/cargo-vendor/{wasmtime-fiber-21.0.1 → wasmtime-fiber-22.0.0}/src/windows.c +0 -0
  1608. /data/ext/cargo-vendor/{wasmtime-jit-debug-21.0.1 → wasmtime-jit-debug-22.0.0}/README.md +0 -0
  1609. /data/ext/cargo-vendor/{wasmtime-jit-debug-21.0.1 → wasmtime-jit-debug-22.0.0}/src/lib.rs +0 -0
  1610. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-21.0.1 → wasmtime-jit-icache-coherence-22.0.0}/src/lib.rs +0 -0
  1611. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-21.0.1 → wasmtime-jit-icache-coherence-22.0.0}/src/miri.rs +0 -0
  1612. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-21.0.1 → wasmtime-jit-icache-coherence-22.0.0}/src/win.rs +0 -0
  1613. /data/ext/cargo-vendor/{wasmtime-fiber-21.0.1 → wasmtime-types-22.0.0}/LICENSE +0 -0
  1614. /data/ext/cargo-vendor/{wasmtime-types-21.0.1 → wasmtime-types-22.0.0}/src/error.rs +0 -0
  1615. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-21.0.1 → wasmtime-versioned-export-macros-22.0.0}/src/lib.rs +0 -0
  1616. /data/ext/cargo-vendor/{wasmtime-types-21.0.1 → wasmtime-wasi-22.0.0}/LICENSE +0 -0
  1617. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/README.md +0 -0
  1618. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/clocks/host.rs +0 -0
  1619. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/clocks.rs +0 -0
  1620. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/error.rs +0 -0
  1621. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/host/mod.rs +0 -0
  1622. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/random.rs +0 -0
  1623. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/runtime.rs +0 -0
  1624. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/stdio/worker_thread_stdin.rs +0 -0
  1625. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/stream.rs +0 -0
  1626. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/tcp.rs +0 -0
  1627. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/udp.rs +0 -0
  1628. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/src/write_stream.rs +0 -0
  1629. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/tests/all/api.rs +0 -0
  1630. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/tests/all/async_.rs +0 -0
  1631. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/tests/all/main.rs +0 -0
  1632. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/tests/all/preview1.rs +0 -0
  1633. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/tests/all/sync.rs +0 -0
  1634. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/tests/process_stdin.rs +0 -0
  1635. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/command-extended.wit +0 -0
  1636. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/cli/command.wit +0 -0
  1637. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/cli/environment.wit +0 -0
  1638. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/cli/exit.wit +0 -0
  1639. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/cli/imports.wit +0 -0
  1640. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/cli/run.wit +0 -0
  1641. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/cli/stdio.wit +0 -0
  1642. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/cli/terminal.wit +0 -0
  1643. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1644. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  1645. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/clocks/world.wit +0 -0
  1646. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  1647. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/types.wit +0 -0
  1648. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/filesystem/world.wit +0 -0
  1649. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/http/handler.wit +0 -0
  1650. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/http/proxy.wit +0 -0
  1651. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/http/types.wit +0 -0
  1652. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/io/error.wit +0 -0
  1653. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/io/poll.wit +0 -0
  1654. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/io/streams.wit +0 -0
  1655. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/io/world.wit +0 -0
  1656. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  1657. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/random/insecure.wit +0 -0
  1658. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/random/random.wit +0 -0
  1659. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/random/world.wit +0 -0
  1660. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  1661. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1662. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/sockets/network.wit +0 -0
  1663. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1664. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/sockets/tcp.wit +0 -0
  1665. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1666. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/sockets/udp.wit +0 -0
  1667. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/deps/sockets/world.wit +0 -0
  1668. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/wit/test.wit +0 -0
  1669. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/witx/preview0/typenames.witx +0 -0
  1670. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  1671. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/witx/preview1/typenames.witx +0 -0
  1672. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wasmtime-wasi-22.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1673. /data/ext/cargo-vendor/{wasmtime-winch-21.0.1 → wasmtime-winch-22.0.0}/LICENSE +0 -0
  1674. /data/ext/cargo-vendor/{wasmtime-winch-21.0.1 → wasmtime-winch-22.0.0}/src/builder.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasmtime-winch-21.0.1 → wasmtime-winch-22.0.0}/src/lib.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-21.0.1 → wasmtime-wit-bindgen-22.0.0}/src/source.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasmtime-wasi-21.0.1 → wiggle-22.0.0}/LICENSE +0 -0
  1678. /data/ext/cargo-vendor/{wiggle-21.0.1 → wiggle-22.0.0}/README.md +0 -0
  1679. /data/ext/cargo-vendor/{wiggle-21.0.1 → wiggle-22.0.0}/src/error.rs +0 -0
  1680. /data/ext/cargo-vendor/{wiggle-21.0.1 → wiggle-22.0.0}/src/region.rs +0 -0
  1681. /data/ext/cargo-vendor/{wiggle-21.0.1 → wiggle-generate-22.0.0}/LICENSE +0 -0
  1682. /data/ext/cargo-vendor/{wiggle-generate-21.0.1 → wiggle-generate-22.0.0}/README.md +0 -0
  1683. /data/ext/cargo-vendor/{wiggle-generate-21.0.1 → wiggle-generate-22.0.0}/src/codegen_settings.rs +0 -0
  1684. /data/ext/cargo-vendor/{wiggle-generate-21.0.1 → wiggle-generate-22.0.0}/src/config.rs +0 -0
  1685. /data/ext/cargo-vendor/{wiggle-generate-21.0.1 → wiggle-generate-22.0.0}/src/lib.rs +0 -0
  1686. /data/ext/cargo-vendor/{wiggle-generate-21.0.1 → wiggle-generate-22.0.0}/src/lifetimes.rs +0 -0
  1687. /data/ext/cargo-vendor/{wiggle-generate-21.0.1 → wiggle-generate-22.0.0}/src/types/error.rs +0 -0
  1688. /data/ext/cargo-vendor/{wiggle-generate-21.0.1 → wiggle-macro-22.0.0}/LICENSE +0 -0
  1689. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/LICENSE +0 -0
  1690. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/build.rs +0 -0
  1691. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/abi/local.rs +0 -0
  1692. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/codegen/bounds.rs +0 -0
  1693. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/codegen/builtin.rs +0 -0
  1694. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/codegen/call.rs +0 -0
  1695. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/aarch64/abi.rs +0 -0
  1696. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/aarch64/address.rs +0 -0
  1697. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/aarch64/mod.rs +0 -0
  1698. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/mod.rs +0 -0
  1699. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/reg.rs +0 -0
  1700. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/x64/abi.rs +0 -0
  1701. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/x64/address.rs +0 -0
  1702. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/x64/mod.rs +0 -0
  1703. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/isa/x64/regs.rs +0 -0
  1704. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/lib.rs +0 -0
  1705. /data/ext/cargo-vendor/{winch-codegen-0.19.1 → winch-codegen-0.20.0}/src/regset.rs +0 -0
  1706. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/README.md +0 -0
  1707. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/src/abi.rs +0 -0
  1708. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/src/ast/lex.rs +0 -0
  1709. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/src/ast/toposort.rs +0 -0
  1710. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/src/sizealign.rs +0 -0
  1711. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/comments.wit +0 -0
  1712. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/comments.wit.json +0 -0
  1713. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/complex-include/deps/bar/root.wit +0 -0
  1714. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/complex-include/deps/baz/root.wit +0 -0
  1715. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/complex-include/root.wit +0 -0
  1716. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource/deps/foo/foo.wit +0 -0
  1717. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource/foo.wit +0 -0
  1718. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/cross-package-resource.wit.json +0 -0
  1719. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/diamond1/deps/dep1/types.wit +0 -0
  1720. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/diamond1/deps/dep2/types.wit +0 -0
  1721. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/diamond1/join.wit +0 -0
  1722. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/shared1.wit +0 -0
  1723. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/shared2.wit +0 -0
  1724. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/disambiguate-diamond/world.wit +0 -0
  1725. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/empty.wit +0 -0
  1726. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/empty.wit.json +0 -0
  1727. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -0
  1728. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/corp/saas.wit +0 -0
  1729. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -0
  1730. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -0
  1731. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -0
  1732. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -0
  1733. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -0
  1734. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps/root.wit +0 -0
  1735. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +0 -0
  1736. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/corp/saas.wit +0 -0
  1737. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +0 -0
  1738. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +0 -0
  1739. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +0 -0
  1740. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +0 -0
  1741. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +0 -0
  1742. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +0 -0
  1743. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/foreign-deps-union/root.wit +0 -0
  1744. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/functions.wit +0 -0
  1745. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/functions.wit.json +0 -0
  1746. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/deps/bar/types.wit +0 -0
  1747. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/deps/ignore-me.txt +0 -0
  1748. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/ignore-files-deps/world.wit +0 -0
  1749. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap1.wit +0 -0
  1750. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap1.wit.json +0 -0
  1751. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/import-export-overlap2.wit +0 -0
  1752. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/include-reps.wit +0 -0
  1753. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/kebab-name-include-with.wit +0 -0
  1754. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/kebab-name-include-with.wit.json +0 -0
  1755. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/a.wit +0 -0
  1756. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/b/root.wit +0 -0
  1757. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/c.wit +0 -0
  1758. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/d.wat +0 -0
  1759. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  1760. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/many-names/a.wit +0 -0
  1761. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/many-names/b.wit +0 -0
  1762. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/multi-file/bar.wit +0 -0
  1763. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/multi-file/cycle-a.wit +0 -0
  1764. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/multi-file/cycle-b.wit +0 -0
  1765. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/multi-file/foo.wit +0 -0
  1766. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +0 -0
  1767. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type/foo.wit +0 -0
  1768. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/name-both-resource-and-type.wit.json +0 -0
  1769. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/package-syntax1.wit +0 -0
  1770. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/package-syntax1.wit.json +0 -0
  1771. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/package-syntax3.wit +0 -0
  1772. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/package-syntax3.wit.json +0 -0
  1773. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/package-syntax4.wit +0 -0
  1774. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/package-syntax4.wit.json +0 -0
  1775. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  1776. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/alias-no-type.wit.result +0 -0
  1777. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/async.wit.result +0 -0
  1778. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/async1.wit.result +0 -0
  1779. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function.wit +0 -0
  1780. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function.wit.result +0 -0
  1781. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function2.wit +0 -0
  1782. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-function2.wit.result +0 -0
  1783. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include1.wit +0 -0
  1784. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include1.wit.result +0 -0
  1785. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include2.wit +0 -0
  1786. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include2.wit.result +0 -0
  1787. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include3.wit +0 -0
  1788. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-include3.wit.result +0 -0
  1789. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-list.wit +0 -0
  1790. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  1791. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg1/root.wit +0 -0
  1792. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg1.wit.result +0 -0
  1793. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +0 -0
  1794. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2/root.wit +0 -0
  1795. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg2.wit.result +0 -0
  1796. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  1797. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3/root.wit +0 -0
  1798. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg3.wit.result +0 -0
  1799. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -0
  1800. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4/root.wit +0 -0
  1801. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg4.wit.result +0 -0
  1802. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -0
  1803. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5/root.wit +0 -0
  1804. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg5.wit.result +0 -0
  1805. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  1806. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6/root.wit +0 -0
  1807. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-pkg6.wit.result +0 -0
  1808. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource1.wit +0 -0
  1809. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource1.wit.result +0 -0
  1810. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource10.wit +0 -0
  1811. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource10.wit.result +0 -0
  1812. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource11.wit +0 -0
  1813. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource11.wit.result +0 -0
  1814. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource12.wit +0 -0
  1815. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource12.wit.result +0 -0
  1816. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource13.wit +0 -0
  1817. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource13.wit.result +0 -0
  1818. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource14.wit +0 -0
  1819. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource14.wit.result +0 -0
  1820. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +0 -0
  1821. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15/foo.wit +0 -0
  1822. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource15.wit.result +0 -0
  1823. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource2.wit +0 -0
  1824. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource2.wit.result +0 -0
  1825. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource3.wit +0 -0
  1826. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource3.wit.result +0 -0
  1827. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource4.wit +0 -0
  1828. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource4.wit.result +0 -0
  1829. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource5.wit +0 -0
  1830. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource5.wit.result +0 -0
  1831. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource6.wit +0 -0
  1832. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource6.wit.result +0 -0
  1833. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource7.wit +0 -0
  1834. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource7.wit.result +0 -0
  1835. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource8.wit +0 -0
  1836. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource8.wit.result +0 -0
  1837. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource9.wit +0 -0
  1838. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-resource9.wit.result +0 -0
  1839. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-world-type1.wit +0 -0
  1840. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/bad-world-type1.wit.result +0 -0
  1841. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/conflicting-package/a.wit +0 -0
  1842. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/conflicting-package/b.wit +0 -0
  1843. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle.wit +0 -0
  1844. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle.wit.result +0 -0
  1845. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle2.wit +0 -0
  1846. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle2.wit.result +0 -0
  1847. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle3.wit +0 -0
  1848. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle3.wit.result +0 -0
  1849. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle4.wit +0 -0
  1850. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle4.wit.result +0 -0
  1851. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle5.wit +0 -0
  1852. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/cycle5.wit.result +0 -0
  1853. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/dangling-type.wit +0 -0
  1854. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  1855. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-function-params.wit +0 -0
  1856. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-function-params.wit.result +0 -0
  1857. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-functions.wit +0 -0
  1858. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-functions.wit.result +0 -0
  1859. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface.wit +0 -0
  1860. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface.wit.result +0 -0
  1861. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2/foo.wit +0 -0
  1862. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2/foo2.wit +0 -0
  1863. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-interface2.wit.result +0 -0
  1864. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-type.wit +0 -0
  1865. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/duplicate-type.wit.result +0 -0
  1866. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-enum.wit +0 -0
  1867. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-enum.wit.result +0 -0
  1868. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-variant1.wit +0 -0
  1869. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/empty-variant1.wit.result +0 -0
  1870. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/export-twice.wit +0 -0
  1871. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/export-twice.wit.result +0 -0
  1872. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export1.wit +0 -0
  1873. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export1.wit.result +0 -0
  1874. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export2.wit +0 -0
  1875. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export2.wit.result +0 -0
  1876. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export3.wit +0 -0
  1877. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export3.wit.result +0 -0
  1878. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export4.wit +0 -0
  1879. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export4.wit.result +0 -0
  1880. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export5.wit +0 -0
  1881. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-and-export5.wit.result +0 -0
  1882. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-twice.wit +0 -0
  1883. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/import-twice.wit.result +0 -0
  1884. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-cycle.wit +0 -0
  1885. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-cycle.wit.result +0 -0
  1886. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +0 -0
  1887. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign/root.wit +0 -0
  1888. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-foreign.wit.result +0 -0
  1889. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-id.wit +0 -0
  1890. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-id.wit.result +0 -0
  1891. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-on-id.wit +0 -0
  1892. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/include-with-on-id.wit.result +0 -0
  1893. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  1894. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  1895. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference.wit +0 -0
  1896. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -0
  1897. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference2.wit +0 -0
  1898. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -0
  1899. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include-not-found.wit +0 -0
  1900. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +0 -0
  1901. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include.wit +0 -0
  1902. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/kebab-name-include.wit.result +0 -0
  1903. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/keyword.wit +0 -0
  1904. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/keyword.wit.result +0 -0
  1905. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/missing-package.wit +0 -0
  1906. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/missing-package.wit.result +0 -0
  1907. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/multiple-package-docs/a.wit +0 -0
  1908. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/multiple-package-docs/b.wit +0 -0
  1909. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +0 -0
  1910. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +0 -0
  1911. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +0 -0
  1912. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +0 -0
  1913. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include/root.wit +0 -0
  1914. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/non-existance-world-include.wit.result +0 -0
  1915. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -0
  1916. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle/root.wit +0 -0
  1917. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle.wit.result +0 -0
  1918. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -0
  1919. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -0
  1920. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -0
  1921. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -0
  1922. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/resources-multiple-returns-borrow.wit +0 -0
  1923. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/resources-return-borrow.wit +0 -0
  1924. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow1.wit +0 -0
  1925. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow2.wit +0 -0
  1926. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow3.wit +0 -0
  1927. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow3.wit.result +0 -0
  1928. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow4.wit +0 -0
  1929. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow4.wit.result +0 -0
  1930. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow5.wit +0 -0
  1931. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow5.wit.result +0 -0
  1932. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow6.wit +0 -0
  1933. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow7.wit +0 -0
  1934. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow8/deps/baz.wit +0 -0
  1935. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/return-borrow8/foo.wit +0 -0
  1936. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +0 -0
  1937. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +0 -0
  1938. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/type-and-resource-same-name.wit.result +0 -0
  1939. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/undefined-typed.wit +0 -0
  1940. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/undefined-typed.wit.result +0 -0
  1941. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unknown-interface.wit +0 -0
  1942. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unknown-interface.wit.result +0 -0
  1943. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface1.wit +0 -0
  1944. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -0
  1945. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface2.wit +0 -0
  1946. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -0
  1947. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface3.wit +0 -0
  1948. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -0
  1949. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface4.wit +0 -0
  1950. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -0
  1951. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use1.wit +0 -0
  1952. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use1.wit.result +0 -0
  1953. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -0
  1954. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  1955. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use10.wit.result +0 -0
  1956. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use2.wit +0 -0
  1957. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use2.wit.result +0 -0
  1958. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use3.wit +0 -0
  1959. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use3.wit.result +0 -0
  1960. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use7.wit +0 -0
  1961. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use7.wit.result +0 -0
  1962. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use8.wit +0 -0
  1963. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use8.wit.result +0 -0
  1964. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use9.wit +0 -0
  1965. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unresolved-use9.wit.result +0 -0
  1966. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
  1967. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +0 -0
  1968. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world/root.wit +0 -0
  1969. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-and-include-world.wit.result +0 -0
  1970. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict.wit +0 -0
  1971. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict.wit.result +0 -0
  1972. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict2.wit +0 -0
  1973. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict2.wit.result +0 -0
  1974. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict3.wit +0 -0
  1975. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-conflict3.wit.result +0 -0
  1976. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle1.wit +0 -0
  1977. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle1.wit.result +0 -0
  1978. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle4.wit +0 -0
  1979. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-cycle4.wit.result +0 -0
  1980. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-shadow1.wit +0 -0
  1981. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-shadow1.wit.result +0 -0
  1982. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world/deps/bar/baz.wit +0 -0
  1983. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world/root.wit +0 -0
  1984. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/use-world.wit.result +0 -0
  1985. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-interface-clash.wit +0 -0
  1986. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-interface-clash.wit.result +0 -0
  1987. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields2.wit +0 -0
  1988. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields2.wit.result +0 -0
  1989. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields3.wit +0 -0
  1990. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-same-fields3.wit.result +0 -0
  1991. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func.wit +0 -0
  1992. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func.wit.result +0 -0
  1993. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func2.wit +0 -0
  1994. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -0
  1995. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/random.wit +0 -0
  1996. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/random.wit.json +0 -0
  1997. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources-empty.wit +0 -0
  1998. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources-empty.wit.json +0 -0
  1999. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources-multiple-returns-own.wit +0 -0
  2000. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources-multiple-returns-own.wit.json +0 -0
  2001. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources-multiple.wit +0 -0
  2002. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources-multiple.wit.json +0 -0
  2003. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources-return-own.wit +0 -0
  2004. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources-return-own.wit.json +0 -0
  2005. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources.wit +0 -0
  2006. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources.wit.json +0 -0
  2007. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources1.wit +0 -0
  2008. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/resources1.wit.json +0 -0
  2009. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/same-name-import-export.wit +0 -0
  2010. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/same-name-import-export.wit.json +0 -0
  2011. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/shared-types.wit +0 -0
  2012. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/simple-wasm-text.wat +0 -0
  2013. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/simple-wasm-text.wit.json +0 -0
  2014. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/stress-export-elaborate.wit +0 -0
  2015. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/type-then-eof.wit +0 -0
  2016. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/type-then-eof.wit.json +0 -0
  2017. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/types.wit +0 -0
  2018. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/types.wit.json +0 -0
  2019. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-1.wit +0 -0
  2020. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-1.wit.json +0 -0
  2021. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-2.wit +0 -0
  2022. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/union-fuzz-2.wit.json +0 -0
  2023. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/use-chain.wit +0 -0
  2024. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/use-chain.wit.json +0 -0
  2025. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/use.wit +0 -0
  2026. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/use.wit.json +0 -0
  2027. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/versions/deps/a1/foo.wit +0 -0
  2028. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/versions/deps/a2/foo.wit +0 -0
  2029. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/versions/foo.wit +0 -0
  2030. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/versions.wit.json +0 -0
  2031. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/wasi.wit +0 -0
  2032. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/wasi.wit.json +0 -0
  2033. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-diamond.wit +0 -0
  2034. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-iface-no-collide.wit +0 -0
  2035. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import1.wit +0 -0
  2036. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import2.wit +0 -0
  2037. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-implicit-import3.wit +0 -0
  2038. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-same-fields4.wit +0 -0
  2039. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-top-level-funcs.wit +0 -0
  2040. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-top-level-funcs.wit.json +0 -0
  2041. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/world-top-level-resources.wit +0 -0
  2042. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/worlds-union-dedup.wit +0 -0
  2043. /data/ext/cargo-vendor/{wit-parser-0.207.0 → wit-parser-0.209.1}/tests/ui/worlds-with-types.wit +0 -0
@@ -0,0 +1,3113 @@
1
+ //! This module provides a [`Builder`] for reading, modifying, and then writing ELF files.
2
+ use alloc::vec::Vec;
3
+ use core::convert::TryInto;
4
+ use core::fmt;
5
+ use core::marker::PhantomData;
6
+ #[cfg(not(feature = "std"))]
7
+ use hashbrown::HashMap;
8
+ #[cfg(feature = "std")]
9
+ use std::collections::HashMap;
10
+
11
+ use crate::build::{ByteString, Bytes, Error, Id, IdPrivate, Item, Result, Table};
12
+ use crate::elf;
13
+ use crate::read::elf::{Dyn, FileHeader, ProgramHeader, Rela, SectionHeader, Sym};
14
+ use crate::read::{self, FileKind, ReadRef};
15
+ use crate::write;
16
+ use crate::Endianness;
17
+
18
+ /// A builder for reading, modifying, and then writing ELF files.
19
+ ///
20
+ /// Public fields are available for modifying the values that will be written.
21
+ /// Methods are available to add elements to tables, and elements can be deleted
22
+ /// from tables by setting the `delete` field in the element.
23
+ #[derive(Debug)]
24
+ pub struct Builder<'data> {
25
+ /// The endianness.
26
+ ///
27
+ /// Used to set the data encoding when writing the ELF file.
28
+ pub endian: Endianness,
29
+ /// Whether file is 64-bit.
30
+ ///
31
+ /// Use to set the file class when writing the ELF file.
32
+ pub is_64: bool,
33
+ /// The alignment of [`elf::PT_LOAD`] segments.
34
+ ///
35
+ /// This is an informational field and is not used when writing the ELF file.
36
+ /// It can optionally be used when calling [`Segments::add_load_segment`].
37
+ ///
38
+ /// It is determined heuristically when reading the ELF file. Currently,
39
+ /// if all load segments have the same alignment, that alignment is used,
40
+ /// otherwise it is set to 1.
41
+ pub load_align: u64,
42
+ /// The file header.
43
+ pub header: Header,
44
+ /// The segment table.
45
+ pub segments: Segments<'data>,
46
+ /// The section table.
47
+ pub sections: Sections<'data>,
48
+ /// The symbol table.
49
+ pub symbols: Symbols<'data>,
50
+ /// The dynamic symbol table.
51
+ pub dynamic_symbols: DynamicSymbols<'data>,
52
+ /// The base version for the GNU version definitions.
53
+ ///
54
+ /// This will be written as a version definition with index 1.
55
+ pub version_base: Option<ByteString<'data>>,
56
+ /// The GNU version definitions and dependencies.
57
+ pub versions: Versions<'data>,
58
+ /// The filenames used in the GNU version definitions.
59
+ pub version_files: VersionFiles<'data>,
60
+ /// The bucket count parameter for the hash table.
61
+ pub hash_bucket_count: u32,
62
+ /// The bloom shift parameter for the GNU hash table.
63
+ pub gnu_hash_bloom_shift: u32,
64
+ /// The bloom count parameter for the GNU hash table.
65
+ pub gnu_hash_bloom_count: u32,
66
+ /// The bucket count parameter for the GNU hash table.
67
+ pub gnu_hash_bucket_count: u32,
68
+ marker: PhantomData<()>,
69
+ }
70
+
71
+ impl<'data> Builder<'data> {
72
+ /// Create a new ELF builder.
73
+ pub fn new(endian: Endianness, is_64: bool) -> Self {
74
+ Self {
75
+ endian,
76
+ is_64,
77
+ load_align: 1,
78
+ header: Header::default(),
79
+ segments: Segments::new(),
80
+ sections: Sections::new(),
81
+ symbols: Symbols::new(),
82
+ dynamic_symbols: Symbols::new(),
83
+ version_base: None,
84
+ versions: Versions::new(),
85
+ version_files: VersionFiles::new(),
86
+ hash_bucket_count: 0,
87
+ gnu_hash_bloom_shift: 0,
88
+ gnu_hash_bloom_count: 0,
89
+ gnu_hash_bucket_count: 0,
90
+ marker: PhantomData,
91
+ }
92
+ }
93
+
94
+ /// Read the ELF file from file data.
95
+ pub fn read<R: ReadRef<'data>>(data: R) -> Result<Self> {
96
+ match FileKind::parse(data)? {
97
+ FileKind::Elf32 => Self::read32(data),
98
+ FileKind::Elf64 => Self::read64(data),
99
+ #[allow(unreachable_patterns)]
100
+ _ => Err(Error::new("Not an ELF file")),
101
+ }
102
+ }
103
+
104
+ /// Read a 32-bit ELF file from file data.
105
+ pub fn read32<R: ReadRef<'data>>(data: R) -> Result<Self> {
106
+ Self::read_file::<elf::FileHeader32<Endianness>, R>(data)
107
+ }
108
+
109
+ /// Read a 64-bit ELF file from file data.
110
+ pub fn read64<R: ReadRef<'data>>(data: R) -> Result<Self> {
111
+ Self::read_file::<elf::FileHeader64<Endianness>, R>(data)
112
+ }
113
+
114
+ fn read_file<Elf, R>(data: R) -> Result<Self>
115
+ where
116
+ Elf: FileHeader<Endian = Endianness>,
117
+ R: ReadRef<'data>,
118
+ {
119
+ let header = Elf::parse(data)?;
120
+ let endian = header.endian()?;
121
+ let is_mips64el = header.is_mips64el(endian);
122
+ let section_strings_index = header.section_strings_index(endian, data)?;
123
+ let segments = header.program_headers(endian, data)?;
124
+ let sections = header.sections(endian, data)?;
125
+ let symbols = sections.symbols(endian, data, elf::SHT_SYMTAB)?;
126
+ let dynamic_symbols = sections.symbols(endian, data, elf::SHT_DYNSYM)?;
127
+
128
+ let mut builder = Builder {
129
+ endian,
130
+ is_64: header.is_type_64(),
131
+ load_align: 0,
132
+ header: Header {
133
+ os_abi: header.e_ident().os_abi,
134
+ abi_version: header.e_ident().abi_version,
135
+ e_type: header.e_type(endian),
136
+ e_machine: header.e_machine(endian),
137
+ e_entry: header.e_entry(endian).into(),
138
+ e_flags: header.e_flags(endian),
139
+ e_phoff: header.e_phoff(endian).into(),
140
+ },
141
+ segments: Segments::new(),
142
+ sections: Sections::new(),
143
+ symbols: Symbols::new(),
144
+ dynamic_symbols: Symbols::new(),
145
+ version_base: None,
146
+ versions: Versions::new(),
147
+ version_files: VersionFiles::new(),
148
+ hash_bucket_count: 0,
149
+ gnu_hash_bloom_shift: 0,
150
+ gnu_hash_bloom_count: 0,
151
+ gnu_hash_bucket_count: 0,
152
+ marker: PhantomData,
153
+ };
154
+
155
+ for segment in segments {
156
+ if segment.p_type(endian) == elf::PT_LOAD {
157
+ let p_align = segment.p_align(endian).into();
158
+ if builder.load_align == 0 {
159
+ builder.load_align = p_align;
160
+ } else if builder.load_align != p_align {
161
+ builder.load_align = 1;
162
+ }
163
+ }
164
+
165
+ let id = builder.segments.next_id();
166
+ builder.segments.push(Segment {
167
+ id,
168
+ delete: false,
169
+ p_type: segment.p_type(endian),
170
+ p_flags: segment.p_flags(endian),
171
+ p_offset: segment.p_offset(endian).into(),
172
+ p_vaddr: segment.p_vaddr(endian).into(),
173
+ p_paddr: segment.p_paddr(endian).into(),
174
+ p_filesz: segment.p_filesz(endian).into(),
175
+ p_memsz: segment.p_memsz(endian).into(),
176
+ p_align: segment.p_align(endian).into(),
177
+ sections: Vec::new(),
178
+ marker: PhantomData,
179
+ });
180
+ }
181
+ if builder.load_align == 0 {
182
+ builder.load_align = 1;
183
+ }
184
+
185
+ for (index, section) in sections.enumerate().skip(1) {
186
+ let id = SectionId(index.0 - 1);
187
+ let relocations = if let Some((rels, link)) = section.rel(endian, data)? {
188
+ Self::read_relocations(
189
+ index,
190
+ endian,
191
+ is_mips64el,
192
+ section,
193
+ rels,
194
+ link,
195
+ &symbols,
196
+ &dynamic_symbols,
197
+ )?
198
+ } else if let Some((rels, link)) = section.rela(endian, data)? {
199
+ Self::read_relocations(
200
+ index,
201
+ endian,
202
+ is_mips64el,
203
+ section,
204
+ rels,
205
+ link,
206
+ &symbols,
207
+ &dynamic_symbols,
208
+ )?
209
+ } else {
210
+ SectionData::Data(Bytes::default())
211
+ };
212
+ if let Some(hash) = section.hash_header(endian, data)? {
213
+ builder.hash_bucket_count = hash.bucket_count.get(endian);
214
+ }
215
+ if let Some(hash) = section.gnu_hash_header(endian, data)? {
216
+ builder.gnu_hash_bloom_shift = hash.bloom_shift.get(endian);
217
+ builder.gnu_hash_bloom_count = hash.bloom_count.get(endian);
218
+ builder.gnu_hash_bucket_count = hash.bucket_count.get(endian);
219
+ }
220
+ let data = match section.sh_type(endian) {
221
+ elf::SHT_NOBITS => SectionData::UninitializedData(section.sh_size(endian).into()),
222
+ elf::SHT_PROGBITS
223
+ | elf::SHT_INIT_ARRAY
224
+ | elf::SHT_FINI_ARRAY
225
+ | elf::SHT_PREINIT_ARRAY => SectionData::Data(section.data(endian, data)?.into()),
226
+ elf::SHT_REL | elf::SHT_RELA => relocations,
227
+ elf::SHT_SYMTAB => {
228
+ if index == symbols.section() {
229
+ SectionData::Symbol
230
+ } else {
231
+ return Err(Error(format!(
232
+ "Unsupported SHT_SYMTAB section at index {}",
233
+ index
234
+ )));
235
+ }
236
+ }
237
+ elf::SHT_SYMTAB_SHNDX => {
238
+ if index == symbols.shndx_section() {
239
+ SectionData::SymbolSectionIndex
240
+ } else {
241
+ return Err(Error(format!(
242
+ "Unsupported SHT_SYMTAB_SHNDX section at index {}",
243
+ index
244
+ )));
245
+ }
246
+ }
247
+ elf::SHT_DYNSYM => {
248
+ if index == dynamic_symbols.section() {
249
+ SectionData::DynamicSymbol
250
+ } else {
251
+ return Err(Error(format!(
252
+ "Unsupported SHT_DYNSYM section at index {}",
253
+ index
254
+ )));
255
+ }
256
+ }
257
+ elf::SHT_STRTAB => {
258
+ if index == symbols.string_section() {
259
+ SectionData::String
260
+ } else if index == dynamic_symbols.string_section() {
261
+ SectionData::DynamicString
262
+ } else if index == section_strings_index {
263
+ SectionData::SectionString
264
+ } else {
265
+ return Err(Error(format!(
266
+ "Unsupported SHT_STRTAB section at index {}",
267
+ index
268
+ )));
269
+ }
270
+ }
271
+ elf::SHT_NOTE => SectionData::Note(section.data(endian, data)?.into()),
272
+ elf::SHT_DYNAMIC => {
273
+ let (dyns, link) = section.dynamic(endian, data)?.unwrap();
274
+ let dynamic_strings = sections.strings(endian, data, link)?;
275
+ Self::read_dynamics::<Elf, _>(endian, dyns, dynamic_strings)?
276
+ }
277
+ elf::SHT_GNU_ATTRIBUTES => {
278
+ let attributes = section.attributes(endian, data)?;
279
+ Self::read_attributes(index, attributes, sections.len(), symbols.len())?
280
+ }
281
+ elf::SHT_HASH => SectionData::Hash,
282
+ elf::SHT_GNU_HASH => SectionData::GnuHash,
283
+ elf::SHT_GNU_VERSYM => SectionData::GnuVersym,
284
+ elf::SHT_GNU_VERDEF => SectionData::GnuVerdef,
285
+ elf::SHT_GNU_VERNEED => SectionData::GnuVerneed,
286
+ other => match (builder.header.e_machine, other) {
287
+ (elf::EM_ARM, elf::SHT_ARM_ATTRIBUTES)
288
+ | (elf::EM_AARCH64, elf::SHT_AARCH64_ATTRIBUTES)
289
+ | (elf::EM_CSKY, elf::SHT_CSKY_ATTRIBUTES)
290
+ | (elf::EM_RISCV, elf::SHT_RISCV_ATTRIBUTES) => {
291
+ let attributes = section.attributes(endian, data)?;
292
+ Self::read_attributes(index, attributes, sections.len(), symbols.len())?
293
+ }
294
+ // Some section types that we can't parse but that are safe to copy.
295
+ // Lots of types missing, add as needed. We can't default to copying
296
+ // everything because some types are not safe to copy.
297
+ (elf::EM_ARM, elf::SHT_ARM_EXIDX)
298
+ | (elf::EM_IA_64, elf::SHT_IA_64_UNWIND)
299
+ | (elf::EM_MIPS, elf::SHT_MIPS_REGINFO)
300
+ | (elf::EM_MIPS, elf::SHT_MIPS_DWARF)
301
+ | (elf::EM_X86_64, elf::SHT_X86_64_UNWIND) => {
302
+ SectionData::Data(section.data(endian, data)?.into())
303
+ }
304
+ _ => return Err(Error(format!("Unsupported section type {:x}", other))),
305
+ },
306
+ };
307
+ let sh_flags = section.sh_flags(endian).into();
308
+ let sh_link = section.sh_link(endian);
309
+ let sh_link_section = if sh_link == 0 {
310
+ None
311
+ } else {
312
+ if sh_link as usize >= sections.len() {
313
+ return Err(Error(format!(
314
+ "Invalid sh_link {} in section at index {}",
315
+ sh_link, index
316
+ )));
317
+ }
318
+ Some(SectionId(sh_link as usize - 1))
319
+ };
320
+ let sh_info = section.sh_info(endian);
321
+ let sh_info_section = if sh_info == 0 || sh_flags & u64::from(elf::SHF_INFO_LINK) == 0 {
322
+ None
323
+ } else {
324
+ if sh_info as usize >= sections.len() {
325
+ return Err(Error(format!(
326
+ "Invalid sh_info link {} in section at index {}",
327
+ sh_info, index
328
+ )));
329
+ }
330
+ Some(SectionId(sh_info as usize - 1))
331
+ };
332
+ let sh_flags = section.sh_flags(endian).into();
333
+ let sh_addr = section.sh_addr(endian).into();
334
+ if sh_flags & u64::from(elf::SHF_ALLOC) != 0 {
335
+ for segment in &mut builder.segments {
336
+ if segment.contains_address(sh_addr) {
337
+ segment.sections.push(id);
338
+ }
339
+ }
340
+ }
341
+ builder.sections.push(Section {
342
+ id,
343
+ delete: false,
344
+ name: sections.section_name(endian, section)?.into(),
345
+ sh_type: section.sh_type(endian),
346
+ sh_flags,
347
+ sh_addr,
348
+ sh_offset: section.sh_offset(endian).into(),
349
+ sh_size: section.sh_size(endian).into(),
350
+ sh_link_section,
351
+ sh_info,
352
+ sh_info_section,
353
+ sh_addralign: section.sh_addralign(endian).into(),
354
+ sh_entsize: section.sh_entsize(endian).into(),
355
+ data,
356
+ });
357
+ }
358
+
359
+ Self::read_symbols(
360
+ endian,
361
+ &symbols,
362
+ &mut builder.symbols,
363
+ builder.sections.len(),
364
+ )?;
365
+ Self::read_symbols(
366
+ endian,
367
+ &dynamic_symbols,
368
+ &mut builder.dynamic_symbols,
369
+ builder.sections.len(),
370
+ )?;
371
+ builder.read_gnu_versions(endian, data, &sections, &dynamic_symbols)?;
372
+
373
+ Ok(builder)
374
+ }
375
+
376
+ #[allow(clippy::too_many_arguments)]
377
+ fn read_relocations<Elf, Rel, R>(
378
+ index: read::SectionIndex,
379
+ endian: Elf::Endian,
380
+ is_mips64el: bool,
381
+ section: &'data Elf::SectionHeader,
382
+ rels: &'data [Rel],
383
+ link: read::SectionIndex,
384
+ symbols: &read::elf::SymbolTable<'data, Elf, R>,
385
+ dynamic_symbols: &read::elf::SymbolTable<'data, Elf, R>,
386
+ ) -> Result<SectionData<'data>>
387
+ where
388
+ Elf: FileHeader<Endian = Endianness>,
389
+ Rel: Copy + Into<Elf::Rela>,
390
+ R: ReadRef<'data>,
391
+ {
392
+ if link == dynamic_symbols.section() {
393
+ Self::read_relocations_impl::<Elf, Rel, true>(
394
+ index,
395
+ endian,
396
+ is_mips64el,
397
+ rels,
398
+ dynamic_symbols.len(),
399
+ )
400
+ .map(SectionData::DynamicRelocation)
401
+ } else if link.0 == 0 || section.sh_flags(endian).into() & u64::from(elf::SHF_ALLOC) != 0 {
402
+ // If there's no link, then none of the relocations may reference symbols.
403
+ // Assume that these are dynamic relocations, but don't use the dynamic
404
+ // symbol table when parsing.
405
+ //
406
+ // Additionally, sometimes there is an allocated section that links to
407
+ // the static symbol table. We don't currently support this case in general,
408
+ // but if none of the relocation entries reference a symbol then it is
409
+ // safe to treat it as a dynamic relocation section.
410
+ //
411
+ // For both of these cases, if there is a reference to a symbol then
412
+ // an error will be returned when parsing the relocations.
413
+ Self::read_relocations_impl::<Elf, Rel, true>(index, endian, is_mips64el, rels, 0)
414
+ .map(SectionData::DynamicRelocation)
415
+ } else if link == symbols.section() {
416
+ Self::read_relocations_impl::<Elf, Rel, false>(
417
+ index,
418
+ endian,
419
+ is_mips64el,
420
+ rels,
421
+ symbols.len(),
422
+ )
423
+ .map(SectionData::Relocation)
424
+ } else {
425
+ return Err(Error(format!(
426
+ "Invalid sh_link {} in relocation section at index {}",
427
+ link.0, index,
428
+ )));
429
+ }
430
+ }
431
+
432
+ fn read_relocations_impl<Elf, Rel, const DYNAMIC: bool>(
433
+ index: read::SectionIndex,
434
+ endian: Elf::Endian,
435
+ is_mips64el: bool,
436
+ rels: &'data [Rel],
437
+ symbols_len: usize,
438
+ ) -> Result<Vec<Relocation<DYNAMIC>>>
439
+ where
440
+ Elf: FileHeader<Endian = Endianness>,
441
+ Rel: Copy + Into<Elf::Rela>,
442
+ {
443
+ let mut relocations = Vec::new();
444
+ for rel in rels {
445
+ let rel = (*rel).into();
446
+ let symbol = if let Some(symbol) = rel.symbol(endian, is_mips64el) {
447
+ if symbol.0 >= symbols_len {
448
+ return Err(Error(format!(
449
+ "Invalid symbol index {} in relocation section at index {}",
450
+ symbol, index,
451
+ )));
452
+ }
453
+ Some(SymbolId(symbol.0 - 1))
454
+ } else {
455
+ None
456
+ };
457
+ relocations.push(Relocation {
458
+ r_offset: rel.r_offset(endian).into(),
459
+ symbol,
460
+ r_type: rel.r_type(endian, is_mips64el),
461
+ r_addend: rel.r_addend(endian).into(),
462
+ });
463
+ }
464
+ Ok(relocations)
465
+ }
466
+
467
+ fn read_dynamics<Elf, R>(
468
+ endian: Elf::Endian,
469
+ dyns: &'data [Elf::Dyn],
470
+ strings: read::StringTable<'data, R>,
471
+ ) -> Result<SectionData<'data>>
472
+ where
473
+ Elf: FileHeader<Endian = Endianness>,
474
+ R: ReadRef<'data>,
475
+ {
476
+ let mut dynamics = Vec::with_capacity(dyns.len());
477
+ for d in dyns {
478
+ let tag = d.d_tag(endian).into().try_into().map_err(|_| {
479
+ Error(format!(
480
+ "Unsupported dynamic tag 0x{:x}",
481
+ d.d_tag(endian).into()
482
+ ))
483
+ })?;
484
+ if tag == elf::DT_NULL {
485
+ break;
486
+ }
487
+ let val = d.d_val(endian).into();
488
+ dynamics.push(if d.is_string(endian) {
489
+ let val =
490
+ strings
491
+ .get(val.try_into().map_err(|_| {
492
+ Error(format!("Unsupported dynamic string 0x{:x}", val))
493
+ })?)
494
+ .map_err(|_| Error(format!("Invalid dynamic string 0x{:x}", val)))?;
495
+ Dynamic::String {
496
+ tag,
497
+ val: val.into(),
498
+ }
499
+ } else {
500
+ match tag {
501
+ elf::DT_SYMTAB
502
+ | elf::DT_STRTAB
503
+ | elf::DT_STRSZ
504
+ | elf::DT_HASH
505
+ | elf::DT_GNU_HASH
506
+ | elf::DT_VERSYM
507
+ | elf::DT_VERDEF
508
+ | elf::DT_VERDEFNUM
509
+ | elf::DT_VERNEED
510
+ | elf::DT_VERNEEDNUM => Dynamic::Auto { tag },
511
+ _ => Dynamic::Integer { tag, val },
512
+ }
513
+ });
514
+ }
515
+ Ok(SectionData::Dynamic(dynamics))
516
+ }
517
+
518
+ fn read_symbols<Elf, R, const DYNAMIC: bool>(
519
+ endian: Elf::Endian,
520
+ symbols: &read::elf::SymbolTable<'data, Elf, R>,
521
+ builder_symbols: &mut Symbols<'data, DYNAMIC>,
522
+ sections_len: usize,
523
+ ) -> Result<()>
524
+ where
525
+ Elf: FileHeader<Endian = Endianness>,
526
+ R: ReadRef<'data>,
527
+ {
528
+ for (index, symbol) in symbols.enumerate().skip(1) {
529
+ let id = SymbolId(index.0 - 1);
530
+ let section =
531
+ if let Some(section_index) = symbols.symbol_section(endian, symbol, index)? {
532
+ let section_id = section_index.0.wrapping_sub(1);
533
+ if section_id >= sections_len {
534
+ return Err(Error::new("Invalid symbol section index"));
535
+ }
536
+ Some(SectionId(section_id))
537
+ } else {
538
+ None
539
+ };
540
+ builder_symbols.push(Symbol {
541
+ id,
542
+ delete: false,
543
+ name: symbols.symbol_name(endian, symbol)?.into(),
544
+ section,
545
+ st_info: symbol.st_info(),
546
+ st_other: symbol.st_other(),
547
+ st_shndx: symbol.st_shndx(endian),
548
+ st_value: symbol.st_value(endian).into(),
549
+ st_size: symbol.st_size(endian).into(),
550
+ version: VersionId::local(),
551
+ version_hidden: false,
552
+ });
553
+ }
554
+ Ok(())
555
+ }
556
+
557
+ fn read_attributes<Elf>(
558
+ index: read::SectionIndex,
559
+ attributes: read::elf::AttributesSection<'data, Elf>,
560
+ sections_len: usize,
561
+ symbols_len: usize,
562
+ ) -> Result<SectionData<'data>>
563
+ where
564
+ Elf: FileHeader<Endian = Endianness>,
565
+ {
566
+ let mut builder_attributes = AttributesSection::new();
567
+ let mut subsections = attributes.subsections()?;
568
+ while let Some(subsection) = subsections.next()? {
569
+ let mut builder_subsection = AttributesSubsection::new(subsection.vendor().into());
570
+ let mut subsubsections = subsection.subsubsections();
571
+ while let Some(subsubsection) = subsubsections.next()? {
572
+ let tag = match subsubsection.tag() {
573
+ elf::Tag_File => AttributeTag::File,
574
+ elf::Tag_Section => {
575
+ let mut tag_sections = Vec::new();
576
+ let mut indices = subsubsection.indices();
577
+ while let Some(index) = indices.next()? {
578
+ let index = index as usize;
579
+ if index >= sections_len {
580
+ return Err(Error(format!(
581
+ "Invalid section index {} in attribute",
582
+ index
583
+ )));
584
+ }
585
+ tag_sections.push(SectionId(index - 1));
586
+ }
587
+ AttributeTag::Section(tag_sections)
588
+ }
589
+ elf::Tag_Symbol => {
590
+ let mut tag_symbols = Vec::new();
591
+ let mut indices = subsubsection.indices();
592
+ while let Some(index) = indices.next()? {
593
+ let index = index as usize;
594
+ if index >= symbols_len {
595
+ return Err(Error(format!(
596
+ "Invalid symbol index {} in attribute",
597
+ index
598
+ )));
599
+ }
600
+ tag_symbols.push(SymbolId(index - 1));
601
+ }
602
+ AttributeTag::Symbol(tag_symbols)
603
+ }
604
+ tag => {
605
+ return Err(Error(format!(
606
+ "Unsupported attribute tag 0x{:x} in section at index {}",
607
+ tag, index,
608
+ )))
609
+ }
610
+ };
611
+ let data = subsubsection.attributes_data().into();
612
+ builder_subsection
613
+ .subsubsections
614
+ .push(AttributesSubsubsection { tag, data });
615
+ }
616
+ builder_attributes.subsections.push(builder_subsection);
617
+ }
618
+ Ok(SectionData::Attributes(builder_attributes))
619
+ }
620
+
621
+ fn read_gnu_versions<Elf, R>(
622
+ &mut self,
623
+ endian: Elf::Endian,
624
+ data: R,
625
+ sections: &read::elf::SectionTable<'data, Elf, R>,
626
+ dynamic_symbols: &read::elf::SymbolTable<'data, Elf, R>,
627
+ ) -> Result<()>
628
+ where
629
+ Elf: FileHeader<Endian = Endianness>,
630
+ R: ReadRef<'data>,
631
+ {
632
+ let strings = dynamic_symbols.strings();
633
+ let mut ids = HashMap::new();
634
+ ids.insert(0, VersionId::local());
635
+ ids.insert(1, VersionId::global());
636
+
637
+ if let Some((mut verdefs, link)) = sections.gnu_verdef(endian, data)? {
638
+ if link != dynamic_symbols.string_section() {
639
+ return Err(Error::new("Invalid SHT_GNU_VERDEF section"));
640
+ }
641
+ while let Some((verdef, mut verdauxs)) = verdefs.next()? {
642
+ let flags = verdef.vd_flags.get(endian);
643
+ if flags & elf::VER_FLG_BASE != 0 {
644
+ if flags != elf::VER_FLG_BASE
645
+ || verdef.vd_ndx.get(endian) != 1
646
+ || verdef.vd_cnt.get(endian) != 1
647
+ {
648
+ return Err(Error::new("Unsupported VER_FLG_BASE in SHT_GNU_VERDEF"));
649
+ }
650
+ if self.version_base.is_some() {
651
+ return Err(Error::new("Duplicate VER_FLG_BASE in SHT_GNU_VERDEF"));
652
+ }
653
+ let verdaux = verdauxs.next()?.ok_or_else(|| {
654
+ Error::new("Missing name for VER_FLG_BASE in SHT_GNU_VERDEF")
655
+ })?;
656
+ self.version_base = Some(verdaux.name(endian, strings)?.into());
657
+ continue;
658
+ }
659
+
660
+ let index = verdef.vd_ndx.get(endian) & elf::VERSYM_VERSION;
661
+ let id = self.versions.next_id();
662
+ if ids.insert(index, id).is_some() {
663
+ return Err(Error(format!("Duplicate SHT_GNU_VERDEF index {}", index)));
664
+ }
665
+
666
+ let mut names = Vec::new();
667
+ while let Some(verdaux) = verdauxs.next()? {
668
+ names.push(verdaux.name(endian, strings)?.into());
669
+ }
670
+
671
+ let data = VersionData::Def(VersionDef { flags, names });
672
+ self.versions.push(Version {
673
+ id,
674
+ delete: false,
675
+ data,
676
+ });
677
+ }
678
+ }
679
+
680
+ if let Some((mut verneeds, link)) = sections.gnu_verneed(endian, data)? {
681
+ if link != dynamic_symbols.string_section() {
682
+ return Err(Error::new("Invalid SHT_GNU_VERNEED section"));
683
+ }
684
+ while let Some((verneed, mut vernauxs)) = verneeds.next()? {
685
+ let file = VersionFileId(self.version_files.len());
686
+ self.version_files.push(VersionFile {
687
+ id: file,
688
+ delete: false,
689
+ name: verneed.file(endian, strings)?.into(),
690
+ });
691
+ while let Some(vernaux) = vernauxs.next()? {
692
+ let index = vernaux.vna_other.get(endian) & elf::VERSYM_VERSION;
693
+ let id = self.versions.next_id();
694
+ if ids.insert(index, id).is_some() {
695
+ return Err(Error(format!("Duplicate SHT_GNU_VERNEED index {}", index)));
696
+ }
697
+
698
+ let data = VersionData::Need(VersionNeed {
699
+ flags: vernaux.vna_flags.get(endian),
700
+ name: vernaux.name(endian, strings)?.into(),
701
+ file,
702
+ });
703
+ self.versions.push(Version {
704
+ id,
705
+ delete: false,
706
+ data,
707
+ });
708
+ }
709
+ }
710
+ }
711
+
712
+ if let Some((versyms, link)) = sections.gnu_versym(endian, data)? {
713
+ if versyms.len() != dynamic_symbols.len() || link != dynamic_symbols.section() {
714
+ return Err(Error::new("Invalid SHT_GNU_VERSYM section"));
715
+ }
716
+ for (id, versym) in versyms.iter().skip(1).enumerate() {
717
+ let index = versym.0.get(endian);
718
+ let symbol = self.dynamic_symbols.get_mut(SymbolId(id));
719
+ symbol.version = *ids
720
+ .get(&(index & elf::VERSYM_VERSION))
721
+ .ok_or_else(|| Error(format!("Invalid SHT_GNU_VERSYM index {:x}", index)))?;
722
+ symbol.version_hidden = index & elf::VERSYM_HIDDEN != 0;
723
+ }
724
+ }
725
+ Ok(())
726
+ }
727
+
728
+ /// Write the ELF file to the buffer.
729
+ pub fn write(mut self, buffer: &mut dyn write::WritableBuffer) -> Result<()> {
730
+ struct SectionOut {
731
+ id: SectionId,
732
+ name: Option<write::StringId>,
733
+ offset: usize,
734
+ attributes: Vec<u8>,
735
+ }
736
+
737
+ struct SymbolOut {
738
+ id: SymbolId,
739
+ name: Option<write::StringId>,
740
+ }
741
+
742
+ struct DynamicSymbolOut {
743
+ id: DynamicSymbolId,
744
+ name: Option<write::StringId>,
745
+ hash: Option<u32>,
746
+ gnu_hash: Option<u32>,
747
+ }
748
+
749
+ #[derive(Default, Clone)]
750
+ struct VersionFileOut {
751
+ versions: Vec<VersionId>,
752
+ }
753
+
754
+ // TODO: require the caller to do this?
755
+ self.delete_orphans();
756
+ self.delete_unused_versions();
757
+
758
+ let mut writer = write::elf::Writer::new(self.endian, self.is_64, buffer);
759
+
760
+ // Find metadata sections, and assign section indices.
761
+ let mut shstrtab_id = None;
762
+ let mut symtab_id = None;
763
+ let mut symtab_shndx_id = None;
764
+ let mut strtab_id = None;
765
+ let mut dynsym_id = None;
766
+ let mut dynstr_id = None;
767
+ let mut hash_id = None;
768
+ let mut gnu_hash_id = None;
769
+ let mut gnu_versym_id = None;
770
+ let mut gnu_verdef_id = None;
771
+ let mut gnu_verneed_id = None;
772
+ let mut out_sections = Vec::with_capacity(self.sections.len());
773
+ let mut out_sections_index = vec![None; self.sections.len()];
774
+ if !self.sections.is_empty() {
775
+ writer.reserve_null_section_index();
776
+ }
777
+ for section in &self.sections {
778
+ let index = match &section.data {
779
+ SectionData::Data(_)
780
+ | SectionData::UninitializedData(_)
781
+ | SectionData::Relocation(_)
782
+ | SectionData::DynamicRelocation(_)
783
+ | SectionData::Note(_)
784
+ | SectionData::Dynamic(_)
785
+ | SectionData::Attributes(_) => writer.reserve_section_index(),
786
+ SectionData::SectionString => {
787
+ if shstrtab_id.is_some() {
788
+ return Err(Error::new("Multiple .shstrtab sections"));
789
+ }
790
+ shstrtab_id = Some(section.id);
791
+ writer.reserve_shstrtab_section_index_with_name(&section.name)
792
+ }
793
+ SectionData::Symbol => {
794
+ if symtab_id.is_some() {
795
+ return Err(Error::new("Multiple .symtab sections"));
796
+ }
797
+ symtab_id = Some(section.id);
798
+ writer.reserve_symtab_section_index_with_name(&section.name)
799
+ }
800
+ SectionData::SymbolSectionIndex => {
801
+ if symtab_shndx_id.is_some() {
802
+ return Err(Error::new("Multiple .symtab_shndx sections"));
803
+ }
804
+ symtab_shndx_id = Some(section.id);
805
+ writer.reserve_symtab_shndx_section_index_with_name(&section.name)
806
+ }
807
+ SectionData::String => {
808
+ if strtab_id.is_some() {
809
+ return Err(Error::new("Multiple .strtab sections"));
810
+ }
811
+ strtab_id = Some(section.id);
812
+ writer.reserve_strtab_section_index_with_name(&section.name)
813
+ }
814
+ SectionData::DynamicSymbol => {
815
+ if dynsym_id.is_some() {
816
+ return Err(Error::new("Multiple .dynsym sections"));
817
+ }
818
+ dynsym_id = Some(section.id);
819
+ writer.reserve_dynsym_section_index_with_name(&section.name)
820
+ }
821
+ SectionData::DynamicString => {
822
+ if dynstr_id.is_some() {
823
+ return Err(Error::new("Multiple .dynstr sections"));
824
+ }
825
+ dynstr_id = Some(section.id);
826
+ writer.reserve_dynstr_section_index_with_name(&section.name)
827
+ }
828
+ SectionData::Hash => {
829
+ if hash_id.is_some() {
830
+ return Err(Error::new("Multiple .hash sections"));
831
+ }
832
+ hash_id = Some(section.id);
833
+ writer.reserve_hash_section_index_with_name(&section.name)
834
+ }
835
+ SectionData::GnuHash => {
836
+ if gnu_hash_id.is_some() {
837
+ return Err(Error::new("Multiple .gnu.hash sections"));
838
+ }
839
+ gnu_hash_id = Some(section.id);
840
+ writer.reserve_gnu_hash_section_index_with_name(&section.name)
841
+ }
842
+ SectionData::GnuVersym => {
843
+ if gnu_versym_id.is_some() {
844
+ return Err(Error::new("Multiple .gnu.version sections"));
845
+ }
846
+ gnu_versym_id = Some(section.id);
847
+ writer.reserve_gnu_versym_section_index_with_name(&section.name)
848
+ }
849
+ SectionData::GnuVerdef => {
850
+ if gnu_verdef_id.is_some() {
851
+ return Err(Error::new("Multiple .gnu.version_d sections"));
852
+ }
853
+ gnu_verdef_id = Some(section.id);
854
+ writer.reserve_gnu_verdef_section_index_with_name(&section.name)
855
+ }
856
+ SectionData::GnuVerneed => {
857
+ if gnu_verneed_id.is_some() {
858
+ return Err(Error::new("Multiple .gnu.version_r sections"));
859
+ }
860
+ gnu_verneed_id = Some(section.id);
861
+ writer.reserve_gnu_verneed_section_index_with_name(&section.name)
862
+ }
863
+ };
864
+ out_sections_index[section.id.0] = Some(index);
865
+
866
+ let name = if section.name.is_empty() {
867
+ None
868
+ } else {
869
+ Some(writer.add_section_name(&section.name))
870
+ };
871
+ out_sections.push(SectionOut {
872
+ id: section.id,
873
+ name,
874
+ offset: 0,
875
+ attributes: Vec::new(),
876
+ });
877
+ }
878
+
879
+ // Assign dynamic strings.
880
+ for section in &self.sections {
881
+ if let SectionData::Dynamic(dynamics) = &section.data {
882
+ for dynamic in dynamics {
883
+ if let Dynamic::String { val, .. } = dynamic {
884
+ writer.add_dynamic_string(val);
885
+ }
886
+ }
887
+ }
888
+ }
889
+
890
+ // Assign dynamic symbol indices.
891
+ let mut out_dynsyms = Vec::with_capacity(self.dynamic_symbols.len());
892
+ // Local symbols must come before global.
893
+ let local_symbols = self
894
+ .dynamic_symbols
895
+ .into_iter()
896
+ .filter(|symbol| symbol.st_bind() == elf::STB_LOCAL);
897
+ let global_symbols = self
898
+ .dynamic_symbols
899
+ .into_iter()
900
+ .filter(|symbol| symbol.st_bind() != elf::STB_LOCAL);
901
+ for symbol in local_symbols.chain(global_symbols) {
902
+ let mut name = None;
903
+ let mut hash = None;
904
+ let mut gnu_hash = None;
905
+ if !symbol.name.is_empty() {
906
+ name = Some(writer.add_dynamic_string(&symbol.name));
907
+ if hash_id.is_some() {
908
+ hash = Some(elf::hash(&symbol.name));
909
+ }
910
+ if gnu_hash_id.is_some()
911
+ && (symbol.section.is_some() || symbol.st_shndx != elf::SHN_UNDEF)
912
+ {
913
+ gnu_hash = Some(elf::gnu_hash(&symbol.name));
914
+ }
915
+ }
916
+ out_dynsyms.push(DynamicSymbolOut {
917
+ id: symbol.id,
918
+ name,
919
+ hash,
920
+ gnu_hash,
921
+ });
922
+ }
923
+ let num_local_dynamic = out_dynsyms
924
+ .iter()
925
+ .take_while(|sym| self.dynamic_symbols.get(sym.id).st_bind() == elf::STB_LOCAL)
926
+ .count();
927
+ // We must sort for GNU hash before allocating symbol indices.
928
+ let mut gnu_hash_symbol_count = 0;
929
+ if gnu_hash_id.is_some() {
930
+ if self.gnu_hash_bucket_count == 0 {
931
+ return Err(Error::new(".gnu.hash bucket count is zero"));
932
+ }
933
+ // TODO: recalculate bucket_count?
934
+ out_dynsyms[num_local_dynamic..].sort_by_key(|sym| match sym.gnu_hash {
935
+ None => (0, 0),
936
+ Some(hash) => (1, hash % self.gnu_hash_bucket_count),
937
+ });
938
+ gnu_hash_symbol_count = out_dynsyms
939
+ .iter()
940
+ .skip(num_local_dynamic)
941
+ .skip_while(|sym| sym.gnu_hash.is_none())
942
+ .count() as u32;
943
+ }
944
+ let mut out_dynsyms_index = vec![None; self.dynamic_symbols.len()];
945
+ if dynsym_id.is_some() {
946
+ writer.reserve_null_dynamic_symbol_index();
947
+ }
948
+ for out_dynsym in &mut out_dynsyms {
949
+ out_dynsyms_index[out_dynsym.id.0] = Some(writer.reserve_dynamic_symbol_index());
950
+ }
951
+
952
+ // Hash parameters.
953
+ let hash_index_base = 1; // Null symbol.
954
+ let hash_chain_count = hash_index_base + out_dynsyms.len() as u32;
955
+
956
+ // GNU hash parameters.
957
+ let gnu_hash_index_base = if gnu_hash_symbol_count == 0 {
958
+ 0
959
+ } else {
960
+ out_dynsyms.len() as u32 - gnu_hash_symbol_count
961
+ };
962
+ let gnu_hash_symbol_base = gnu_hash_index_base + 1; // Null symbol.
963
+
964
+ // Assign symbol indices.
965
+ let mut out_syms = Vec::with_capacity(self.symbols.len());
966
+ // Local symbols must come before global.
967
+ let local_symbols = self
968
+ .symbols
969
+ .into_iter()
970
+ .filter(|symbol| symbol.st_bind() == elf::STB_LOCAL);
971
+ let global_symbols = self
972
+ .symbols
973
+ .into_iter()
974
+ .filter(|symbol| symbol.st_bind() != elf::STB_LOCAL);
975
+ for symbol in local_symbols.chain(global_symbols) {
976
+ let name = if symbol.name.is_empty() {
977
+ None
978
+ } else {
979
+ Some(writer.add_string(&symbol.name))
980
+ };
981
+
982
+ out_syms.push(SymbolOut {
983
+ id: symbol.id,
984
+ name,
985
+ });
986
+ }
987
+ let num_local = out_syms
988
+ .iter()
989
+ .take_while(|sym| self.symbols.get(sym.id).st_bind() == elf::STB_LOCAL)
990
+ .count();
991
+ let mut out_syms_index = vec![None; self.symbols.len()];
992
+ if symtab_id.is_some() {
993
+ writer.reserve_null_symbol_index();
994
+ }
995
+ for out_sym in out_syms.iter_mut() {
996
+ out_syms_index[out_sym.id.0] = Some(writer.reserve_symbol_index(None));
997
+ }
998
+
999
+ // Count the versions and add version strings.
1000
+ let mut verdef_count = 0;
1001
+ let mut verdaux_count = 0;
1002
+ let mut verdef_shared_base = false;
1003
+ let mut verneed_count = 0;
1004
+ let mut vernaux_count = 0;
1005
+ let mut out_version_files = vec![VersionFileOut::default(); self.version_files.len()];
1006
+ if let Some(version_base) = &self.version_base {
1007
+ verdef_count += 1;
1008
+ verdaux_count += 1;
1009
+ writer.add_dynamic_string(version_base);
1010
+ }
1011
+ for version in &self.versions {
1012
+ match &version.data {
1013
+ VersionData::Def(def) => {
1014
+ if def.is_shared(verdef_count, self.version_base.as_ref()) {
1015
+ verdef_shared_base = true;
1016
+ } else {
1017
+ verdaux_count += def.names.len();
1018
+ for name in &def.names {
1019
+ writer.add_dynamic_string(name);
1020
+ }
1021
+ }
1022
+ verdef_count += 1;
1023
+ }
1024
+ VersionData::Need(need) => {
1025
+ vernaux_count += 1;
1026
+ writer.add_dynamic_string(&need.name);
1027
+ out_version_files[need.file.0].versions.push(version.id);
1028
+ }
1029
+ }
1030
+ }
1031
+ for file in &self.version_files {
1032
+ verneed_count += 1;
1033
+ writer.add_dynamic_string(&file.name);
1034
+ }
1035
+
1036
+ // Build the attributes sections.
1037
+ for out_section in &mut out_sections {
1038
+ let SectionData::Attributes(attributes) = &self.sections.get(out_section.id).data
1039
+ else {
1040
+ continue;
1041
+ };
1042
+ if attributes.subsections.is_empty() {
1043
+ continue;
1044
+ }
1045
+ let mut writer = writer.attributes_writer();
1046
+ for subsection in &attributes.subsections {
1047
+ writer.start_subsection(&subsection.vendor);
1048
+ for subsubsection in &subsection.subsubsections {
1049
+ writer.start_subsubsection(subsubsection.tag.tag());
1050
+ match &subsubsection.tag {
1051
+ AttributeTag::File => {}
1052
+ AttributeTag::Section(sections) => {
1053
+ for id in sections {
1054
+ if let Some(index) = out_sections_index[id.0] {
1055
+ writer.write_subsubsection_index(index.0);
1056
+ }
1057
+ }
1058
+ writer.write_subsubsection_index(0);
1059
+ }
1060
+ AttributeTag::Symbol(symbols) => {
1061
+ for id in symbols {
1062
+ if let Some(index) = out_syms_index[id.0] {
1063
+ writer.write_subsubsection_index(index.0);
1064
+ }
1065
+ }
1066
+ writer.write_subsubsection_index(0);
1067
+ }
1068
+ }
1069
+ writer.write_subsubsection_attributes(&subsubsection.data);
1070
+ writer.end_subsubsection();
1071
+ }
1072
+ writer.end_subsection();
1073
+ }
1074
+ out_section.attributes = writer.data();
1075
+ }
1076
+
1077
+ // TODO: support section headers in strtab
1078
+ if shstrtab_id.is_none() && !out_sections.is_empty() {
1079
+ return Err(Error::new(".shstrtab section is needed but not present"));
1080
+ }
1081
+ if symtab_id.is_none() && !out_syms.is_empty() {
1082
+ return Err(Error::new(".symtab section is needed but not present"));
1083
+ }
1084
+ if symtab_shndx_id.is_none() && writer.symtab_shndx_needed() {
1085
+ return Err(Error::new(
1086
+ ".symtab.shndx section is needed but not present",
1087
+ ));
1088
+ } else if symtab_shndx_id.is_some() {
1089
+ writer.require_symtab_shndx();
1090
+ }
1091
+ if strtab_id.is_none() && writer.strtab_needed() {
1092
+ return Err(Error::new(".strtab section is needed but not present"));
1093
+ } else if strtab_id.is_some() {
1094
+ writer.require_strtab();
1095
+ }
1096
+ if dynsym_id.is_none() && !out_dynsyms.is_empty() {
1097
+ return Err(Error::new(".dynsym section is needed but not present"));
1098
+ }
1099
+ if dynstr_id.is_none() && writer.dynstr_needed() {
1100
+ return Err(Error::new(".dynstr section is needed but not present"));
1101
+ } else if dynstr_id.is_some() {
1102
+ writer.require_dynstr();
1103
+ }
1104
+ if gnu_verdef_id.is_none() && verdef_count > 0 {
1105
+ return Err(Error::new(
1106
+ ".gnu.version_d section is needed but not present",
1107
+ ));
1108
+ }
1109
+ if gnu_verneed_id.is_none() && verneed_count > 0 {
1110
+ return Err(Error::new(
1111
+ ".gnu.version_r section is needed but not present",
1112
+ ));
1113
+ }
1114
+
1115
+ // Start reserving file ranges.
1116
+ writer.reserve_file_header();
1117
+
1118
+ let mut dynsym_addr = None;
1119
+ let mut dynstr_addr = None;
1120
+ let mut hash_addr = None;
1121
+ let mut gnu_hash_addr = None;
1122
+ let mut versym_addr = None;
1123
+ let mut verdef_addr = None;
1124
+ let mut verneed_addr = None;
1125
+
1126
+ if !self.segments.is_empty() {
1127
+ // TODO: support program headers in other locations.
1128
+ if self.header.e_phoff != writer.reserved_len() as u64 {
1129
+ return Err(Error(format!(
1130
+ "Unsupported e_phoff value 0x{:x}",
1131
+ self.header.e_phoff
1132
+ )));
1133
+ }
1134
+ writer.reserve_program_headers(self.segments.count() as u32);
1135
+ }
1136
+
1137
+ let mut alloc_sections = Vec::new();
1138
+ if !self.segments.is_empty() {
1139
+ // Reserve alloc sections at original offsets.
1140
+ alloc_sections = out_sections
1141
+ .iter()
1142
+ .enumerate()
1143
+ .filter_map(|(index, out_section)| {
1144
+ let section = self.sections.get(out_section.id);
1145
+ if section.is_alloc() {
1146
+ Some(index)
1147
+ } else {
1148
+ None
1149
+ }
1150
+ })
1151
+ .collect();
1152
+ // The data for alloc sections may need to be written in a different order
1153
+ // from their section headers.
1154
+ alloc_sections.sort_by_key(|index| {
1155
+ let section = &self.sections.get(out_sections[*index].id);
1156
+ // Empty sections need to come before other sections at the same offset.
1157
+ (section.sh_offset, section.sh_size)
1158
+ });
1159
+ for index in &alloc_sections {
1160
+ let out_section = &mut out_sections[*index];
1161
+ let section = &self.sections.get(out_section.id);
1162
+
1163
+ if section.sh_type == elf::SHT_NOBITS {
1164
+ // sh_offset is meaningless for SHT_NOBITS, so preserve the input
1165
+ // value without checking it.
1166
+ out_section.offset = section.sh_offset as usize;
1167
+ continue;
1168
+ }
1169
+
1170
+ if section.sh_offset < writer.reserved_len() as u64 {
1171
+ return Err(Error(format!(
1172
+ "Unsupported sh_offset value 0x{:x} for section '{}', expected at least 0x{:x}",
1173
+ section.sh_offset,
1174
+ section.name,
1175
+ writer.reserved_len(),
1176
+ )));
1177
+ }
1178
+ // The input sh_offset needs to be preserved so that offsets in program
1179
+ // headers are correct.
1180
+ writer.reserve_until(section.sh_offset as usize);
1181
+ out_section.offset = match &section.data {
1182
+ SectionData::Data(data) => {
1183
+ writer.reserve(data.len(), section.sh_addralign as usize)
1184
+ }
1185
+ SectionData::DynamicRelocation(relocations) => writer
1186
+ .reserve_relocations(relocations.len(), section.sh_type == elf::SHT_RELA),
1187
+ SectionData::Note(data) => {
1188
+ writer.reserve(data.len(), section.sh_addralign as usize)
1189
+ }
1190
+ SectionData::Dynamic(dynamics) => writer.reserve_dynamics(1 + dynamics.len()),
1191
+ SectionData::DynamicSymbol => {
1192
+ dynsym_addr = Some(section.sh_addr);
1193
+ writer.reserve_dynsym()
1194
+ }
1195
+ SectionData::DynamicString => {
1196
+ dynstr_addr = Some(section.sh_addr);
1197
+ writer.reserve_dynstr()
1198
+ }
1199
+ SectionData::Hash => {
1200
+ hash_addr = Some(section.sh_addr);
1201
+ writer.reserve_hash(self.hash_bucket_count, hash_chain_count)
1202
+ }
1203
+ SectionData::GnuHash => {
1204
+ gnu_hash_addr = Some(section.sh_addr);
1205
+ writer.reserve_gnu_hash(
1206
+ self.gnu_hash_bloom_count,
1207
+ self.gnu_hash_bucket_count,
1208
+ gnu_hash_symbol_count,
1209
+ )
1210
+ }
1211
+ SectionData::GnuVersym => {
1212
+ versym_addr = Some(section.sh_addr);
1213
+ writer.reserve_gnu_versym()
1214
+ }
1215
+ SectionData::GnuVerdef => {
1216
+ verdef_addr = Some(section.sh_addr);
1217
+ writer.reserve_gnu_verdef(verdef_count, verdaux_count)
1218
+ }
1219
+ SectionData::GnuVerneed => {
1220
+ verneed_addr = Some(section.sh_addr);
1221
+ writer.reserve_gnu_verneed(verneed_count, vernaux_count)
1222
+ }
1223
+ _ => {
1224
+ return Err(Error(format!(
1225
+ "Unsupported alloc section type {:x} for section '{}'",
1226
+ section.sh_type, section.name,
1227
+ )));
1228
+ }
1229
+ };
1230
+ if out_section.offset as u64 != section.sh_offset {
1231
+ return Err(Error(format!(
1232
+ "Unaligned sh_offset value 0x{:x} for section '{}', expected 0x{:x}",
1233
+ section.sh_offset, section.name, out_section.offset,
1234
+ )));
1235
+ }
1236
+ }
1237
+ }
1238
+
1239
+ // Reserve non-alloc sections at any offset.
1240
+ for out_section in &mut out_sections {
1241
+ let section = self.sections.get(out_section.id);
1242
+ if !self.segments.is_empty() && section.is_alloc() {
1243
+ continue;
1244
+ }
1245
+ out_section.offset = match &section.data {
1246
+ SectionData::Data(data) => {
1247
+ writer.reserve(data.len(), section.sh_addralign as usize)
1248
+ }
1249
+ SectionData::UninitializedData(_) => writer.reserved_len(),
1250
+ SectionData::Note(data) => {
1251
+ writer.reserve(data.len(), section.sh_addralign as usize)
1252
+ }
1253
+ SectionData::Attributes(_) => {
1254
+ writer.reserve(out_section.attributes.len(), section.sh_addralign as usize)
1255
+ }
1256
+ // These are handled elsewhere.
1257
+ SectionData::Relocation(_)
1258
+ | SectionData::SectionString
1259
+ | SectionData::Symbol
1260
+ | SectionData::SymbolSectionIndex
1261
+ | SectionData::String => {
1262
+ continue;
1263
+ }
1264
+ _ => {
1265
+ return Err(Error(format!(
1266
+ "Unsupported non-alloc section type {:x}",
1267
+ section.sh_type
1268
+ )));
1269
+ }
1270
+ };
1271
+ }
1272
+
1273
+ writer.reserve_symtab();
1274
+ writer.reserve_symtab_shndx();
1275
+ writer.reserve_strtab();
1276
+
1277
+ // Reserve non-alloc relocations.
1278
+ for out_section in &mut out_sections {
1279
+ let section = self.sections.get(out_section.id);
1280
+ if !self.segments.is_empty() && section.is_alloc() {
1281
+ continue;
1282
+ }
1283
+ let SectionData::Relocation(relocations) = &section.data else {
1284
+ continue;
1285
+ };
1286
+ out_section.offset =
1287
+ writer.reserve_relocations(relocations.len(), section.sh_type == elf::SHT_RELA);
1288
+ }
1289
+
1290
+ writer.reserve_shstrtab();
1291
+ writer.reserve_section_headers();
1292
+
1293
+ // Start writing.
1294
+ writer.write_file_header(&write::elf::FileHeader {
1295
+ os_abi: self.header.os_abi,
1296
+ abi_version: self.header.abi_version,
1297
+ e_type: self.header.e_type,
1298
+ e_machine: self.header.e_machine,
1299
+ e_entry: self.header.e_entry,
1300
+ e_flags: self.header.e_flags,
1301
+ })?;
1302
+
1303
+ if !self.segments.is_empty() {
1304
+ writer.write_align_program_headers();
1305
+ for segment in &self.segments {
1306
+ writer.write_program_header(&write::elf::ProgramHeader {
1307
+ p_type: segment.p_type,
1308
+ p_flags: segment.p_flags,
1309
+ p_offset: segment.p_offset,
1310
+ p_vaddr: segment.p_vaddr,
1311
+ p_paddr: segment.p_paddr,
1312
+ p_filesz: segment.p_filesz,
1313
+ p_memsz: segment.p_memsz,
1314
+ p_align: segment.p_align,
1315
+ });
1316
+ }
1317
+ }
1318
+
1319
+ // Write alloc sections.
1320
+ if !self.segments.is_empty() {
1321
+ for index in &alloc_sections {
1322
+ let out_section = &mut out_sections[*index];
1323
+ let section = self.sections.get(out_section.id);
1324
+
1325
+ if section.sh_type == elf::SHT_NOBITS {
1326
+ continue;
1327
+ }
1328
+
1329
+ writer.pad_until(out_section.offset);
1330
+ match &section.data {
1331
+ SectionData::Data(data) => {
1332
+ writer.write(data);
1333
+ }
1334
+ SectionData::DynamicRelocation(relocations) => {
1335
+ for rel in relocations {
1336
+ let r_sym = if let Some(symbol) = rel.symbol {
1337
+ out_dynsyms_index[symbol.0].unwrap().0
1338
+ } else {
1339
+ 0
1340
+ };
1341
+ writer.write_relocation(
1342
+ section.sh_type == elf::SHT_RELA,
1343
+ &write::elf::Rel {
1344
+ r_offset: rel.r_offset,
1345
+ r_sym,
1346
+ r_type: rel.r_type,
1347
+ r_addend: rel.r_addend,
1348
+ },
1349
+ );
1350
+ }
1351
+ }
1352
+ SectionData::Note(data) => {
1353
+ writer.write(data);
1354
+ }
1355
+ SectionData::Dynamic(dynamics) => {
1356
+ for d in dynamics {
1357
+ match *d {
1358
+ Dynamic::Auto { tag } => {
1359
+ // TODO: support more values
1360
+ let val = match tag {
1361
+ elf::DT_SYMTAB => dynsym_addr.ok_or(Error::new(
1362
+ "Missing .dynsym section for DT_SYMTAB",
1363
+ ))?,
1364
+ elf::DT_STRTAB => dynstr_addr.ok_or(Error::new(
1365
+ "Missing .dynstr section for DT_STRTAB",
1366
+ ))?,
1367
+ elf::DT_STRSZ => writer.dynstr_len() as u64,
1368
+ elf::DT_HASH => hash_addr.ok_or(Error::new(
1369
+ "Missing .hash section for DT_HASH",
1370
+ ))?,
1371
+ elf::DT_GNU_HASH => gnu_hash_addr.ok_or(Error::new(
1372
+ "Missing .gnu.hash section for DT_GNU_HASH",
1373
+ ))?,
1374
+ elf::DT_VERSYM => versym_addr.ok_or(Error::new(
1375
+ "Missing .gnu.version section for DT_VERSYM",
1376
+ ))?,
1377
+ elf::DT_VERDEF => verdef_addr.ok_or(Error::new(
1378
+ "Missing .gnu.version_d section for DT_VERDEF",
1379
+ ))?,
1380
+ elf::DT_VERDEFNUM => verdef_count as u64,
1381
+ elf::DT_VERNEED => verneed_addr.ok_or(Error::new(
1382
+ "Missing .gnu.version_r section for DT_VERNEED",
1383
+ ))?,
1384
+ elf::DT_VERNEEDNUM => verneed_count as u64,
1385
+ _ => {
1386
+ return Err(Error(format!(
1387
+ "Cannot generate value for dynamic tag 0x{:x}",
1388
+ tag
1389
+ )))
1390
+ }
1391
+ };
1392
+ writer.write_dynamic(tag, val);
1393
+ }
1394
+ Dynamic::Integer { tag, val } => {
1395
+ writer.write_dynamic(tag, val);
1396
+ }
1397
+ Dynamic::String { tag, ref val } => {
1398
+ let val = writer.get_dynamic_string(val);
1399
+ writer.write_dynamic_string(tag, val);
1400
+ }
1401
+ }
1402
+ }
1403
+ writer.write_dynamic(elf::DT_NULL, 0);
1404
+ }
1405
+ SectionData::DynamicSymbol => {
1406
+ writer.write_null_dynamic_symbol();
1407
+ for out_dynsym in &out_dynsyms {
1408
+ let symbol = self.dynamic_symbols.get(out_dynsym.id);
1409
+ let section =
1410
+ symbol.section.map(|id| out_sections_index[id.0].unwrap());
1411
+ writer.write_dynamic_symbol(&write::elf::Sym {
1412
+ name: out_dynsym.name,
1413
+ section,
1414
+ st_info: symbol.st_info,
1415
+ st_other: symbol.st_other,
1416
+ st_shndx: symbol.st_shndx,
1417
+ st_value: symbol.st_value,
1418
+ st_size: symbol.st_size,
1419
+ });
1420
+ }
1421
+ }
1422
+ SectionData::DynamicString => {
1423
+ writer.write_dynstr();
1424
+ }
1425
+ SectionData::Hash => {
1426
+ if self.hash_bucket_count == 0 {
1427
+ return Err(Error::new(".hash bucket count is zero"));
1428
+ }
1429
+ writer.write_hash(self.hash_bucket_count, hash_chain_count, |index| {
1430
+ out_dynsyms
1431
+ .get(index.checked_sub(hash_index_base)? as usize)?
1432
+ .hash
1433
+ });
1434
+ }
1435
+ SectionData::GnuHash => {
1436
+ if self.gnu_hash_bucket_count == 0 {
1437
+ return Err(Error::new(".gnu.hash bucket count is zero"));
1438
+ }
1439
+ writer.write_gnu_hash(
1440
+ gnu_hash_symbol_base,
1441
+ self.gnu_hash_bloom_shift,
1442
+ self.gnu_hash_bloom_count,
1443
+ self.gnu_hash_bucket_count,
1444
+ gnu_hash_symbol_count,
1445
+ |index| {
1446
+ out_dynsyms[(gnu_hash_index_base + index) as usize]
1447
+ .gnu_hash
1448
+ .unwrap()
1449
+ },
1450
+ );
1451
+ }
1452
+ SectionData::GnuVersym => {
1453
+ writer.write_null_gnu_versym();
1454
+ for out_dynsym in &out_dynsyms {
1455
+ let symbol = self.dynamic_symbols.get(out_dynsym.id);
1456
+ let mut index = symbol.version.0 as u16;
1457
+ if symbol.version_hidden {
1458
+ index |= elf::VERSYM_HIDDEN;
1459
+ }
1460
+ writer.write_gnu_versym(index);
1461
+ }
1462
+ }
1463
+ SectionData::GnuVerdef => {
1464
+ writer.write_align_gnu_verdef();
1465
+ if let Some(version_base) = &self.version_base {
1466
+ let verdef = write::elf::Verdef {
1467
+ version: elf::VER_DEF_CURRENT,
1468
+ flags: elf::VER_FLG_BASE,
1469
+ index: 1,
1470
+ aux_count: 1,
1471
+ name: writer.get_dynamic_string(version_base),
1472
+ };
1473
+ if verdef_shared_base {
1474
+ writer.write_gnu_verdef_shared(&verdef);
1475
+ } else {
1476
+ writer.write_gnu_verdef(&verdef);
1477
+ }
1478
+ }
1479
+ for version in &self.versions {
1480
+ if let VersionData::Def(def) = &version.data {
1481
+ let mut names = def.names.iter();
1482
+ let name = names.next().ok_or_else(|| {
1483
+ Error(format!("Missing SHT_GNU_VERDEF name {}", version.id.0))
1484
+ })?;
1485
+ writer.write_gnu_verdef(&write::elf::Verdef {
1486
+ version: elf::VER_DEF_CURRENT,
1487
+ flags: def.flags,
1488
+ index: version.id.0 as u16,
1489
+ aux_count: def.names.len() as u16,
1490
+ name: writer.get_dynamic_string(name),
1491
+ });
1492
+ for name in names {
1493
+ writer.write_gnu_verdaux(writer.get_dynamic_string(name));
1494
+ }
1495
+ }
1496
+ }
1497
+ }
1498
+ SectionData::GnuVerneed => {
1499
+ writer.write_align_gnu_verneed();
1500
+ for file in &self.version_files {
1501
+ let out_file = &out_version_files[file.id.0];
1502
+ if out_file.versions.is_empty() {
1503
+ continue;
1504
+ }
1505
+ writer.write_gnu_verneed(&write::elf::Verneed {
1506
+ version: elf::VER_NEED_CURRENT,
1507
+ aux_count: out_file.versions.len() as u16,
1508
+ file: writer.get_dynamic_string(&file.name),
1509
+ });
1510
+ for id in &out_file.versions {
1511
+ let version = self.versions.get(*id);
1512
+ // This will always match.
1513
+ if let VersionData::Need(need) = &version.data {
1514
+ debug_assert_eq!(*id, version.id);
1515
+ writer.write_gnu_vernaux(&write::elf::Vernaux {
1516
+ flags: need.flags,
1517
+ index: version.id.0 as u16,
1518
+ name: writer.get_dynamic_string(&need.name),
1519
+ });
1520
+ }
1521
+ }
1522
+ }
1523
+ }
1524
+ _ => {
1525
+ return Err(Error(format!(
1526
+ "Unsupported alloc section type {:x}",
1527
+ section.sh_type
1528
+ )));
1529
+ }
1530
+ }
1531
+ }
1532
+ }
1533
+
1534
+ // Write non-alloc sections.
1535
+ for out_section in &mut out_sections {
1536
+ let section = self.sections.get(out_section.id);
1537
+ if !self.segments.is_empty() && section.is_alloc() {
1538
+ continue;
1539
+ }
1540
+ match &section.data {
1541
+ SectionData::Data(data) => {
1542
+ writer.write_align(section.sh_addralign as usize);
1543
+ debug_assert_eq!(out_section.offset, writer.len());
1544
+ writer.write(data);
1545
+ }
1546
+ SectionData::UninitializedData(_) => {
1547
+ // Nothing to do.
1548
+ }
1549
+ SectionData::Note(data) => {
1550
+ writer.write_align(section.sh_addralign as usize);
1551
+ debug_assert_eq!(out_section.offset, writer.len());
1552
+ writer.write(data);
1553
+ }
1554
+ SectionData::Attributes(_) => {
1555
+ writer.write_align(section.sh_addralign as usize);
1556
+ debug_assert_eq!(out_section.offset, writer.len());
1557
+ writer.write(&out_section.attributes);
1558
+ }
1559
+ // These are handled elsewhere.
1560
+ SectionData::Relocation(_)
1561
+ | SectionData::SectionString
1562
+ | SectionData::Symbol
1563
+ | SectionData::SymbolSectionIndex
1564
+ | SectionData::String => {}
1565
+ _ => {
1566
+ return Err(Error(format!(
1567
+ "Unsupported non-alloc section type {:x}",
1568
+ section.sh_type
1569
+ )));
1570
+ }
1571
+ }
1572
+ }
1573
+
1574
+ writer.write_null_symbol();
1575
+ for out_sym in &out_syms {
1576
+ let symbol = self.symbols.get(out_sym.id);
1577
+ let section = symbol.section.map(|id| out_sections_index[id.0].unwrap());
1578
+ writer.write_symbol(&write::elf::Sym {
1579
+ name: out_sym.name,
1580
+ section,
1581
+ st_info: symbol.st_info,
1582
+ st_other: symbol.st_other,
1583
+ st_shndx: symbol.st_shndx,
1584
+ st_value: symbol.st_value,
1585
+ st_size: symbol.st_size,
1586
+ });
1587
+ }
1588
+ writer.write_symtab_shndx();
1589
+ writer.write_strtab();
1590
+
1591
+ // Write non-alloc relocations.
1592
+ for section in &self.sections {
1593
+ if !self.segments.is_empty() && section.is_alloc() {
1594
+ continue;
1595
+ }
1596
+ let SectionData::Relocation(relocations) = &section.data else {
1597
+ continue;
1598
+ };
1599
+ writer.write_align_relocation();
1600
+ for rel in relocations {
1601
+ let r_sym = if let Some(id) = rel.symbol {
1602
+ out_syms_index[id.0].unwrap().0
1603
+ } else {
1604
+ 0
1605
+ };
1606
+ writer.write_relocation(
1607
+ section.sh_type == elf::SHT_RELA,
1608
+ &write::elf::Rel {
1609
+ r_offset: rel.r_offset,
1610
+ r_sym,
1611
+ r_type: rel.r_type,
1612
+ r_addend: rel.r_addend,
1613
+ },
1614
+ );
1615
+ }
1616
+ }
1617
+
1618
+ writer.write_shstrtab();
1619
+
1620
+ writer.write_null_section_header();
1621
+ for out_section in &out_sections {
1622
+ let section = self.sections.get(out_section.id);
1623
+ match &section.data {
1624
+ SectionData::Data(_)
1625
+ | SectionData::UninitializedData(_)
1626
+ | SectionData::Relocation(_)
1627
+ | SectionData::DynamicRelocation(_)
1628
+ | SectionData::Note(_)
1629
+ | SectionData::Dynamic(_)
1630
+ | SectionData::Attributes(_) => {
1631
+ let sh_size = match &section.data {
1632
+ SectionData::Data(data) => data.len() as u64,
1633
+ SectionData::UninitializedData(len) => *len,
1634
+ SectionData::Relocation(relocations) => {
1635
+ (relocations.len()
1636
+ * self.class().rel_size(section.sh_type == elf::SHT_RELA))
1637
+ as u64
1638
+ }
1639
+ SectionData::DynamicRelocation(relocations) => {
1640
+ (relocations.len()
1641
+ * self.class().rel_size(section.sh_type == elf::SHT_RELA))
1642
+ as u64
1643
+ }
1644
+ SectionData::Note(data) => data.len() as u64,
1645
+ SectionData::Dynamic(dynamics) => {
1646
+ ((1 + dynamics.len()) * self.class().dyn_size()) as u64
1647
+ }
1648
+ SectionData::Attributes(_) => out_section.attributes.len() as u64,
1649
+ _ => {
1650
+ return Err(Error(format!(
1651
+ "Unimplemented size for section type {:x}",
1652
+ section.sh_type
1653
+ )))
1654
+ }
1655
+ };
1656
+ let sh_link = if let Some(id) = section.sh_link_section {
1657
+ if let Some(index) = out_sections_index[id.0] {
1658
+ index.0
1659
+ } else {
1660
+ return Err(Error(format!(
1661
+ "Invalid sh_link from section '{}' to deleted section '{}'",
1662
+ section.name,
1663
+ self.sections.get(id).name,
1664
+ )));
1665
+ }
1666
+ } else {
1667
+ 0
1668
+ };
1669
+ let sh_info = if let Some(id) = section.sh_info_section {
1670
+ if let Some(index) = out_sections_index[id.0] {
1671
+ index.0
1672
+ } else {
1673
+ return Err(Error(format!(
1674
+ "Invalid sh_info link from section '{}' to deleted section '{}'",
1675
+ section.name,
1676
+ self.sections.get(id).name,
1677
+ )));
1678
+ }
1679
+ } else {
1680
+ section.sh_info
1681
+ };
1682
+ writer.write_section_header(&write::elf::SectionHeader {
1683
+ name: out_section.name,
1684
+ sh_type: section.sh_type,
1685
+ sh_flags: section.sh_flags,
1686
+ sh_addr: section.sh_addr,
1687
+ sh_offset: out_section.offset as u64,
1688
+ sh_size,
1689
+ sh_link,
1690
+ sh_info,
1691
+ sh_addralign: section.sh_addralign,
1692
+ sh_entsize: section.sh_entsize,
1693
+ });
1694
+ }
1695
+ SectionData::SectionString => {
1696
+ writer.write_shstrtab_section_header();
1697
+ }
1698
+ SectionData::Symbol => {
1699
+ writer.write_symtab_section_header(1 + num_local as u32);
1700
+ }
1701
+ SectionData::SymbolSectionIndex => {
1702
+ writer.write_symtab_shndx_section_header();
1703
+ }
1704
+ SectionData::String => {
1705
+ writer.write_strtab_section_header();
1706
+ }
1707
+ SectionData::DynamicString => {
1708
+ writer.write_dynstr_section_header(section.sh_addr);
1709
+ }
1710
+ SectionData::DynamicSymbol => {
1711
+ writer
1712
+ .write_dynsym_section_header(section.sh_addr, 1 + num_local_dynamic as u32);
1713
+ }
1714
+ SectionData::Hash => {
1715
+ writer.write_hash_section_header(section.sh_addr);
1716
+ }
1717
+ SectionData::GnuHash => {
1718
+ writer.write_gnu_hash_section_header(section.sh_addr);
1719
+ }
1720
+ SectionData::GnuVersym => {
1721
+ writer.write_gnu_versym_section_header(section.sh_addr);
1722
+ }
1723
+ SectionData::GnuVerdef => {
1724
+ writer.write_gnu_verdef_section_header(section.sh_addr);
1725
+ }
1726
+ SectionData::GnuVerneed => {
1727
+ writer.write_gnu_verneed_section_header(section.sh_addr);
1728
+ }
1729
+ }
1730
+ }
1731
+ debug_assert_eq!(writer.reserved_len(), writer.len());
1732
+ Ok(())
1733
+ }
1734
+
1735
+ /// Delete segments, symbols, relocations, and dynamics that refer
1736
+ /// to deleted items.
1737
+ ///
1738
+ /// This calls `delete_orphan_segments`, `delete_orphan_symbols`,
1739
+ /// `delete_orphan_relocations`, and `delete_orphan_dynamics`.
1740
+ pub fn delete_orphans(&mut self) {
1741
+ self.delete_orphan_segments();
1742
+ self.delete_orphan_symbols();
1743
+ self.delete_orphan_relocations();
1744
+ self.delete_orphan_dynamics();
1745
+ }
1746
+
1747
+ /// Set the delete flag for segments that only refer to deleted sections.
1748
+ pub fn delete_orphan_segments(&mut self) {
1749
+ let sections = &self.sections;
1750
+ for segment in &mut self.segments {
1751
+ // We only delete segments that have become empty due to section deletions.
1752
+ if segment.sections.is_empty() {
1753
+ continue;
1754
+ }
1755
+ segment.sections.retain(|id| !sections.get(*id).delete);
1756
+ segment.delete = segment.sections.is_empty();
1757
+ }
1758
+ }
1759
+
1760
+ /// Set the delete flag for symbols that refer to deleted sections.
1761
+ pub fn delete_orphan_symbols(&mut self) {
1762
+ for symbol in &mut self.symbols {
1763
+ if let Some(section) = symbol.section {
1764
+ if self.sections.get_mut(section).delete {
1765
+ symbol.delete = true;
1766
+ }
1767
+ }
1768
+ }
1769
+ for symbol in &mut self.dynamic_symbols {
1770
+ if let Some(section) = symbol.section {
1771
+ if self.sections.get_mut(section).delete {
1772
+ symbol.delete = true;
1773
+ }
1774
+ }
1775
+ }
1776
+ }
1777
+
1778
+ /// Delete relocations that refer to deleted symbols.
1779
+ pub fn delete_orphan_relocations(&mut self) {
1780
+ let symbols = &self.symbols;
1781
+ let dynamic_symbols = &self.dynamic_symbols;
1782
+ for section in &mut self.sections {
1783
+ match &mut section.data {
1784
+ SectionData::Relocation(relocations) => {
1785
+ relocations.retain(|relocation| match relocation.symbol {
1786
+ None => true,
1787
+ Some(id) => !symbols.get(id).delete,
1788
+ });
1789
+ }
1790
+ SectionData::DynamicRelocation(relocations) => {
1791
+ relocations.retain(|relocation| match relocation.symbol {
1792
+ None => true,
1793
+ Some(id) => !dynamic_symbols.get(id).delete,
1794
+ });
1795
+ }
1796
+ _ => {}
1797
+ }
1798
+ }
1799
+ }
1800
+
1801
+ /// Delete dynamic entries that refer to deleted sections.
1802
+ pub fn delete_orphan_dynamics(&mut self) {
1803
+ let mut have_dynsym = false;
1804
+ let mut have_dynstr = false;
1805
+ let mut have_hash = false;
1806
+ let mut have_gnu_hash = false;
1807
+ let mut have_versym = false;
1808
+ let mut have_verdef = false;
1809
+ let mut have_verneed = false;
1810
+ for section in &self.sections {
1811
+ match &section.data {
1812
+ SectionData::DynamicSymbol => have_dynsym = true,
1813
+ SectionData::DynamicString => have_dynstr = true,
1814
+ SectionData::Hash => have_hash = true,
1815
+ SectionData::GnuHash => have_gnu_hash = true,
1816
+ SectionData::GnuVersym => have_versym = true,
1817
+ SectionData::GnuVerdef => have_verdef = true,
1818
+ SectionData::GnuVerneed => have_verneed = true,
1819
+ _ => {}
1820
+ }
1821
+ }
1822
+ for section in &mut self.sections {
1823
+ if let SectionData::Dynamic(dynamics) = &mut section.data {
1824
+ dynamics.retain(|dynamic| match dynamic {
1825
+ Dynamic::Auto {
1826
+ tag: elf::DT_SYMTAB,
1827
+ } => have_dynsym,
1828
+ Dynamic::Auto {
1829
+ tag: elf::DT_STRTAB,
1830
+ }
1831
+ | Dynamic::Auto { tag: elf::DT_STRSZ } => have_dynstr,
1832
+ Dynamic::Auto { tag: elf::DT_HASH } => have_hash,
1833
+ Dynamic::Auto {
1834
+ tag: elf::DT_GNU_HASH,
1835
+ } => have_gnu_hash,
1836
+ Dynamic::Auto {
1837
+ tag: elf::DT_VERSYM,
1838
+ } => have_versym,
1839
+ Dynamic::Auto {
1840
+ tag: elf::DT_VERNEED,
1841
+ }
1842
+ | Dynamic::Auto {
1843
+ tag: elf::DT_VERNEEDNUM,
1844
+ } => have_verneed,
1845
+ Dynamic::Auto {
1846
+ tag: elf::DT_VERDEF,
1847
+ }
1848
+ | Dynamic::Auto {
1849
+ tag: elf::DT_VERDEFNUM,
1850
+ } => have_verdef,
1851
+ _ => true,
1852
+ });
1853
+ }
1854
+ }
1855
+ }
1856
+
1857
+ /// Delete unused GNU version entries.
1858
+ pub fn delete_unused_versions(&mut self) {
1859
+ let mut version_used = vec![false; self.versions.len() + VERSION_ID_BASE];
1860
+ for symbol in &self.dynamic_symbols {
1861
+ version_used[symbol.version.0] = true;
1862
+ }
1863
+ let mut version_file_used = vec![false; self.version_files.len()];
1864
+ for version in &mut self.versions {
1865
+ if !version_used[version.id.0] {
1866
+ version.delete = true;
1867
+ continue;
1868
+ }
1869
+ if let VersionData::Need(need) = &version.data {
1870
+ version_file_used[need.file.0] = true;
1871
+ }
1872
+ }
1873
+ for file in &mut self.version_files {
1874
+ if !version_file_used[file.id.0] {
1875
+ file.delete = true;
1876
+ }
1877
+ }
1878
+ }
1879
+
1880
+ /// Return the ELF file class that will be written.
1881
+ ///
1882
+ /// This can be useful for calculating sizes.
1883
+ pub fn class(&self) -> write::elf::Class {
1884
+ write::elf::Class { is_64: self.is_64 }
1885
+ }
1886
+
1887
+ /// Calculate the size of the file header.
1888
+ pub fn file_header_size(&self) -> usize {
1889
+ self.class().file_header_size()
1890
+ }
1891
+
1892
+ /// Calculate the size of the program headers.
1893
+ pub fn program_headers_size(&self) -> usize {
1894
+ self.segments.count() * self.class().program_header_size()
1895
+ }
1896
+
1897
+ /// Calculate the size of the dynamic symbol table.
1898
+ ///
1899
+ /// To get an accurate result, you may need to first call
1900
+ /// [`Self::delete_orphan_symbols`].
1901
+ pub fn dynamic_symbol_size(&self) -> usize {
1902
+ (1 + self.dynamic_symbols.count()) * self.class().sym_size()
1903
+ }
1904
+
1905
+ /// Calculate the size of the dynamic string table.
1906
+ ///
1907
+ /// This adds all of the currently used dynamic strings to a string table,
1908
+ /// calculates the size of the string table, and discards the string table.
1909
+ ///
1910
+ /// To get an accurate result, you may need to first call
1911
+ /// [`Self::delete_orphan_symbols`] and [`Self::delete_unused_versions`].
1912
+ pub fn dynamic_string_size(&self) -> usize {
1913
+ let mut dynstr = write::string::StringTable::default();
1914
+ for section in &self.sections {
1915
+ if let SectionData::Dynamic(dynamics) = &section.data {
1916
+ for dynamic in dynamics {
1917
+ if let Dynamic::String { val, .. } = dynamic {
1918
+ dynstr.add(val);
1919
+ }
1920
+ }
1921
+ }
1922
+ }
1923
+ for symbol in &self.dynamic_symbols {
1924
+ dynstr.add(&symbol.name);
1925
+ }
1926
+ if let Some(version_base) = &self.version_base {
1927
+ dynstr.add(version_base);
1928
+ }
1929
+ for version in &self.versions {
1930
+ match &version.data {
1931
+ VersionData::Def(def) => {
1932
+ for name in &def.names {
1933
+ dynstr.add(name);
1934
+ }
1935
+ }
1936
+ VersionData::Need(need) => {
1937
+ dynstr.add(&need.name);
1938
+ }
1939
+ }
1940
+ }
1941
+ for file in &self.version_files {
1942
+ dynstr.add(&file.name);
1943
+ }
1944
+ dynstr.size(1)
1945
+ }
1946
+
1947
+ /// Calculate the size of the hash table.
1948
+ ///
1949
+ /// To get an accurate result, you may need to first call
1950
+ /// [`Self::delete_orphan_symbols`].
1951
+ pub fn hash_size(&self) -> usize {
1952
+ let chain_count = 1 + self.dynamic_symbols.count();
1953
+ self.class()
1954
+ .hash_size(self.hash_bucket_count, chain_count as u32)
1955
+ }
1956
+
1957
+ /// Calculate the size of the GNU hash table.
1958
+ ///
1959
+ /// To get an accurate result, you may need to first call
1960
+ /// [`Self::delete_orphan_symbols`].
1961
+ pub fn gnu_hash_size(&self) -> usize {
1962
+ let symbol_count = self.dynamic_symbols.count_defined();
1963
+ self.class().gnu_hash_size(
1964
+ self.gnu_hash_bloom_count,
1965
+ self.gnu_hash_bucket_count,
1966
+ symbol_count as u32,
1967
+ )
1968
+ }
1969
+
1970
+ /// Calculate the size of the GNU symbol version section.
1971
+ ///
1972
+ /// To get an accurate result, you may need to first call
1973
+ /// [`Self::delete_orphan_symbols`] and [`Self::delete_unused_versions`].
1974
+ pub fn gnu_versym_size(&self) -> usize {
1975
+ let symbol_count = 1 + self.dynamic_symbols.count();
1976
+ self.class().gnu_versym_size(symbol_count)
1977
+ }
1978
+
1979
+ /// Calculate the size of the GNU version definition section.
1980
+ ///
1981
+ /// To get an accurate result, you may need to first call
1982
+ /// [`Self::delete_orphan_symbols`] and [`Self::delete_unused_versions`].
1983
+ pub fn gnu_verdef_size(&self) -> usize {
1984
+ let mut verdef_count = 0;
1985
+ let mut verdaux_count = 0;
1986
+ if self.version_base.is_some() {
1987
+ verdef_count += 1;
1988
+ verdaux_count += 1;
1989
+ }
1990
+ for version in &self.versions {
1991
+ if let VersionData::Def(def) = &version.data {
1992
+ if !def.is_shared(verdef_count, self.version_base.as_ref()) {
1993
+ verdaux_count += def.names.len();
1994
+ }
1995
+ verdef_count += 1;
1996
+ }
1997
+ }
1998
+ self.class().gnu_verdef_size(verdef_count, verdaux_count)
1999
+ }
2000
+
2001
+ /// Calculate the size of the GNU version dependency section.
2002
+ ///
2003
+ /// To get an accurate result, you may need to first call
2004
+ /// [`Self::delete_orphan_symbols`] and [`Self::delete_unused_versions`].
2005
+ pub fn gnu_verneed_size(&self) -> usize {
2006
+ let verneed_count = self.version_files.count();
2007
+ let mut vernaux_count = 0;
2008
+ for version in &self.versions {
2009
+ if let VersionData::Need(_) = &version.data {
2010
+ vernaux_count += 1;
2011
+ }
2012
+ }
2013
+ self.class().gnu_verneed_size(verneed_count, vernaux_count)
2014
+ }
2015
+
2016
+ /// Calculate the memory size of a section.
2017
+ ///
2018
+ /// Returns 0 for sections that are deleted or aren't allocated.
2019
+ ///
2020
+ /// To get an accurate result, you may need to first call
2021
+ /// [`Self::delete_orphan_symbols`] and [`Self::delete_unused_versions`].
2022
+ pub fn section_size(&self, section: &Section<'_>) -> usize {
2023
+ if section.delete || !section.is_alloc() {
2024
+ return 0;
2025
+ }
2026
+ match &section.data {
2027
+ SectionData::Data(data) => data.len(),
2028
+ SectionData::UninitializedData(len) => *len as usize,
2029
+ SectionData::Relocation(relocations) => {
2030
+ relocations.len() * self.class().rel_size(section.sh_type == elf::SHT_RELA)
2031
+ }
2032
+ SectionData::DynamicRelocation(relocations) => {
2033
+ relocations.len() * self.class().rel_size(section.sh_type == elf::SHT_RELA)
2034
+ }
2035
+ SectionData::Note(data) => data.len(),
2036
+ SectionData::Dynamic(dynamics) => (1 + dynamics.len()) * self.class().dyn_size(),
2037
+ SectionData::DynamicString => self.dynamic_string_size(),
2038
+ SectionData::DynamicSymbol => self.dynamic_symbol_size(),
2039
+ SectionData::Hash => self.hash_size(),
2040
+ SectionData::GnuHash => self.gnu_hash_size(),
2041
+ SectionData::GnuVersym => self.gnu_versym_size(),
2042
+ SectionData::GnuVerdef => self.gnu_verdef_size(),
2043
+ SectionData::GnuVerneed => self.gnu_verneed_size(),
2044
+ // None of these should be allocated.
2045
+ SectionData::SectionString
2046
+ | SectionData::Symbol
2047
+ | SectionData::SymbolSectionIndex
2048
+ | SectionData::String
2049
+ | SectionData::Attributes(_) => 0,
2050
+ }
2051
+ }
2052
+
2053
+ /// Set the `sh_size` field for every allocated section.
2054
+ ///
2055
+ /// This is useful to call prior to doing memory layout.
2056
+ ///
2057
+ /// To get an accurate result, you may need to first call
2058
+ /// [`Self::delete_orphan_symbols`] and [`Self::delete_unused_versions`].
2059
+ pub fn set_section_sizes(&mut self) {
2060
+ for id in (0..self.sections.len()).map(SectionId) {
2061
+ let section = self.sections.get(id);
2062
+ if section.delete || !section.is_alloc() {
2063
+ continue;
2064
+ }
2065
+ self.sections.get_mut(id).sh_size = self.section_size(section) as u64;
2066
+ }
2067
+ }
2068
+
2069
+ /// Find the section containing the dynamic table.
2070
+ ///
2071
+ /// This uses the `PT_DYNAMIC` program header to find the dynamic section.
2072
+ pub fn dynamic_section(&self) -> Option<SectionId> {
2073
+ let segment = self
2074
+ .segments
2075
+ .iter()
2076
+ .find(|segment| segment.p_type == elf::PT_DYNAMIC)?;
2077
+ // TODO: handle multiple sections in the segment?
2078
+ segment.sections.iter().copied().next()
2079
+ }
2080
+
2081
+ /// Find the dynamic table entries.
2082
+ ///
2083
+ /// This uses the `PT_DYNAMIC` program header to find the dynamic section,
2084
+ pub fn dynamic_data(&self) -> Option<&[Dynamic<'data>]> {
2085
+ let section = self.dynamic_section()?;
2086
+ match &self.sections.get(section).data {
2087
+ SectionData::Dynamic(dynamics) => Some(dynamics),
2088
+ _ => None,
2089
+ }
2090
+ }
2091
+
2092
+ /// Find the dynamic table entries.
2093
+ ///
2094
+ /// This uses the `PT_DYNAMIC` program header to find the dynamic section,
2095
+ pub fn dynamic_data_mut(&mut self) -> Option<&mut Vec<Dynamic<'data>>> {
2096
+ let section = self.dynamic_section()?;
2097
+ match &mut self.sections.get_mut(section).data {
2098
+ SectionData::Dynamic(dynamics) => Some(dynamics),
2099
+ _ => None,
2100
+ }
2101
+ }
2102
+
2103
+ /// Find the section containing the interpreter path.
2104
+ ///
2105
+ /// This uses the `PT_INTERP` program header to find the interp section.
2106
+ pub fn interp_section(&self) -> Option<SectionId> {
2107
+ let segment = self
2108
+ .segments
2109
+ .iter()
2110
+ .find(|segment| segment.p_type == elf::PT_INTERP)?;
2111
+ // TODO: handle multiple sections in the segment?
2112
+ segment.sections.iter().copied().next()
2113
+ }
2114
+
2115
+ /// Find the interpreter path.
2116
+ ///
2117
+ /// This uses the `PT_INTERP` program header to find the interp section.
2118
+ pub fn interp_data(&self) -> Option<&[u8]> {
2119
+ let section = self.interp_section()?;
2120
+ match &self.sections.get(section).data {
2121
+ SectionData::Data(data) => Some(data),
2122
+ _ => None,
2123
+ }
2124
+ }
2125
+
2126
+ /// Find the interpreter path.
2127
+ ///
2128
+ /// This uses the `PT_INTERP` program header to find the interp section.
2129
+ pub fn interp_data_mut(&mut self) -> Option<&mut Bytes<'data>> {
2130
+ let section = self.interp_section()?;
2131
+ match &mut self.sections.get_mut(section).data {
2132
+ SectionData::Data(data) => Some(data),
2133
+ _ => None,
2134
+ }
2135
+ }
2136
+ }
2137
+
2138
+ /// ELF file header.
2139
+ ///
2140
+ /// This corresponds to fields in [`elf::FileHeader32`] or [`elf::FileHeader64`].
2141
+ /// This only contains the ELF file header fields that can be modified.
2142
+ /// The other fields are automatically calculated.
2143
+ #[derive(Debug, Default)]
2144
+ pub struct Header {
2145
+ /// The OS ABI field in the file header.
2146
+ ///
2147
+ /// One of the `ELFOSABI*` constants.
2148
+ pub os_abi: u8,
2149
+ /// The ABI version field in the file header.
2150
+ ///
2151
+ /// The meaning of this field depends on the `os_abi` value.
2152
+ pub abi_version: u8,
2153
+ /// The object file type in the file header.
2154
+ ///
2155
+ /// One of the `ET_*` constants.
2156
+ pub e_type: u16,
2157
+ /// The architecture in the file header.
2158
+ ///
2159
+ /// One of the `EM_*` constants.
2160
+ pub e_machine: u16,
2161
+ /// Entry point virtual address in the file header.
2162
+ pub e_entry: u64,
2163
+ /// The processor-specific flags in the file header.
2164
+ ///
2165
+ /// A combination of the `EF_*` constants.
2166
+ pub e_flags: u32,
2167
+ /// The file offset of the program header table.
2168
+ ///
2169
+ /// Writing will fail if the program header table cannot be placed at this offset.
2170
+ pub e_phoff: u64,
2171
+ }
2172
+
2173
+ /// An ID for referring to a segment in [`Segments`].
2174
+ #[derive(Clone, Copy, PartialEq, Eq)]
2175
+ pub struct SegmentId(usize);
2176
+
2177
+ impl fmt::Debug for SegmentId {
2178
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2179
+ write!(f, "SegmentId({})", self.0)
2180
+ }
2181
+ }
2182
+
2183
+ impl Id for SegmentId {
2184
+ fn index(&self) -> usize {
2185
+ self.0
2186
+ }
2187
+ }
2188
+
2189
+ impl IdPrivate for SegmentId {
2190
+ fn new(id: usize) -> Self {
2191
+ SegmentId(id)
2192
+ }
2193
+ }
2194
+
2195
+ /// A segment in [`Segments`].
2196
+ ///
2197
+ /// This corresponds to [`elf::ProgramHeader32`] or [`elf::ProgramHeader64`].
2198
+ #[derive(Debug)]
2199
+ pub struct Segment<'data> {
2200
+ id: SegmentId,
2201
+ /// Ignore this segment when writing the ELF file.
2202
+ pub delete: bool,
2203
+ /// The `p_type` field in the ELF program header.
2204
+ ///
2205
+ /// One of the `PT_*` constants.
2206
+ pub p_type: u32,
2207
+ /// The `p_flags` field in the ELF program header.
2208
+ ///
2209
+ /// A combination of the `PF_*` constants.
2210
+ pub p_flags: u32,
2211
+ /// The `p_offset` field in the ELF program header.
2212
+ ///
2213
+ /// This is the file offset of the data in the segment. This should
2214
+ /// correspond to the file offset of the sections that are placed in
2215
+ /// this segment. Currently there is no support for section data
2216
+ /// that is not contained in sections.
2217
+ pub p_offset: u64,
2218
+ /// The `p_vaddr` field in the ELF program header.
2219
+ pub p_vaddr: u64,
2220
+ /// The `p_paddr` field in the ELF program header.
2221
+ pub p_paddr: u64,
2222
+ /// The `p_filesz` field in the ELF program header.
2223
+ pub p_filesz: u64,
2224
+ /// The `p_memsz` field in the ELF program header.
2225
+ pub p_memsz: u64,
2226
+ /// The `p_align` field in the ELF program header.
2227
+ pub p_align: u64,
2228
+ /// The sections contained in this segment.
2229
+ pub sections: Vec<SectionId>,
2230
+ // Might need to add reference to data if no sections.
2231
+ marker: PhantomData<&'data ()>,
2232
+ }
2233
+
2234
+ impl<'data> Item for Segment<'data> {
2235
+ type Id = SegmentId;
2236
+
2237
+ fn is_deleted(&self) -> bool {
2238
+ self.delete
2239
+ }
2240
+ }
2241
+
2242
+ impl<'data> Segment<'data> {
2243
+ /// The ID used for referring to this segment.
2244
+ pub fn id(&self) -> SegmentId {
2245
+ self.id
2246
+ }
2247
+
2248
+ /// Returns true if the segment type is `PT_LOAD`.
2249
+ pub fn is_load(&self) -> bool {
2250
+ self.p_type == elf::PT_LOAD
2251
+ }
2252
+
2253
+ /// Returns true if the segment contains the given file offset.
2254
+ pub fn contains_offset(&self, offset: u64) -> bool {
2255
+ offset >= self.p_offset && offset - self.p_offset < self.p_filesz
2256
+ }
2257
+
2258
+ /// Return the address corresponding to the given file offset.
2259
+ ///
2260
+ /// This will return a meaningless value if `contains_offset` is false.
2261
+ pub fn address_from_offset(&self, offset: u64) -> u64 {
2262
+ self.p_vaddr
2263
+ .wrapping_add(offset.wrapping_sub(self.p_offset))
2264
+ }
2265
+
2266
+ /// Returns true if the segment contains the given address.
2267
+ pub fn contains_address(&self, address: u64) -> bool {
2268
+ address >= self.p_vaddr && address - self.p_vaddr < self.p_memsz
2269
+ }
2270
+
2271
+ /// Remove all sections from the segment, and set its size to zero.
2272
+ pub fn remove_sections(&mut self) {
2273
+ self.p_filesz = 0;
2274
+ self.p_memsz = 0;
2275
+ self.sections.clear();
2276
+ }
2277
+
2278
+ /// Add a section to the segment.
2279
+ ///
2280
+ /// If this is a [`elf::PT_LOAD`] segment, then the file offset and address of the
2281
+ /// section is changed to be at the end of the segment.
2282
+ ///
2283
+ /// The segment's file and address ranges are extended to include the section.
2284
+ /// This uses the `sh_size` field of the section, not the size of the section data.
2285
+ ///
2286
+ /// The section's id is added to the segment's list of sections.
2287
+ pub fn append_section(&mut self, section: &mut Section<'_>) {
2288
+ debug_assert_eq!(self.p_filesz, self.p_memsz);
2289
+ if self.p_type == elf::PT_LOAD {
2290
+ let align = section.sh_addralign;
2291
+ let offset = (self.p_offset + self.p_filesz + (align - 1)) & !(align - 1);
2292
+ let addr = (self.p_paddr + self.p_memsz + (align - 1)) & !(align - 1);
2293
+ section.sh_offset = offset;
2294
+ section.sh_addr = addr;
2295
+ }
2296
+ self.append_section_range(section);
2297
+ self.sections.push(section.id);
2298
+ }
2299
+
2300
+ /// Extend this segment's file and address ranges to include the given section.
2301
+ ///
2302
+ /// If the segment's `p_memsz` is zero, then this signifies that the segment
2303
+ /// has no file or address range yet. In this case, the segment's file and address
2304
+ /// ranges are set equal to the section. Otherwise, the segment's file and address
2305
+ /// ranges are extended to include the section.
2306
+ ///
2307
+ /// This uses the `sh_size` field of the section, not the size of the section data.
2308
+ pub fn append_section_range(&mut self, section: &Section<'_>) {
2309
+ let section_filesize = if section.sh_type == elf::SHT_NOBITS {
2310
+ 0
2311
+ } else {
2312
+ section.sh_size
2313
+ };
2314
+ if self.p_memsz == 0 {
2315
+ self.p_offset = section.sh_offset;
2316
+ self.p_filesz = section_filesize;
2317
+ self.p_vaddr = section.sh_addr;
2318
+ self.p_paddr = section.sh_addr;
2319
+ self.p_memsz = section.sh_size;
2320
+ } else {
2321
+ if self.p_offset > section.sh_offset {
2322
+ self.p_offset = section.sh_offset;
2323
+ }
2324
+ let filesz = section.sh_offset + section_filesize - self.p_offset;
2325
+ if self.p_filesz < filesz {
2326
+ self.p_filesz = filesz;
2327
+ }
2328
+ if self.p_vaddr > section.sh_addr {
2329
+ self.p_vaddr = section.sh_addr;
2330
+ self.p_paddr = section.sh_addr;
2331
+ }
2332
+ let memsz = section.sh_addr + section.sh_size - self.p_vaddr;
2333
+ if self.p_memsz < memsz {
2334
+ self.p_memsz = memsz;
2335
+ }
2336
+ }
2337
+ }
2338
+
2339
+ /// Recalculate the file and address ranges of the segment.
2340
+ ///
2341
+ /// Resets the segment's file and address ranges to zero, and then
2342
+ /// calls `append_section_range` for each section in the segment.
2343
+ pub fn recalculate_ranges(&mut self, sections: &Sections<'data>) {
2344
+ self.p_offset = 0;
2345
+ self.p_filesz = 0;
2346
+ self.p_vaddr = 0;
2347
+ self.p_paddr = 0;
2348
+ self.p_memsz = 0;
2349
+ let ids = core::mem::take(&mut self.sections);
2350
+ for id in &ids {
2351
+ let section = sections.get(*id);
2352
+ self.append_section_range(section);
2353
+ }
2354
+ self.sections = ids;
2355
+ }
2356
+ }
2357
+
2358
+ /// A segment table.
2359
+ pub type Segments<'data> = Table<Segment<'data>>;
2360
+
2361
+ impl<'data> Segments<'data> {
2362
+ /// Add a new segment to the table.
2363
+ pub fn add(&mut self) -> &mut Segment<'data> {
2364
+ let id = self.next_id();
2365
+ self.push(Segment {
2366
+ id,
2367
+ delete: false,
2368
+ p_type: 0,
2369
+ p_flags: 0,
2370
+ p_offset: 0,
2371
+ p_vaddr: 0,
2372
+ p_paddr: 0,
2373
+ p_filesz: 0,
2374
+ p_memsz: 0,
2375
+ p_align: 0,
2376
+ sections: Vec::new(),
2377
+ marker: PhantomData,
2378
+ });
2379
+ self.get_mut(id)
2380
+ }
2381
+
2382
+ /// Find a `PT_LOAD` segment containing the given offset.
2383
+ pub fn find_load_segment_from_offset(&self, offset: u64) -> Option<&Segment<'data>> {
2384
+ self.iter()
2385
+ .find(|segment| segment.is_load() && segment.contains_offset(offset))
2386
+ }
2387
+
2388
+ /// Add a new `PT_LOAD` segment to the table.
2389
+ ///
2390
+ /// The file offset and address will be derived from the current maximum for any segment.
2391
+ /// The address will be chosen so that `p_paddr % align == p_offset % align`.
2392
+ /// You may wish to use [`Builder::load_align`] for the alignment.
2393
+ pub fn add_load_segment(&mut self, flags: u32, align: u64) -> &mut Segment<'data> {
2394
+ let mut max_offset = 0;
2395
+ let mut max_addr = 0;
2396
+ for segment in &*self {
2397
+ let offset = segment.p_offset + segment.p_filesz;
2398
+ if max_offset < offset {
2399
+ max_offset = offset;
2400
+ }
2401
+ let addr = segment.p_vaddr + segment.p_memsz;
2402
+ if max_addr < addr {
2403
+ max_addr = addr;
2404
+ }
2405
+ }
2406
+ // No alignment is required for the segment file offset because sections
2407
+ // will add their alignment to the file offset when they are added.
2408
+ let offset = max_offset;
2409
+ // The address must be chosen so that addr % align == offset % align.
2410
+ let addr = ((max_addr + (align - 1)) & !(align - 1)) + (offset & (align - 1));
2411
+
2412
+ let segment = self.add();
2413
+ segment.p_type = elf::PT_LOAD;
2414
+ segment.p_flags = flags;
2415
+ segment.p_offset = offset;
2416
+ segment.p_vaddr = addr;
2417
+ segment.p_paddr = addr;
2418
+ segment.p_align = align;
2419
+ segment
2420
+ }
2421
+
2422
+ /// Add a copy of a segment to the table.
2423
+ ///
2424
+ /// This will copy the segment type, flags and alignment.
2425
+ ///
2426
+ /// Additionally, if the segment type is `PT_LOAD`, then the file offset and address
2427
+ /// will be set as in `add_load_segment`.
2428
+ pub fn copy(&mut self, id: SegmentId) -> &mut Segment<'data> {
2429
+ let segment = self.get(id);
2430
+ let p_type = segment.p_type;
2431
+ let p_flags = segment.p_flags;
2432
+ let p_align = segment.p_align;
2433
+ if p_type == elf::PT_LOAD {
2434
+ self.add_load_segment(p_flags, p_align)
2435
+ } else {
2436
+ let segment = self.add();
2437
+ segment.p_type = p_type;
2438
+ segment.p_flags = p_flags;
2439
+ segment.p_align = p_align;
2440
+ segment
2441
+ }
2442
+ }
2443
+ }
2444
+
2445
+ /// An ID for referring to a section in [`Sections`].
2446
+ #[derive(Clone, Copy, PartialEq, Eq)]
2447
+ pub struct SectionId(usize);
2448
+
2449
+ impl fmt::Debug for SectionId {
2450
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2451
+ write!(f, "SectionId({})", self.0)
2452
+ }
2453
+ }
2454
+
2455
+ impl Id for SectionId {
2456
+ fn index(&self) -> usize {
2457
+ self.0
2458
+ }
2459
+ }
2460
+
2461
+ impl IdPrivate for SectionId {
2462
+ fn new(id: usize) -> Self {
2463
+ SectionId(id)
2464
+ }
2465
+ }
2466
+
2467
+ /// A section in [`Sections`].
2468
+ ///
2469
+ /// This corresponds to [`elf::SectionHeader32`] or [`elf::SectionHeader64`].
2470
+ #[derive(Debug)]
2471
+ pub struct Section<'data> {
2472
+ id: SectionId,
2473
+ /// Ignore this section when writing the ELF file.
2474
+ pub delete: bool,
2475
+ /// The name of the section.
2476
+ ///
2477
+ /// This is automatically added to the section header string table,
2478
+ /// and the resulting string table offset is used to set the `sh_name`
2479
+ /// field in the ELF section header.
2480
+ pub name: ByteString<'data>,
2481
+ /// The `sh_type` field in the ELF section header.
2482
+ ///
2483
+ /// One of the `SHT_*` constants.
2484
+ pub sh_type: u32,
2485
+ /// The `sh_flags` field in the ELF section header.
2486
+ ///
2487
+ /// A combination of the `SHF_*` constants.
2488
+ pub sh_flags: u64,
2489
+ /// The `sh_addr` field in the ELF section header.
2490
+ pub sh_addr: u64,
2491
+ /// The `sh_offset` field in the ELF section header.
2492
+ ///
2493
+ /// This is the file offset of the data in the section.
2494
+ /// Writing will fail if the data cannot be placed at this offset.
2495
+ ///
2496
+ /// This is only used for sections that have `SHF_ALLOC` set.
2497
+ /// For other sections, the section data is written at the next available
2498
+ /// offset.
2499
+ pub sh_offset: u64,
2500
+ /// The `sh_size` field in the ELF section header.
2501
+ ///
2502
+ /// This size is not used when writing. The size of the `data` field is
2503
+ /// used instead.
2504
+ pub sh_size: u64,
2505
+ /// The ID of the section linked to by the `sh_link` field in the ELF section header.
2506
+ pub sh_link_section: Option<SectionId>,
2507
+ /// The `sh_info` field in the ELF section header.
2508
+ ///
2509
+ /// Only used if `sh_info_section` is `None`.
2510
+ pub sh_info: u32,
2511
+ /// The ID of the section linked to by the `sh_info` field in the ELF section header.
2512
+ pub sh_info_section: Option<SectionId>,
2513
+ /// The `sh_addralign` field in the ELF section header.
2514
+ pub sh_addralign: u64,
2515
+ /// The `sh_entsize` field in the ELF section header.
2516
+ pub sh_entsize: u64,
2517
+ /// The section data.
2518
+ pub data: SectionData<'data>,
2519
+ }
2520
+
2521
+ impl<'data> Item for Section<'data> {
2522
+ type Id = SectionId;
2523
+
2524
+ fn is_deleted(&self) -> bool {
2525
+ self.delete
2526
+ }
2527
+ }
2528
+
2529
+ impl<'data> Section<'data> {
2530
+ /// The ID used for referring to this section.
2531
+ pub fn id(&self) -> SectionId {
2532
+ self.id
2533
+ }
2534
+
2535
+ /// Returns true if the section flags include `SHF_ALLOC`.
2536
+ pub fn is_alloc(&self) -> bool {
2537
+ self.sh_flags & u64::from(elf::SHF_ALLOC) != 0
2538
+ }
2539
+
2540
+ /// Return the segment permission flags that are equivalent to the section flags.
2541
+ pub fn p_flags(&self) -> u32 {
2542
+ let mut p_flags = elf::PF_R;
2543
+ if self.sh_flags & u64::from(elf::SHF_WRITE) != 0 {
2544
+ p_flags |= elf::PF_W;
2545
+ }
2546
+ if self.sh_flags & u64::from(elf::SHF_EXECINSTR) != 0 {
2547
+ p_flags |= elf::PF_X;
2548
+ }
2549
+ p_flags
2550
+ }
2551
+ }
2552
+
2553
+ /// The data for a [`Section`].
2554
+ #[derive(Debug, Clone)]
2555
+ pub enum SectionData<'data> {
2556
+ /// The section contains the given raw data bytes.
2557
+ Data(Bytes<'data>),
2558
+ /// The section contains uninitialised data bytes of the given length.
2559
+ UninitializedData(u64),
2560
+ /// The section contains relocations.
2561
+ Relocation(Vec<Relocation>),
2562
+ /// The section contains dynamic relocations.
2563
+ DynamicRelocation(Vec<DynamicRelocation>),
2564
+ /// The section contains notes.
2565
+ // TODO: parse notes
2566
+ Note(Bytes<'data>),
2567
+ /// The section contains dynamic entries.
2568
+ Dynamic(Vec<Dynamic<'data>>),
2569
+ /// The section contains attributes.
2570
+ ///
2571
+ /// This may be GNU attributes or other vendor-specific attributes.
2572
+ Attributes(AttributesSection<'data>),
2573
+ /// The section contains the strings for the section headers.
2574
+ SectionString,
2575
+ /// The section contains the symbol table.
2576
+ Symbol,
2577
+ /// The section contains the extended section index for the symbol table.
2578
+ SymbolSectionIndex,
2579
+ /// The section contains the strings for symbol table.
2580
+ String,
2581
+ /// The section contains the dynamic symbol table.
2582
+ DynamicSymbol,
2583
+ /// The section contains the dynamic string table.
2584
+ DynamicString,
2585
+ /// The section contains the hash table.
2586
+ Hash,
2587
+ /// The section contains the GNU hash table.
2588
+ GnuHash,
2589
+ /// The section contains the GNU symbol versions.
2590
+ GnuVersym,
2591
+ /// The section contains the GNU version definitions.
2592
+ GnuVerdef,
2593
+ /// The section contains the GNU version dependencies.
2594
+ GnuVerneed,
2595
+ }
2596
+
2597
+ /// A section table.
2598
+ pub type Sections<'data> = Table<Section<'data>>;
2599
+
2600
+ impl<'data> Sections<'data> {
2601
+ /// Add a new section to the table.
2602
+ pub fn add(&mut self) -> &mut Section<'data> {
2603
+ let id = self.next_id();
2604
+ self.push(Section {
2605
+ id,
2606
+ delete: false,
2607
+ name: ByteString::default(),
2608
+ sh_type: 0,
2609
+ sh_flags: 0,
2610
+ sh_addr: 0,
2611
+ sh_offset: 0,
2612
+ sh_size: 0,
2613
+ sh_link_section: None,
2614
+ sh_info: 0,
2615
+ sh_info_section: None,
2616
+ sh_addralign: 0,
2617
+ sh_entsize: 0,
2618
+ data: SectionData::Data(Bytes::default()),
2619
+ })
2620
+ }
2621
+
2622
+ /// Add a copy of a section to the table.
2623
+ ///
2624
+ /// This will set the file offset of the copy to zero.
2625
+ /// [`Segment::append_section`] can be used to assign a valid file offset and a new address.
2626
+ pub fn copy(&mut self, id: SectionId) -> &mut Section<'data> {
2627
+ let section = self.get(id);
2628
+ let id = self.next_id();
2629
+ let name = section.name.clone();
2630
+ let sh_type = section.sh_type;
2631
+ let sh_flags = section.sh_flags;
2632
+ let sh_addr = section.sh_addr;
2633
+ let sh_size = section.sh_size;
2634
+ let sh_link_section = section.sh_link_section;
2635
+ let sh_info = section.sh_info;
2636
+ let sh_info_section = section.sh_info_section;
2637
+ let sh_addralign = section.sh_addralign;
2638
+ let sh_entsize = section.sh_entsize;
2639
+ let data = section.data.clone();
2640
+ self.push(Section {
2641
+ id,
2642
+ delete: false,
2643
+ name,
2644
+ sh_type,
2645
+ sh_flags,
2646
+ sh_addr,
2647
+ sh_offset: 0,
2648
+ sh_size,
2649
+ sh_link_section,
2650
+ sh_info,
2651
+ sh_info_section,
2652
+ sh_addralign,
2653
+ sh_entsize,
2654
+ data,
2655
+ })
2656
+ }
2657
+ }
2658
+
2659
+ /// An ID for referring to a symbol in [`Symbols`].
2660
+ #[derive(Clone, Copy, PartialEq, Eq)]
2661
+ pub struct SymbolId<const DYNAMIC: bool = false>(usize);
2662
+
2663
+ impl<const DYNAMIC: bool> fmt::Debug for SymbolId<DYNAMIC> {
2664
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2665
+ self.0.fmt(f)
2666
+ }
2667
+ }
2668
+
2669
+ impl<const DYNAMIC: bool> Id for SymbolId<DYNAMIC> {
2670
+ fn index(&self) -> usize {
2671
+ self.0
2672
+ }
2673
+ }
2674
+
2675
+ impl<const DYNAMIC: bool> IdPrivate for SymbolId<DYNAMIC> {
2676
+ fn new(id: usize) -> Self {
2677
+ SymbolId(id)
2678
+ }
2679
+ }
2680
+
2681
+ /// A symbol in [`Symbols`].
2682
+ ///
2683
+ /// This corresponds to [`elf::Sym32`] or [`elf::Sym64`].
2684
+ #[derive(Debug)]
2685
+ pub struct Symbol<'data, const DYNAMIC: bool = false> {
2686
+ id: SymbolId<DYNAMIC>,
2687
+ /// Ignore this symbol when writing the ELF file.
2688
+ pub delete: bool,
2689
+ /// The name of the symbol.
2690
+ pub name: ByteString<'data>,
2691
+ /// The section referenced by the symbol.
2692
+ ///
2693
+ /// Used to set the `st_shndx` field in the ELF symbol.
2694
+ pub section: Option<SectionId>,
2695
+ /// The `st_info` field in the ELF symbol.
2696
+ pub st_info: u8,
2697
+ /// The `st_other` field in the ELF symbol.
2698
+ pub st_other: u8,
2699
+ /// The `st_shndx` field in the ELF symbol.
2700
+ ///
2701
+ /// Only used if `Self::section` is `None`.
2702
+ pub st_shndx: u16,
2703
+ /// The `st_value` field in the ELF symbol.
2704
+ pub st_value: u64,
2705
+ /// The `st_size` field in the ELF symbol.
2706
+ pub st_size: u64,
2707
+ /// GNU version for dynamic symbols.
2708
+ pub version: VersionId,
2709
+ /// Set the [`elf::VERSYM_HIDDEN`] flag for this symbol.
2710
+ pub version_hidden: bool,
2711
+ }
2712
+
2713
+ impl<'data, const DYNAMIC: bool> Item for Symbol<'data, DYNAMIC> {
2714
+ type Id = SymbolId<DYNAMIC>;
2715
+
2716
+ fn is_deleted(&self) -> bool {
2717
+ self.delete
2718
+ }
2719
+ }
2720
+
2721
+ impl<'data, const DYNAMIC: bool> Symbol<'data, DYNAMIC> {
2722
+ /// The ID used for referring to this symbol.
2723
+ pub fn id(&self) -> SymbolId<DYNAMIC> {
2724
+ self.id
2725
+ }
2726
+
2727
+ /// Get the `st_bind` component of the `st_info` field.
2728
+ #[inline]
2729
+ pub fn st_bind(&self) -> u8 {
2730
+ self.st_info >> 4
2731
+ }
2732
+
2733
+ /// Get the `st_type` component of the `st_info` field.
2734
+ #[inline]
2735
+ pub fn st_type(&self) -> u8 {
2736
+ self.st_info & 0xf
2737
+ }
2738
+
2739
+ /// Set the `st_info` field given the `st_bind` and `st_type` components.
2740
+ #[inline]
2741
+ pub fn set_st_info(&mut self, st_bind: u8, st_type: u8) {
2742
+ self.st_info = (st_bind << 4) + (st_type & 0xf);
2743
+ }
2744
+ }
2745
+
2746
+ /// A symbol table.
2747
+ pub type Symbols<'data, const DYNAMIC: bool = false> = Table<Symbol<'data, DYNAMIC>>;
2748
+
2749
+ impl<'data, const DYNAMIC: bool> Symbols<'data, DYNAMIC> {
2750
+ /// Number of defined symbols.
2751
+ pub fn count_defined(&self) -> usize {
2752
+ self.into_iter()
2753
+ .filter(|symbol| symbol.st_shndx != elf::SHN_UNDEF)
2754
+ .count()
2755
+ }
2756
+
2757
+ /// Add a new symbol to the table.
2758
+ pub fn add(&mut self) -> &mut Symbol<'data, DYNAMIC> {
2759
+ let id = self.next_id();
2760
+ self.push(Symbol {
2761
+ id,
2762
+ delete: false,
2763
+ name: ByteString::default(),
2764
+ section: None,
2765
+ st_info: 0,
2766
+ st_other: 0,
2767
+ st_shndx: 0,
2768
+ st_value: 0,
2769
+ st_size: 0,
2770
+ version: VersionId::local(),
2771
+ version_hidden: false,
2772
+ })
2773
+ }
2774
+ }
2775
+
2776
+ /// A relocation stored in a [`Section`].
2777
+ ///
2778
+ /// This corresponds to [`elf::Rel32`], [`elf::Rela32`], [`elf::Rel64`] or [`elf::Rela64`].
2779
+ #[derive(Debug, Clone, Copy, PartialEq, Eq)]
2780
+ pub struct Relocation<const DYNAMIC: bool = false> {
2781
+ /// The `r_offset` field in the ELF relocation.
2782
+ pub r_offset: u64,
2783
+ /// The symbol referenced by the ELF relocation.
2784
+ pub symbol: Option<SymbolId<DYNAMIC>>,
2785
+ /// The `r_type` field in the ELF relocation.
2786
+ pub r_type: u32,
2787
+ /// The `r_addend` field in the ELF relocation.
2788
+ ///
2789
+ /// Only used if the section type is `SHT_RELA`.
2790
+ pub r_addend: i64,
2791
+ }
2792
+
2793
+ /// A dynamic symbol ID.
2794
+ pub type DynamicSymbolId = SymbolId<true>;
2795
+
2796
+ /// A dynamic symbol.
2797
+ pub type DynamicSymbol<'data> = Symbol<'data, true>;
2798
+
2799
+ /// A dynamic symbol table.
2800
+ pub type DynamicSymbols<'data> = Symbols<'data, true>;
2801
+
2802
+ /// A dynamic relocation.
2803
+ pub type DynamicRelocation = Relocation<true>;
2804
+
2805
+ /// An entry in the dynamic section.
2806
+ ///
2807
+ /// This corresponds to [`elf::Dyn32`] or [`elf::Dyn64`].
2808
+ #[derive(Debug, Clone, PartialEq, Eq)]
2809
+ pub enum Dynamic<'data> {
2810
+ /// The value is an automatically generated integer.
2811
+ ///
2812
+ /// Writing will fail if the value cannot be automatically generated.
2813
+ Auto {
2814
+ /// The `d_tag` field in the dynamic entry.
2815
+ ///
2816
+ /// One of the `DT_*` values.
2817
+ tag: u32,
2818
+ },
2819
+ /// The value is an integer.
2820
+ Integer {
2821
+ /// The `d_tag` field in the dynamic entry.
2822
+ ///
2823
+ /// One of the `DT_*` values.
2824
+ tag: u32,
2825
+ /// The `d_val` field in the dynamic entry.
2826
+ val: u64,
2827
+ },
2828
+ /// The value is a string.
2829
+ String {
2830
+ /// The `d_tag` field in the dynamic entry.
2831
+ ///
2832
+ /// One of the `DT_*` values.
2833
+ tag: u32,
2834
+ /// The string value.
2835
+ ///
2836
+ /// This will be stored in the dynamic string section.
2837
+ val: ByteString<'data>,
2838
+ },
2839
+ }
2840
+
2841
+ impl<'data> Dynamic<'data> {
2842
+ /// The `d_tag` field in the dynamic entry.
2843
+ ///
2844
+ /// One of the `DT_*` values.
2845
+ pub fn tag(&self) -> u32 {
2846
+ match self {
2847
+ Dynamic::Auto { tag } => *tag,
2848
+ Dynamic::Integer { tag, .. } => *tag,
2849
+ Dynamic::String { tag, .. } => *tag,
2850
+ }
2851
+ }
2852
+ }
2853
+
2854
+ /// An ID for referring to a filename in [`VersionFiles`].
2855
+ #[derive(Clone, Copy, PartialEq, Eq)]
2856
+ pub struct VersionFileId(usize);
2857
+
2858
+ impl fmt::Debug for VersionFileId {
2859
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2860
+ write!(f, "VersionFileId({})", self.0)
2861
+ }
2862
+ }
2863
+
2864
+ impl Id for VersionFileId {
2865
+ fn index(&self) -> usize {
2866
+ self.0
2867
+ }
2868
+ }
2869
+
2870
+ impl IdPrivate for VersionFileId {
2871
+ fn new(id: usize) -> Self {
2872
+ VersionFileId(id)
2873
+ }
2874
+ }
2875
+
2876
+ /// A filename used for GNU versioning.
2877
+ ///
2878
+ /// Stored in [`VersionFiles`].
2879
+ #[derive(Debug)]
2880
+ pub struct VersionFile<'data> {
2881
+ id: VersionFileId,
2882
+ /// Ignore this file when writing the ELF file.
2883
+ pub delete: bool,
2884
+ /// The filename.
2885
+ pub name: ByteString<'data>,
2886
+ }
2887
+
2888
+ impl<'data> Item for VersionFile<'data> {
2889
+ type Id = VersionFileId;
2890
+
2891
+ fn is_deleted(&self) -> bool {
2892
+ self.delete
2893
+ }
2894
+ }
2895
+
2896
+ impl<'data> VersionFile<'data> {
2897
+ /// The ID used for referring to this filename.
2898
+ pub fn id(&self) -> VersionFileId {
2899
+ self.id
2900
+ }
2901
+ }
2902
+
2903
+ /// A table of filenames used for GNU versioning.
2904
+ pub type VersionFiles<'data> = Table<VersionFile<'data>>;
2905
+
2906
+ impl<'data> VersionFiles<'data> {
2907
+ /// Add a new filename to the table.
2908
+ pub fn add(&mut self, name: ByteString<'data>) -> VersionFileId {
2909
+ let id = self.next_id();
2910
+ self.push(VersionFile {
2911
+ id,
2912
+ name,
2913
+ delete: false,
2914
+ });
2915
+ id
2916
+ }
2917
+ }
2918
+
2919
+ const VERSION_ID_BASE: usize = 2;
2920
+
2921
+ /// An ID for referring to a version in [`Versions`].
2922
+ #[derive(Clone, Copy, PartialEq, Eq)]
2923
+ pub struct VersionId(usize);
2924
+
2925
+ impl fmt::Debug for VersionId {
2926
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2927
+ write!(f, "VersionId({})", self.0)
2928
+ }
2929
+ }
2930
+
2931
+ impl Id for VersionId {
2932
+ fn index(&self) -> usize {
2933
+ self.0 - VERSION_ID_BASE
2934
+ }
2935
+ }
2936
+
2937
+ impl IdPrivate for VersionId {
2938
+ fn new(id: usize) -> Self {
2939
+ VersionId(VERSION_ID_BASE + id)
2940
+ }
2941
+ }
2942
+
2943
+ impl VersionId {
2944
+ /// Return `True` if this is a special version that does not exist in the version table.
2945
+ pub fn is_special(&self) -> bool {
2946
+ self.0 < VERSION_ID_BASE
2947
+ }
2948
+
2949
+ /// Return the ID for a version index of [`elf::VER_NDX_LOCAL`].
2950
+ pub fn local() -> Self {
2951
+ VersionId(elf::VER_NDX_LOCAL as usize)
2952
+ }
2953
+
2954
+ /// Return the ID for a version index of [`elf::VER_NDX_GLOBAL`].
2955
+ pub fn global() -> Self {
2956
+ VersionId(elf::VER_NDX_GLOBAL as usize)
2957
+ }
2958
+ }
2959
+
2960
+ /// A version for a symbol.
2961
+ #[derive(Debug)]
2962
+ pub struct Version<'data> {
2963
+ id: VersionId,
2964
+ /// The data for this version.
2965
+ pub data: VersionData<'data>,
2966
+ /// Ignore this version when writing the ELF file.
2967
+ pub delete: bool,
2968
+ }
2969
+
2970
+ impl<'data> Item for Version<'data> {
2971
+ type Id = VersionId;
2972
+
2973
+ fn is_deleted(&self) -> bool {
2974
+ self.delete
2975
+ }
2976
+ }
2977
+
2978
+ impl<'data> Version<'data> {
2979
+ /// The ID used for referring to this version.
2980
+ pub fn id(&self) -> VersionId {
2981
+ self.id
2982
+ }
2983
+ }
2984
+
2985
+ /// The data for a version for a symbol.
2986
+ #[derive(Debug)]
2987
+ pub enum VersionData<'data> {
2988
+ /// The version for a defined symbol.
2989
+ Def(VersionDef<'data>),
2990
+ /// The version for an undefined symbol.
2991
+ Need(VersionNeed<'data>),
2992
+ }
2993
+
2994
+ /// A GNU version definition.
2995
+ #[derive(Debug)]
2996
+ pub struct VersionDef<'data> {
2997
+ /// The names for the version.
2998
+ ///
2999
+ /// This usually has two elements. The first element is the name of this
3000
+ /// version, and the second element is the name of the previous version
3001
+ /// in the tree of versions.
3002
+ pub names: Vec<ByteString<'data>>,
3003
+ /// The version flags.
3004
+ ///
3005
+ /// A combination of the `VER_FLG_*` constants.
3006
+ pub flags: u16,
3007
+ }
3008
+
3009
+ impl<'data> VersionDef<'data> {
3010
+ /// Optimise for the common case where the first version is the same as the base version.
3011
+ fn is_shared(&self, index: usize, base: Option<&ByteString<'_>>) -> bool {
3012
+ index == 1 && self.names.len() == 1 && self.names.first() == base
3013
+ }
3014
+ }
3015
+
3016
+ /// A GNU version dependency.
3017
+ #[derive(Debug)]
3018
+ pub struct VersionNeed<'data> {
3019
+ /// The filename of the library providing this version.
3020
+ pub file: VersionFileId,
3021
+ /// The name of the version.
3022
+ pub name: ByteString<'data>,
3023
+ /// The version flags.
3024
+ ///
3025
+ /// A combination of the `VER_FLG_*` constants.
3026
+ pub flags: u16,
3027
+ }
3028
+
3029
+ /// A table of versions that are referenced by symbols.
3030
+ pub type Versions<'data> = Table<Version<'data>>;
3031
+
3032
+ impl<'data> Versions<'data> {
3033
+ /// Add a version.
3034
+ pub fn add(&mut self, data: VersionData<'data>) -> VersionId {
3035
+ let id = self.next_id();
3036
+ self.push(Version {
3037
+ id,
3038
+ data,
3039
+ delete: false,
3040
+ });
3041
+ id
3042
+ }
3043
+ }
3044
+
3045
+ /// The contents of an attributes section.
3046
+ #[derive(Debug, Default, Clone)]
3047
+ pub struct AttributesSection<'data> {
3048
+ /// The subsections.
3049
+ pub subsections: Vec<AttributesSubsection<'data>>,
3050
+ }
3051
+
3052
+ impl<'data> AttributesSection<'data> {
3053
+ /// Create a new attributes section.
3054
+ pub fn new() -> Self {
3055
+ Self::default()
3056
+ }
3057
+ }
3058
+
3059
+ /// A subsection of an attributes section.
3060
+ #[derive(Debug, Clone)]
3061
+ pub struct AttributesSubsection<'data> {
3062
+ /// The vendor namespace for these attributes.
3063
+ pub vendor: ByteString<'data>,
3064
+ /// The sub-subsections.
3065
+ pub subsubsections: Vec<AttributesSubsubsection<'data>>,
3066
+ }
3067
+
3068
+ impl<'data> AttributesSubsection<'data> {
3069
+ /// Create a new subsection.
3070
+ pub fn new(vendor: ByteString<'data>) -> Self {
3071
+ AttributesSubsection {
3072
+ vendor,
3073
+ subsubsections: Vec::new(),
3074
+ }
3075
+ }
3076
+ }
3077
+
3078
+ /// A sub-subsection in an attributes section.
3079
+ #[derive(Debug, Clone)]
3080
+ pub struct AttributesSubsubsection<'data> {
3081
+ /// The sub-subsection tag.
3082
+ pub tag: AttributeTag,
3083
+ /// The data containing the attributes.
3084
+ pub data: Bytes<'data>,
3085
+ }
3086
+
3087
+ /// The tag for a sub-subsection in an attributes section.
3088
+ #[derive(Debug, Clone, PartialEq, Eq)]
3089
+ pub enum AttributeTag {
3090
+ /// The attributes apply to the whole file.
3091
+ ///
3092
+ /// Correspeonds to [`elf::Tag_File`].
3093
+ File,
3094
+ /// The attributes apply to the given sections.
3095
+ ///
3096
+ /// Correspeonds to [`elf::Tag_Section`].
3097
+ Section(Vec<SectionId>),
3098
+ /// The attributes apply to the given symbols.
3099
+ ///
3100
+ /// Correspeonds to [`elf::Tag_Symbol`].
3101
+ Symbol(Vec<SymbolId>),
3102
+ }
3103
+
3104
+ impl AttributeTag {
3105
+ /// Return the corresponding `elf::Tag_*` value for this tag.
3106
+ pub fn tag(&self) -> u8 {
3107
+ match self {
3108
+ AttributeTag::File => elf::Tag_File,
3109
+ AttributeTag::Section(_) => elf::Tag_Section,
3110
+ AttributeTag::Symbol(_) => elf::Tag_Symbol,
3111
+ }
3112
+ }
3113
+ }