From b0464849e6cd32b047bbdfaa000e961dc2d87e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Tue, 4 Jun 2019 00:00:07 +0200 Subject: [PATCH] feat(errors): add errors module --- src/errors.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/errors.rs diff --git a/src/errors.rs b/src/errors.rs new file mode 100644 index 0000000..5138f49 --- /dev/null +++ b/src/errors.rs @@ -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 for Error { + fn from(error: std::io::Error) -> Self { + Error::Io(error) + } +} + +impl From for Error { + fn from(error: chownr::Error) -> Self { + Error::Chownr(error) + } +} + +impl From for Error { + fn from(error: serde_json::error::Error) -> Self { + Error::SerdeJson(error) + } +}