use std::io;
use failure::Fail;
#[derive(Fail, Debug)]
pub enum Error {
#[fail(display = "Invalid format: {}", _0)]
InvalidFormat(String),
#[fail(display = "Error: {}", _0)]
OtherError(String),
#[fail(display = "{}", _0)]
Io(#[cause] io::Error),
}
pub type Result<T> = std::result::Result<T, Error>;
pub fn other_err(msg: impl Into<String>) -> Error {
Error::OtherError(msg.into())
}
impl From<io::Error> for Error {
fn from(e: io::Error) -> Self {
Error::Io(e)
}
}