Function wasmtime_wasi_http::add_to_linker_sync

source ·
pub fn add_to_linker_sync<T>(l: &mut Linker<T>) -> Result<()>
Expand description

Add all of the wasi:http/proxy world’s interfaces to a wasmtime::component::Linker.

This function will add the sync variant of all interfaces into the Linker provided. For embeddings with async support see add_to_linker_async instead.

§Example

use wasmtime::{Engine, Result, Config};
use wasmtime::component::{ResourceTable, Linker};
use wasmtime_wasi::{WasiCtx, WasiView};
use wasmtime_wasi_http::{WasiHttpCtx, WasiHttpView};

fn main() -> Result<()> {
    let config = Config::default();
    let engine = Engine::new(&config)?;

    let mut linker = Linker::<MyState>::new(&engine);
    wasmtime_wasi_http::add_to_linker_sync(&mut linker)?;
    // ... add any further functionality to `linker` if desired ...

    Ok(())
}

struct MyState {
    ctx: WasiCtx,
    http_ctx: WasiHttpCtx,
    table: ResourceTable,
}

impl WasiHttpView for MyState {
    fn ctx(&mut self) -> &mut WasiHttpCtx { &mut self.http_ctx }
    fn table(&mut self) -> &mut ResourceTable { &mut self.table }
}
impl WasiView for MyState {
    fn ctx(&mut self) -> &mut WasiCtx { &mut self.ctx }
    fn table(&mut self) -> &mut ResourceTable { &mut self.table }
}