wasmx 0.0.0

High-performance, embeddable WebAssembly execution engine
Documentation
use anyhow::Context as _;
use wasmtime::component::Resource;

use crate::engine::bindings::wasi::io::error::{Host, HostError};
use crate::engine::wasi::io::Error;
use crate::Ctx;

impl Host for Ctx {}
impl HostError for Ctx {
    fn to_debug_string(&mut self, err: Resource<Error>) -> wasmtime::Result<String> {
        let err = self
            .table
            .get(&err)
            .context("failed to get error resource")?;
        Ok(format!("{err:?}"))
    }

    fn drop(&mut self, err: Resource<Error>) -> wasmtime::Result<()> {
        self.table
            .delete(err)
            .context("failed to delete error resource")?;
        Ok(())
    }
}