Improved EngineBuilder and Store API

- Store::new() now takes an impl Into<Engine>.
- Added Into<Engine> impls in each of the compilers
- Updated docs/migration_to_3.0.0.md on API usage
This commit is contained in:
Syrus Akbary
2022-07-27 21:00:41 -07:00
committed by Manos Pitsidianakis
parent b2dc07e1ef
commit 4384ddf9cd
57 changed files with 191 additions and 263 deletions

View File

@@ -145,12 +145,27 @@ let wasm_bytes = wat2wasm(
"..".as_bytes(),
)?;
let compiler_config = Cranelift::default();
let mut store = Store::new(&compiler_config);
let compiler = Cranelift::default();
let mut store = Store::new(compiler);
let module = Module::new(&store, wasm_bytes)?;
let instance = Instance::new(&mut store, &module, &imports! {})?;
```
#### Advanced configuration
The previous ability to define target and features remains in a new `EngineBuilder` interface:
```rust
let compiler = Cranelift::default();
let mut features = Features::new();
// Enable the multi-value feature.
features.multi_value(true);
let engine = EngineBuilder::new(compiler).set_features(Some(features));
let store = Store::new(engine);
```
[examples]: https://docs.wasmer.io/integrations/examples
[wasmer]: https://crates.io/crates/wasmer
[wasmer-wasi]: https://crates.io/crates/wasmer-wasi