cartulary 0.3.0-alpha.1

The knowledge layer of your project — decisions, issues, docs, all in one place.
Documentation
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"],
        )),
    }
}