#[derive(Debug, Clone, PartialEq, Eq)]
pub enum MtaStsError {
NotAnStsRecord,
MissingId,
MissingField(&'static str),
UnsupportedVersion(String),
InvalidMode(String),
InvalidMaxAge(String),
IdTooLong(usize),
}
impl std::fmt::Display for MtaStsError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::NotAnStsRecord => write!(f, "not an MTA-STS record (missing v=STSv1)"),
Self::MissingId => write!(f, "MTA-STS record missing required id= tag"),
Self::MissingField(n) => write!(f, "MTA-STS policy missing required field: {n}"),
Self::UnsupportedVersion(v) => write!(f, "unsupported MTA-STS version: {v}"),
Self::InvalidMode(m) => write!(f, "invalid mode: {m}"),
Self::InvalidMaxAge(s) => write!(f, "invalid max_age: {s}"),
Self::IdTooLong(n) => write!(f, "id too long: {n} chars (max 32)"),
}
}
}
impl std::error::Error for MtaStsError {}