pub fn add_to_linker<T>(linker: &mut Linker<T>) -> Result<()>where
T: WasiView + 'static,Available on crate feature
p3 only.Expand description
Add all WASI interfaces from this module into the linker provided.
This function will add all interfaces implemented by this module to the
[Linker], which corresponds to the wasi:cli/imports world supported by
this module.
ยงExample
use wasmtime::{Engine, Result, Store, Config};
use wasmtime::component::{Linker, ResourceTable};
use wasmtime_wasi::{WasiCtx, WasiCtxView, WasiView};
fn main() -> Result<()> {
let mut config = Config::new();
config.wasm_component_model_async(true);
let engine = Engine::new(&config)?;
let mut linker = Linker::<MyState>::new(&engine);
wasmtime_wasi::p3::add_to_linker(&mut linker)?;
// ... add any further functionality to `linker` if desired ...
let mut store = Store::new(
&engine,
MyState::default(),
);
// ... use `linker` to instantiate within `store` ...
Ok(())
}
#[derive(Default)]
struct MyState {
ctx: WasiCtx,
table: ResourceTable,
}
impl WasiView for MyState {
fn ctx(&mut self) -> WasiCtxView<'_> {
WasiCtxView{
ctx: &mut self.ctx,
table: &mut self.table,
}
}
}