scraps 2.1.0

Scraps is a portable CLI knowledge hub for managing interconnected Markdown documentation with Wiki-link notation.
use scraps_libs::model::base_url::BaseUrl;
use serde::de::{self, Deserialize, Deserializer};
use url::Url;

#[derive(Debug, Clone)]
pub struct BaseUrlConfig(BaseUrl);

impl<'de> Deserialize<'de> for BaseUrlConfig {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where
        D: Deserializer<'de>,
    {
        let url = Url::deserialize(deserializer)?;
        BaseUrl::new(url)
            .map(BaseUrlConfig)
            .map_err(de::Error::custom)
    }
}

impl BaseUrlConfig {
    pub fn into_base_url(self) -> BaseUrl {
        self.0
    }
}