Remove the need for HostRef<Module>
This commit continues previous work and also #708 by removing the need to use `HostRef<Module>` in the API of the `wasmtime` crate. The API changes performed here are: * The `Module` type is now itself internally reference counted. * The `Module::store` function now returns the `Store` that was used to create a `Module` * Documentation for `Module` and its methods have been expanded.
This commit is contained in:
@@ -34,7 +34,7 @@ fn test_import_calling_export() {
|
||||
|
||||
let store = Store::default();
|
||||
let wasm = wat::parse_str(WAT).unwrap();
|
||||
let module = HostRef::new(Module::new(&store, &wasm).expect("failed to create module"));
|
||||
let module = Module::new(&store, &wasm).expect("failed to create module");
|
||||
|
||||
let callback = Rc::new(Callback {
|
||||
other: RefCell::new(None),
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
(module
|
||||
(type $t0 (func))
|
||||
(import "" "imp" (func $.imp (type $t0)))
|
||||
(func $run call $.imp)
|
||||
(func $other)
|
||||
(export "run" (func $run))
|
||||
(export "other" (func $other))
|
||||
)
|
||||
@@ -15,17 +15,16 @@ fn test_trap_return() -> Result<(), String> {
|
||||
let store = Store::default();
|
||||
let binary = parse_str(
|
||||
r#"
|
||||
(module
|
||||
(func $hello (import "" "hello"))
|
||||
(func (export "run") (call $hello))
|
||||
)
|
||||
"#,
|
||||
(module
|
||||
(func $hello (import "" "hello"))
|
||||
(func (export "run") (call $hello))
|
||||
)
|
||||
"#,
|
||||
)
|
||||
.map_err(|e| format!("failed to parse WebAssembly text source: {}", e))?;
|
||||
|
||||
let module = HostRef::new(
|
||||
Module::new(&store, &binary).map_err(|e| format!("failed to compile module: {}", e))?,
|
||||
);
|
||||
let module =
|
||||
Module::new(&store, &binary).map_err(|e| format!("failed to compile module: {}", e))?;
|
||||
let hello_type = FuncType::new(Box::new([]), Box::new([]));
|
||||
let hello_func = HostRef::new(Func::new(&store, hello_type, Rc::new(HelloCallback)));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user