#[derive(Debug, PartialEq, Eq)]
pub enum Kind {
User,
System,
}
impl Kind {
pub(crate) fn format_description(&self, description: &str) -> String {
match self {
Kind::User => format!("{description} (User error)"),
Kind::System => format!("{description} (System failure)"),
}
}
}
#[cfg(feature = "serde")]
impl serde::Serialize for Kind {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
match self {
Kind::User => serializer.serialize_str("User"),
Kind::System => serializer.serialize_str("System"),
}
}
}