Files
simple-rust-tests/__wasm/wit-bindgen-sample/wit-bindgen/tests/runtime/many_arguments/host.rs

72 lines
1.7 KiB
Rust

use anyhow::Result;
wit_bindgen_wasmtime::export!("../../tests/runtime/many_arguments/imports.wit");
#[derive(Default)]
pub struct MyImports {}
impl imports::Imports for MyImports {
fn many_arguments(
&mut self,
a1: u64,
a2: u64,
a3: u64,
a4: u64,
a5: u64,
a6: u64,
a7: u64,
a8: u64,
a9: u64,
a10: u64,
a11: u64,
a12: u64,
a13: u64,
a14: u64,
a15: u64,
a16: u64,
a17: u64,
a18: u64,
a19: u64,
a20: u64,
) {
assert_eq!(a1, 1);
assert_eq!(a2, 2);
assert_eq!(a3, 3);
assert_eq!(a4, 4);
assert_eq!(a5, 5);
assert_eq!(a6, 6);
assert_eq!(a7, 7);
assert_eq!(a8, 8);
assert_eq!(a9, 9);
assert_eq!(a10, 10);
assert_eq!(a11, 11);
assert_eq!(a12, 12);
assert_eq!(a13, 13);
assert_eq!(a14, 14);
assert_eq!(a15, 15);
assert_eq!(a16, 16);
assert_eq!(a17, 17);
assert_eq!(a18, 18);
assert_eq!(a19, 19);
assert_eq!(a20, 20);
}
}
wit_bindgen_wasmtime::import!("../../tests/runtime/many_arguments/exports.wit");
fn run(wasm: &str) -> Result<()> {
let (exports, mut store) = crate::instantiate(
wasm,
|linker| imports::add_to_linker(linker, |cx| -> &mut MyImports { &mut cx.imports }),
|store, module, linker| {
exports::Exports::instantiate(store, module, linker, |cx| &mut cx.exports)
},
)?;
exports.many_arguments(
&mut store, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
)?;
Ok(())
}