Remove explicit S type parameters (#5275)
* Remove explicit `S` type parameters This commit removes the explicit `S` type parameter on `Func::typed` and `Instance::get_typed_func`. Historical versions of Rust required that this be a type parameter but recent rustcs support a mixture of explicit type parameters and `impl Trait`. This removes, at callsites, a superfluous `, _` argument which otherwise never needs specification. * Fix mdbook examples
This commit is contained in:
@@ -86,7 +86,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
// There's a few ways we can call the `answer` `Func` value. The easiest
|
||||
// is to statically assert its signature with `typed` (in this case
|
||||
// asserting it takes no arguments and returns one i32) and then call it.
|
||||
let answer = answer.typed::<(), i32, _>(&store)?;
|
||||
let answer = answer.typed::<(), i32>(&store)?;
|
||||
|
||||
// And finally we can call our function! Note that the error propagation
|
||||
// with `?` is done to handle the case where the wasm function traps.
|
||||
@@ -184,7 +184,7 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
let instance = linker.instantiate(&mut store, &module)?;
|
||||
|
||||
// Like before, we can get the run function and execute it.
|
||||
let run = instance.get_typed_func::<(), (), _>(&mut store, "run")?;
|
||||
let run = instance.get_typed_func::<(), ()>(&mut store, "run")?;
|
||||
run.call(&mut store, ())?;
|
||||
|
||||
// We can also inspect what integers were logged:
|
||||
|
||||
@@ -47,7 +47,7 @@ let wat = r#"
|
||||
"#;
|
||||
let module = Module::new(store.engine(), wat)?;
|
||||
let instance = Instance::new(&mut store, &module, &[])?;
|
||||
let add = instance.get_typed_func::<(i32, i32), i32, _>(&mut store, "add")?;
|
||||
let add = instance.get_typed_func::<(i32, i32), i32>(&mut store, "add")?;
|
||||
println!("1 + 2 = {}", add.call(&mut store, (1, 2))?);
|
||||
# Ok(())
|
||||
# }
|
||||
|
||||
Reference in New Issue
Block a user