diff options
Diffstat (limited to 'src/fail.rs')
-rw-r--r-- | src/fail.rs | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/fail.rs b/src/fail.rs index b3351ba..1e6baf0 100644 --- a/src/fail.rs +++ b/src/fail.rs @@ -103,7 +103,9 @@ pub enum HError { #[fail(display = "Failed to parse integer!")] ParseIntError(std::num::ParseIntError), #[fail(display = "{}", _0)] - Media(MediaError) + Media(MediaError), + #[fail(display = "{}", _0)] + Mime(MimeError), } impl HError { @@ -331,3 +333,22 @@ impl From<std::num::ParseIntError> for HError { err } } + + +// MIME Errors + +#[derive(Fail, Debug, Clone)] +pub enum MimeError { + #[fail(display = "Need a file to determine MIME type")] + NoFileProvided, + #[fail(display = "File access failed! Error: {}", _0)] + AccessFailed(Box<HError>), + #[fail(display = "No MIME type found for this file",)] + NoMimeFound +} + +impl From<MimeError> for HError { + fn from(e: MimeError) -> Self { + HError::Mime(e) + } +} |