1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#[derive(thiserror::Error, Debug)]
pub enum Error {
    #[error(transparent)]
    Any(#[from] anyhow::Error),
    #[error("{0} isn't found")]
    NotFound(String),
    #[error("{0} is invalid")]
    Invalid(String),
}

impl Error {
    #[inline]
    pub fn any<E>(err: E) -> Self
    where
        E: std::error::Error,
    {
        Self::Any(anyhow::format_err!("{}", err))
    }
}