Derive Macro Serialize
#[derive(Serialize)]
Expand description
Derives implementation of the Serialize
trait.
use veecle_os_data_support_someip::serialize::{Serialize, SerializeExt};
#[derive(Debug, PartialEq, Serialize)]
struct SomeIpStruct {
foo: u16,
bar: u32,
}
let input = SomeIpStruct {
foo: 6,
bar: 0x1020304,
};
let bytes = &[0x0, 0x6, 0x1, 0x2, 0x3, 0x4];
let mut buffer = [0u8; 16];
let output = input.serialize(&mut buffer).unwrap();
assert_eq!(output, bytes);
Zero sized types and tuple structs can be derived as well.
use veecle_os_data_support_someip::serialize::Serialize;
#[derive(Serialize)]
struct Zst;
#[derive(Serialize)]
struct TupleStruct(u32, u16);
It cannot be derived for enums or unions.
ⓘ
use veecle_os_data_support_someip::serialize::{Serialize};
#[derive(Serialize)]
enum Bad {}
#[derive(Serialize)]
union AlsoBad {
foo: u8,
bar: u8,
}