pbjson_types/
null_value.rs1use 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}