use std::io;
#[derive(Debug, Fail)]
pub enum Error {
#[fail(display = "Error: {:?}", error)]
Other { error: String },
#[fail(display = "IOError: {:?}", error)]
IoError { error: io::Error },
}
pub type Result<T> = ::std::result::Result<T, Error>;
impl From<io::Error> for Error {
fn from(error: io::Error) -> Error {
Error::IoError { error }
}
}
impl<'a> From<&'a str> for Error {
fn from(error: &'a str) -> Error {
Error::Other {
error: error.to_owned(),
}
}
}
impl From<String> for Error {
fn from(error: String) -> Error {
Error::Other { error }
}
}