#![cfg_attr(docsrs, feature(doc_cfg))]
#![warn(missing_docs)]
mod guest_file_ops;
mod http_proxy;
pub mod pool;
mod snapshot;
mod vm;
mod vm_assets;
#[cfg(all(target_os = "linux", feature = "kvm"))]
mod kvm;
#[cfg(all(target_os = "linux", feature = "kvm"))]
mod restore_pool;
pub use http_proxy::{HttpProxyError, HttpRequest, HttpResponse};
pub use pool::{PoolError, PooledVm, VmPool, VmPoolConfig, VmPoolStats};
pub use snapshot::MicrovmSnapshot;
pub use vm::{
GuestCommandResult, GuestExecOptions, GuestFileErrorKind, LifecycleError, MicrovmConfig,
MicrovmError, MicrovmSandbox, MicrovmState, StreamEvent,
};
pub use vm_assets::{
microvm_config_from_assets_dir, microvm_config_from_vm_assets, resolve_vm_assets_dir,
vm_assets_dir,
};
#[cfg(all(target_os = "linux", feature = "kvm"))]
#[cfg_attr(docsrs, doc(cfg(feature = "kvm")))]
pub use kvm::{KvmBackend, KvmExitReason, KvmLifecycle, KvmTransport};
#[cfg(all(target_os = "linux", feature = "kvm"))]
#[cfg_attr(docsrs, doc(cfg(feature = "kvm")))]
pub use restore_pool::{PooledRestoreVm, RestorePool, RestorePoolConfig, RestorePoolError};