veecle_os_data_support_someip/
serialize_impl.rs1use crate::serialize::{ByteWriter, Serialize, SerializeError};
4
5impl Serialize for bool {
6 fn required_length(&self) -> usize {
7 1
8 }
9
10 fn serialize_partial(&self, byte_writer: &mut ByteWriter) -> Result<(), SerializeError> {
11 byte_writer.write_byte(match self {
12 true => 1,
13 false => 0,
14 })
15 }
16}
17
18macro_rules! impl_for_numeric {
19 ($ty:ident) => {
20 impl Serialize for $ty {
21 fn required_length(&self) -> usize {
22 core::mem::size_of::<Self>()
23 }
24
25 fn serialize_partial(
26 &self,
27 byte_writer: &mut ByteWriter,
28 ) -> Result<(), SerializeError> {
29 byte_writer.write_slice(&self.to_be_bytes())
30 }
31 }
32 };
33}
34
35impl_for_numeric!(u8);
36impl_for_numeric!(u16);
37impl_for_numeric!(u32);
38impl_for_numeric!(u64);
39
40impl_for_numeric!(i8);
41impl_for_numeric!(i16);
42impl_for_numeric!(i32);
43impl_for_numeric!(i64);
44
45impl_for_numeric!(f32);
46impl_for_numeric!(f64);