pbjson_types/
null_value.rs

1use crate::NullValue;
2
3impl From<()> for NullValue {
4    fn from(_: ()) -> Self {
5        Self::NullValue
6    }
7}
8
9impl serde::Serialize for NullValue {
10    fn serialize<S>(&self, ser: S) -> Result<S::Ok, S::Error>
11    where
12        S: serde::Serializer,
13    {
14        ().serialize(ser)
15    }
16}
17
18impl<'de> serde::Deserialize<'de> for NullValue {
19    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
20    where
21        D: serde::Deserializer<'de>,
22    {
23        deserializer.deserialize_unit(NullValueVisitor)
24    }
25}
26
27struct NullValueVisitor;
28
29impl<'de> serde::de::Visitor<'de> for NullValueVisitor {
30    type Value = NullValue;
31
32    fn expecting(&self, formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
33        formatter.write_str("google.protobuf.NullValue")
34    }
35
36    fn visit_unit<E>(self) -> Result<Self::Value, E>
37    where
38        E: serde::de::Error,
39    {
40        Ok(NullValue::NullValue)
41    }
42}