use thiserror::Error;
#[derive(Debug, Error)]
pub enum SandboxError {
#[error("io error: {0}")]
Io(#[from] std::io::Error),
#[cfg(feature = "docker")]
#[error("docker error: {0}")]
Docker(String),
#[error("sandbox execution timed out")]
Timeout,
#[error("policy violation: {0}")]
PolicyViolation(String),
#[error("sandbox process exited with code {code}: {stderr}")]
ExitFailure {
code: i32,
stderr: String,
},
#[error("not available: {0}")]
NotAvailable(String),
}
#[cfg(feature = "docker")]
impl From<bollard::errors::Error> for SandboxError {
fn from(e: bollard::errors::Error) -> Self {
SandboxError::Docker(e.to_string())
}
}
pub type Result<T> = std::result::Result<T, SandboxError>;