use crate::domain::model::check::Severity;
use serde::{Deserialize, Deserializer, Serializer};
pub fn serialize<S: Serializer>(v: &Severity, s: S) -> Result<S::Ok, S::Error> {
s.serialize_str(match v {
Severity::Error => "error",
Severity::Warning => "warning",
})
}
pub fn deserialize<'de, D: Deserializer<'de>>(d: D) -> Result<Severity, D::Error> {
let raw = String::deserialize(d)?;
match raw.as_str() {
"error" => Ok(Severity::Error),
"warning" => Ok(Severity::Warning),
other => Err(serde::de::Error::unknown_variant(
other,
&["error", "warning"],
)),
}
}