feat(errors): add errors module

This commit is contained in:
Kat Marchán 2019-06-04 00:00:07 +02:00
parent 076104e367
commit b0464849e6
No known key found for this signature in database
GPG Key ID: AEB529C08A3C7E9E
1 changed files with 33 additions and 0 deletions

33
src/errors.rs Normal file
View File

@ -0,0 +1,33 @@
use std::io;
use chownr;
use failure::Fail;
use serde_json;
#[derive(Fail, Debug)]
pub enum Error {
#[fail(display = "{}", _0)]
Io(#[fail(cause)] io::Error),
#[fail(display = "{}", _0)]
Chownr(#[fail(cause)] chownr::Error),
#[fail(display = "{}", _0)]
SerdeJson(#[fail(cause)] serde_json::error::Error),
}
impl From<std::io::Error> for Error {
fn from(error: std::io::Error) -> Self {
Error::Io(error)
}
}
impl From<chownr::Error> for Error {
fn from(error: chownr::Error) -> Self {
Error::Chownr(error)
}
}
impl From<serde_json::error::Error> for Error {
fn from(error: serde_json::error::Error) -> Self {
Error::SerdeJson(error)
}
}