use std::time::Duration;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum SandboxError {
#[error("WASM compilation failed: {0}")]
CompilationFailed(String),
#[error("WASM execution failed: {0}")]
ExecutionFailed(String),
#[error("Memory limit exceeded: module tried to exceed {limit_bytes} bytes")]
MemoryLimitExceeded { limit_bytes: usize },
#[error("Execution timeout exceeded: limit was {limit:?}")]
TimeoutExceeded { limit: Duration },
#[error("Fuel exhausted: budget was {fuel_limit} units")]
FuelExhausted { fuel_limit: u64 },
}