use snafu::Snafu;
use std::path::PathBuf;
#[derive(Debug, Snafu)]
#[snafu(visibility(pub))]
pub enum JarError {
#[snafu(display("I/O error for path '{path}': {source}", path = path.display()))]
Io {
#[snafu(source)]
source: std::io::Error,
path: PathBuf,
},
#[snafu(display("Zip error: {source}"))]
Zip {
#[snafu(source)]
source: zip::result::ZipError,
},
#[snafu(display("Entry not found: {entry_name}"))]
EntryNotFound { entry_name: String },
}
pub type Result<T> = std::result::Result<T, JarError>;
impl From<zip::result::ZipError> for JarError {
fn from(value: zip::result::ZipError) -> Self {
JarError::Zip { source: value }
}
}