use serde::{de::DeserializeOwned, Deserializer, Serialize, Serializer};
pub mod unwrap_or_skip {
use super::*;
pub fn deserialize<'de, D, T>(deserializer: D) -> Result<Option<T>, D::Error>
where
D: Deserializer<'de>,
T: DeserializeOwned,
{
T::deserialize(deserializer).map(Some)
}
pub fn serialize<T, S>(option: &Option<T>, serializer: S) -> Result<S::Ok, S::Error>
where
T: Serialize,
S: Serializer,
{
if let Some(value) = option {
value.serialize(serializer)
} else {
().serialize(serializer)
}
}
}