scraps 3.7.0

Scraps is a portable CLI knowledge hub for managing interconnected Markdown documentation with Wiki-link notation.
use scraps_libs::lang::LangCode;
use serde::de::{self, Deserialize, Deserializer};
use std::str::FromStr;

#[derive(Debug, Clone)]
pub struct LangCodeConfig(LangCode);

impl<'de> Deserialize<'de> for LangCodeConfig {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where
        D: Deserializer<'de>,
    {
        let s = String::deserialize(deserializer)?;
        LangCode::from_str(s.as_str())
            .map(LangCodeConfig)
            .map_err(de::Error::custom)
    }
}

impl LangCodeConfig {
    pub fn as_lang_code(&self) -> &LangCode {
        &self.0
    }
}