All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rust.model_mod.mustache Maven / Gradle / Ivy

The newest version!
{{#models}}
{{#model}}
pub mod {{{classFilename}}};
pub use self::{{{classFilename}}}::{{{classname}}};
{{/model}}
{{/models}}
{{#serdeAsDoubleOption}}
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

pub(crate) struct DoubleOption(PhantomData);

impl SerializeAs>> for DoubleOption
where
    TAs: SerializeAs,
{
    fn serialize_as(values: &Option>, serializer: S) -> Result
    where
        S: Serializer,
    {
        match values {
            None => serializer.serialize_unit(),
            Some(None) => serializer.serialize_none(),
            Some(Some(v)) => serializer.serialize_some(&SerializeAsWrap::::new(v)),
        }
    }
}

impl<'de, T, TAs> DeserializeAs<'de, Option>> for DoubleOption
where
    TAs: DeserializeAs<'de, T>,
    T: std::fmt::Debug,
{
    fn deserialize_as(deserializer: D) -> Result>, D::Error>
    where
        D: Deserializer<'de>,
    {
        Ok(Some(
            DeserializeAsWrap::, Option>::deserialize(deserializer)?
                .into_inner(),
        ))
    }
}
{{/serdeAsDoubleOption}}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy