disint_tide/
error.rs

1use std::fmt;
2
3#[derive(Debug)]
4#[non_exhaustive]
5pub enum Error {
6    NoSignature,
7    Timestamp,
8    DisintSecurity(disint_security::Error),
9}
10
11impl std::error::Error for Error {
12    fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
13        match self {
14            Error::DisintSecurity(e) => Some(e),
15            _ => None,
16        }
17    }
18}
19
20impl fmt::Display for Error {
21    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22        match self {
23            Error::NoSignature => f.write_str("missing signature"),
24            Error::Timestamp => f.write_str("timestamp is either too old or too new"),
25            Error::DisintSecurity(e) => write!(f, "inner error: {}", e),
26        }
27    }
28}
29
30impl From<disint_security::Error> for Error {
31    fn from(v: disint_security::Error) -> Self {
32        Self::DisintSecurity(v)
33    }
34}
35
36pub type Result<T> = std::result::Result<T, Error>;