1#[derive(Debug, Clone, PartialEq, Eq)]
5pub enum MtaStsError {
6 NotAnStsRecord,
8 MissingId,
10 MissingField(&'static str),
12 UnsupportedVersion(String),
14 InvalidMode(String),
16 InvalidMaxAge(String),
18 IdTooLong(usize),
20}
21
22impl std::fmt::Display for MtaStsError {
23 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
24 match self {
25 Self::NotAnStsRecord => write!(f, "not an MTA-STS record (missing v=STSv1)"),
26 Self::MissingId => write!(f, "MTA-STS record missing required id= tag"),
27 Self::MissingField(n) => write!(f, "MTA-STS policy missing required field: {n}"),
28 Self::UnsupportedVersion(v) => write!(f, "unsupported MTA-STS version: {v}"),
29 Self::InvalidMode(m) => write!(f, "invalid mode: {m}"),
30 Self::InvalidMaxAge(s) => write!(f, "invalid max_age: {s}"),
31 Self::IdTooLong(n) => write!(f, "id too long: {n} chars (max 32)"),
32 }
33 }
34}
35
36impl std::error::Error for MtaStsError {}