use thiserror::Error;
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum ExtismError {
#[error("extism plugin: invalid wasm or manifest: {0}")]
InvalidPlugin(String),
#[error("extism plugin manifest invalid: {0}")]
ManifestInvalid(String),
#[error("extism instantiation failed: {0}")]
Instantiate(String),
#[error("extism plugin called host fn `{host_fn}` without {capability:?} grant")]
CapabilityDenied {
host_fn: String,
capability: String,
},
#[error("extism output decode error: {0}")]
OutputDecode(String),
#[error("extism arrow IPC: {0}")]
Ipc(#[from] uni_plugin_wasm_rt::IpcError),
#[error("extism plugin exceeded resource limit: {0}")]
ResourceLimit(String),
#[error("uni-plugin-extism internal error: {0}")]
Internal(String),
}
impl uni_plugin_wasm_rt::pool::PoolResourceLimit for ExtismError {
fn resource_limit(msg: String) -> Self {
Self::ResourceLimit(msg)
}
}