insim 4.1.0

LiveForSpeed Insim implementation that focuses on ergonomics and strong typing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
macro_rules! impl_bitflags_from_to_bytes {
    ($type:ident, $inner_type:ident) => {
        impl ::insim_core::Decode for $type {
            fn decode(buf: &mut ::bytes::Bytes) -> Result<Self, insim_core::DecodeError> {
                let inner = $inner_type::decode(buf)?;
                return Ok(Self::from_bits_truncate(inner));
            }
        }

        impl ::insim_core::Encode for $type {
            fn encode(&self, buf: &mut bytes::BytesMut) -> Result<(), insim_core::EncodeError> {
                let bits = <$type as ::bitflags::Flags>::bits(self);
                bits.encode(buf)?;
                Ok(())
            }
        }
    };
}