proto_packet/io/macros/
impl_enum_encode.rs1#[macro_export]
5macro_rules! impl_enum_encode {
6 ($enum_type:ty) => {
7 impl enc::EncodedLen for $enum_type {
8 fn encoded_len(&self) -> Result<usize, enc::Error> {
9 use $crate::io::WithTagNumber;
10 enc::var_int::VarInt32::from(self.tag().value()).encoded_len()
11 }
12 }
13
14 impl enc::EncodeToSlice for $enum_type {
15 unsafe fn encode_to_slice_unchecked(
16 &self,
17 target: &mut [u8],
18 ) -> Result<usize, enc::Error> {
19 use $crate::io::WithTagNumber;
20 unsafe {
21 enc::var_int::VarInt32::from(self.tag().value())
22 .encode_to_slice_unchecked(target)
23 }
24 }
25 }
26
27 enc::impl_encode_to_write_stack_buf!($enum_type, enc::var_int::VarInt32::MAX_ENCODED_LEN);
28 };
29}