Implement RFC 11: Redesigning Wasmtime's APIs (#2897)

Implement Wasmtime's new API as designed by RFC 11. This is quite a large commit which has had lots of discussion externally, so for more information it's best to read the RFC thread and the PR thread.
This commit is contained in:
Alex Crichton
2021-06-03 09:10:53 -05:00
committed by GitHub
parent a5a28b1c5b
commit 7a1b7cdf92
233 changed files with 13349 additions and 11997 deletions

View File

@@ -3,7 +3,7 @@ use wasmtime::*;
#[test]
fn test_invoke_func_via_table() -> Result<()> {
let store = Store::default();
let mut store = Store::<()>::default();
let wat = r#"
(module
@@ -14,18 +14,19 @@ fn test_invoke_func_via_table() -> Result<()> {
)
"#;
let module = Module::new(store.engine(), wat).context("> Error compiling module!")?;
let instance = Instance::new(&store, &module, &[]).context("> Error instantiating module!")?;
let instance =
Instance::new(&mut store, &module, &[]).context("> Error instantiating module!")?;
let f = instance
.get_table("table")
.get_table(&mut store, "table")
.unwrap()
.get(0)
.get(&mut store, 0)
.unwrap()
.funcref()
.unwrap()
.unwrap()
.clone();
let result = f.call(&[]).unwrap();
let result = f.call(&mut store, &[]).unwrap();
assert_eq!(result[0].unwrap_i64(), 42);
Ok(())
}