use thiserror::Error;
pub type Result<T> = std::result::Result<T, ImageError>;
#[derive(Debug, Error)]
pub enum ImageError {
#[error("image not found: {0}")]
NotFound(String),
#[error("invalid image reference: {0}")]
InvalidReference(String),
#[error("registry error: {0}")]
Registry(String),
#[error("authentication error: {0}")]
Auth(String),
#[error("manifest error: {0}")]
Manifest(String),
#[error("layer error: {0}")]
Layer(String),
#[error("storage error: {0}")]
Storage(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
}