use thiserror::Error;
#[derive(Error, Debug)]
pub enum WszError {
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("ZIP error: {0}")]
Zip(#[from] zip::result::ZipError),
#[error("Not found: {0}")]
NotFound(String),
#[error("Image error: {0}")]
ImageError(#[from] image::ImageError),
#[error("Argument error: {0}")]
ArgumentError(String),
#[error("Invalid format on line {line}: {error}")]
InvalidFormat { line: usize, error: String },
#[error("Missing section: {0}")]
MissingSection(String),
}
pub type Result<T> = std::result::Result<T, WszError>;