use thiserror::Error;

#[derive(Error, Debug)]
pub enum Error {
    #[error("libvirt: {0}")]
    Libvirt(#[from] virt::error::Error),
    #[error("Unknown: {0}")]
    Other(String),
    #[error("Missing connection: {0}")]
    Connection(String),
    #[error("Missing image: {0}")]
    MissingImage(String),
    #[error("Could not allocate VM storage: {0}")]
    Allocation(String),
    #[error("I/O: {0}")]
    Io(#[from] std::io::Error),
    #[error("Remote command error: {0}")]
    RemoteCommand(String),
}