derse/impls/
phantom_data.rs1use crate::*;
2use std::marker::PhantomData;
3
4impl<T> Serialize for PhantomData<T> {
5 fn serialize_to<S: Serializer>(&self, _: &mut S) -> Result<()> {
6 Ok(())
7 }
8}
9
10impl<'a, T> Deserialize<'a> for PhantomData<T> {
11 fn deserialize_from<D: Deserializer<'a>>(_: &mut D) -> Result<Self>
12 where
13 Self: Sized,
14 {
15 Ok(Default::default())
16 }
17}
18
19#[cfg(test)]
20mod tests {
21 use super::*;
22
23 #[test]
24 fn test_phantom_data() {
25 let ser = std::marker::PhantomData::<()>;
26 let bytes = ser.serialize::<DownwardBytes>().unwrap();
27 assert!(bytes.is_empty());
28 let _ = std::marker::PhantomData::<()>::deserialize(&bytes[..]).unwrap();
29 }
30}