1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use speedy::{Context, Readable, Reader, Writable, Writer};
use std::marker::PhantomData;

pub struct SPhantomData<T> {
    _marker: PhantomData<T>,
}

impl<T> Default for SPhantomData<T> {
    fn default() -> Self {
        Self {
            _marker: PhantomData::default(),
        }
    }
}

impl<'a, C: Context, T> Readable<'a, C> for SPhantomData<T> {
    fn read_from<R: Reader<'a, C>>(reader: &mut R) -> Result<Self, <C as speedy::Context>::Error> {
        Ok(SPhantomData::default())
    }
}

impl<T, C: Context> Writable<C> for SPhantomData<T> {
    fn write_to<W: ?Sized + Writer<C>>(
        &self,
        writer: &mut W,
    ) -> Result<(), <C as speedy::Context>::Error> {
        Ok(())
    }
}