//! Cloud Hypervisor VM management module.
//!
//! This module provides functionality to create, start, stop, and manage
//! virtual machines using Cloud Hypervisor (cloud-hypervisor-static).
//!
//! # Architecture
//!
//! - `error` - Error types for Cloud Hypervisor operations
//! - `types` - VM specification and runtime state types
//! - `paths` - Path utilities for VM data storage
//! - `utils` - Shell utilities and helper functions
//! - `operations` - VM lifecycle operations (create, start, stop, delete, list)
//!
//! # Example
//!
//! ```rust,ignore
//! use crate::cloudhv::{VmSpec, vm_create, vm_start, vm_stop, vm_delete};
//!
//! let spec = VmSpec {
//!     id: "my-vm".into(),
//!     kernel_path: Some("/path/to/vmlinux".into()),
//!     firmware_path: None,
//!     disk_path: "/path/to/disk.raw".into(),
//!     api_socket: "".into(),
//!     vcpus: 2,
//!     memory_mb: 1024,
//!     cmdline: None,
//!     extra_args: None,
//! };
//!
//! vm_create(&spec)?;
//! vm_start("my-vm")?;
//! vm_stop("my-vm", false)?;
//! vm_delete("my-vm", false)?;
//! ```

pub mod error;
mod operations;
mod paths;
pub mod rhai;
pub mod types;
mod utils;

// Re-export public API
pub use error::CloudHvError;
pub use operations::{vm_create, vm_delete, vm_info, vm_list, vm_start, vm_stop};
pub use types::{VmRecord, VmRuntime, VmSpec};
