bin_proto/impls/
phantom_data.rs

1use bitstream_io::{BitRead, BitWrite, Endianness};
2
3use crate::{BitDecode, BitEncode, Result};
4use core::marker::PhantomData;
5
6impl<Ctx, T> BitDecode<Ctx> for PhantomData<T> {
7    fn decode<R, E>(_: &mut R, _: &mut Ctx, (): ()) -> Result<Self>
8    where
9        R: BitRead,
10        E: Endianness,
11    {
12        Ok(Self)
13    }
14}
15
16impl<Ctx, T> BitEncode<Ctx> for PhantomData<T> {
17    fn encode<W, E>(&self, _: &mut W, _: &mut Ctx, (): ()) -> Result<()>
18    where
19        W: BitWrite,
20        E: Endianness,
21    {
22        Ok(())
23    }
24}
25
26test_codec!(PhantomData<u8>; PhantomData => []);
27test_roundtrip!(PhantomData<u8>);