pub mod abi;
pub mod fs;
pub mod image;
pub mod kernel;
pub mod loader;
pub mod sandbox;
pub mod vcpu;
pub mod vm;
#[cfg(feature = "wasm")]
pub mod wasm;
pub use abi::Arch;
pub use sandbox::{Config, Sandbox};
#[derive(Debug)]
pub enum Error {
Vcpu(vcpu::VcpuError),
Load(loader::LoadError),
Image(image::ImageError),
Config(String),
}
impl core::fmt::Display for Error {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::Vcpu(e) => write!(f, "{e}"),
Self::Load(e) => write!(f, "{e}"),
Self::Image(e) => write!(f, "{e}"),
Self::Config(m) => write!(f, "configuration error: {m}"),
}
}
}
impl std::error::Error for Error {}
impl From<vcpu::VcpuError> for Error {
fn from(e: vcpu::VcpuError) -> Self {
Self::Vcpu(e)
}
}
impl From<loader::LoadError> for Error {
fn from(e: loader::LoadError) -> Self {
Self::Load(e)
}
}
impl From<image::ImageError> for Error {
fn from(e: image::ImageError) -> Self {
Self::Image(e)
}
}