diff --git a/src/archive/rar.rs b/src/archive/rar.rs index bbbd08f..a482618 100644 --- a/src/archive/rar.rs +++ b/src/archive/rar.rs @@ -61,7 +61,7 @@ pub fn list_archive( Ok(FileInArchive { path, is_dir }) }).collect::>().into_iter(), - Err(e) => vec![Err(Error::UnsupportedFormat {reason:e.to_string()})].into_iter(), + Err(e) => vec![Err(Error::UnrarError{reason: e.to_string()})].into_iter(), } } diff --git a/src/error.rs b/src/error.rs index 7e7a0a8..a8b6004 100644 --- a/src/error.rs +++ b/src/error.rs @@ -41,6 +41,8 @@ pub enum Error { UnsupportedFormat { reason: String }, /// Invalid password provided InvalidPassword(&'static str), + /// UnrarError From unrar::error::UnrarError + UnrarError { reason: String }, } /// Alias to std's Result with ouch's Error @@ -151,6 +153,7 @@ impl fmt::Display for Error { FinalError::with_title("Recognised but unsupported format").detail(reason.clone()) } Error::InvalidPassword(reason) => FinalError::with_title("Invalid password").detail(*reason), + Error::UnrarError{reason} => FinalError::with_title("Unrar error").detail(reason.clone()), }; write!(f, "{err}")