pub fn add_to_linker<T>(linker: &mut Linker<T>) -> Result<()>where
T: WasiHttpView + 'static,
Available on crate feature
p3
only.Expand description
Add all 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:http/imports
world supported by
this module.
ยงExample
use wasmtime::{Engine, Result, Store, Config};
use wasmtime::component::{Linker, ResourceTable};
use wasmtime_wasi_http::p3::{DefaultWasiHttpCtx, WasiHttpCtxView, WasiHttpView};
fn main() -> Result<()> {
let mut config = Config::new();
config.async_support(true);
config.wasm_component_model_async(true);
let engine = Engine::new(&config)?;
let mut linker = Linker::<MyState>::new(&engine);
wasmtime_wasi_http::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 {
http: DefaultWasiHttpCtx,
table: ResourceTable,
}
impl WasiHttpView for MyState {
fn http(&mut self) -> WasiHttpCtxView<'_> {
WasiHttpCtxView {
ctx: &mut self.http,
table: &mut self.table,
}
}
}