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:
@@ -38,11 +38,10 @@ fn main() -> anyhow::Result<()> {
|
||||
// `Module` which is attached to a `Store` cache.
|
||||
let wasm = wat::parse_str(WAT)?;
|
||||
let store = Store::default();
|
||||
let module = HostRef::new(Module::new(&store, &wasm)?);
|
||||
let module = Module::new(&store, &wasm)?;
|
||||
|
||||
// Find index of the `gcd` export.
|
||||
let gcd_index = module
|
||||
.borrow()
|
||||
.exports()
|
||||
.iter()
|
||||
.enumerate()
|
||||
|
||||
@@ -35,7 +35,7 @@ fn main() -> Result<()> {
|
||||
|
||||
// Compiler the `*.wasm` binary into an in-memory instance of a `Module`.
|
||||
println!("Compiling module...");
|
||||
let module = HostRef::new(Module::new(&store, &binary).context("> Error compiling module!")?);
|
||||
let module = Module::new(&store, &binary).context("> Error compiling module!")?;
|
||||
|
||||
// Here we handle the imports of the module, which in this case is our
|
||||
// `HelloCallback` type and its associated implementation of `Callback.
|
||||
|
||||
@@ -86,7 +86,7 @@ fn main() -> Result<(), Error> {
|
||||
|
||||
// Compile.
|
||||
println!("Compiling module...");
|
||||
let module = HostRef::new(Module::new(&store, &binary).context("> Error compiling module!")?);
|
||||
let module = Module::new(&store, &binary).context("> Error compiling module!")?;
|
||||
|
||||
// Instantiate.
|
||||
println!("Instantiating module...");
|
||||
|
||||
@@ -54,7 +54,7 @@ fn main() -> Result<()> {
|
||||
|
||||
// Compile.
|
||||
println!("Compiling module...");
|
||||
let module = HostRef::new(Module::new(&store, &binary).context("Error compiling module!")?);
|
||||
let module = Module::new(&store, &binary).context("Error compiling module!")?;
|
||||
|
||||
// Create external print functions.
|
||||
println!("Creating callback...");
|
||||
|
||||
Reference in New Issue
Block a user