#[non_exhaustive]pub enum ExtismError {
InvalidPlugin(String),
ManifestInvalid(String),
Instantiate(String),
CapabilityDenied {
host_fn: String,
capability: String,
},
OutputDecode(String),
Ipc(IpcError),
ResourceLimit(String),
Internal(String),
}Expand description
Errors specific to the Extism loader.
Mirrors uni_plugin_wasm::WasmError in shape so the two loaders
surface comparable failure modes despite their different ABIs.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
InvalidPlugin(String)
The supplied WASM bytes failed to parse or did not declare the expected Extism plugin shape (manifest export, function exports).
ManifestInvalid(String)
The plugin’s declared manifest did not pass validation (unknown ABI, missing required fields, capability conflict).
Instantiate(String)
Extism plugin instantiation failed.
CapabilityDenied
A capability-gated host function was invoked without the matching grant. Unlike the Component Model path (where the import is absent at the linker level), Extism enforces capability checks at the host-fn body — this variant carries the call that was blocked.
Fields
OutputDecode(String)
The plugin’s output failed to decode under the expected wire format (JSON or MessagePack for control surfaces).
Ipc(IpcError)
Arrow IPC encode / decode failed across the wasm boundary.
Distinct from Self::OutputDecode which is JSON / MessagePack
for control surfaces.
ResourceLimit(String)
Wall-clock, fuel, or memory limit exceeded.
Internal(String)
Internal / unexpected error.
Trait Implementations§
Source§impl Debug for ExtismError
impl Debug for ExtismError
Source§impl Display for ExtismError
impl Display for ExtismError
Source§impl Error for ExtismError
impl Error for ExtismError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<IpcError> for ExtismError
impl From<IpcError> for ExtismError
Source§impl PoolResourceLimit for ExtismError
impl PoolResourceLimit for ExtismError
Source§fn resource_limit(msg: String) -> Self
fn resource_limit(msg: String) -> Self
max_instances is reached.Auto Trait Implementations§
impl Freeze for ExtismError
impl RefUnwindSafe for ExtismError
impl Send for ExtismError
impl Sync for ExtismError
impl Unpin for ExtismError
impl UnsafeUnpin for ExtismError
impl UnwindSafe for ExtismError
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
self file descriptor. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more