#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("wasm initialization failed: {0}")]
WasmInit(String),
#[error("execution exceeded fuel budget ({budget} fuel units)")]
FuelExhausted { budget: u64 },
#[error("execution exceeded {timeout_ms}ms timeout")]
Timeout { timeout_ms: u64 },
#[error("linear memory exceeded {limit_bytes} byte limit")]
MemoryExceeded { limit_bytes: usize },
#[error("bridge error in {api}: {message}")]
Bridge { api: String, message: String },
#[error("wasm trap: {0}")]
Trap(String),
#[error("internal: {0}")]
Internal(String),
}
pub type Result<T> = std::result::Result<T, Error>;