pub(crate) type Result<T> = std::result::Result<T, Error>;
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("Initialization failed: {0}")]
InitializationFailed(String),
#[error("Initialization failed: {0} init interrupted, execution deadline exceeded")]
InitializationFailedTimeout(String),
#[error("Guest call function (__guest_call) not exported by wasm module.")]
GuestCallNotFound,
#[error("WASI related parameter provided, but wasi feature is disabled")]
WasiDisabled,
#[error("WASI context initialization failed: {0}")]
WasiInitCtxError(String),
#[error("Linker cannot register function '{func}': {err}")]
LinkerFuncDef {
func: String,
err: String,
},
#[error("Invalid WasmtimeEngineProviderBuilder configuration: {0}")]
BuilderInvalidConfig(String),
#[error(transparent)]
Wasmtime(#[from] wasmtime::Error),
#[error(transparent)]
Generic(#[from] anyhow::Error),
}
impl From<Error> for wapc::errors::Error {
fn from(e: Error) -> Self {
wapc::errors::Error::ProviderFailure(Box::new(e))
}
}