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>;