Basic Types
| Data Type | Object | Slice | Vector | Option |
|---|---|---|---|---|
Boolean values: bool | Yes | Yes | Yes | Yes |
Integer value: u8, u16, u32, u128, i8, i16, i32, i128 | Yes | Yes | Yes | Yes |
Float values: f32, f64 | Yes | Yes | Yes | Yes |
Remarks:
- for
boolvalues, deserialization usingdeserialize_fromwill validate if the value is0or1, and will return an error if the value is not valid. If you are certain that the value is valid, you can usedeserialize_from_uncheckedto skip the validation step. This will speed up the deserialization process, but it is your responsibility to ensure that the value is valid.
Example
-
Direct values:
#![allow(unused)] fn main() { use flat_message::*; #[derive(FlatMessage)] struct Example { boolean_value: bool, integer_value: u32, float_value: f64, } } -
Slices of values:
#![allow(unused)] fn main() { use flat_message::*; #[derive(FlatMessage)] struct Example { boolean_values: &[bool], integer_values: &[u32], float_values: &[f64], } } -
Vectors of values:
#![allow(unused)] fn main() { use flat_message::*; #[derive(FlatMessage)] struct Example { boolean_values: Vec<bool>, integer_values: Vec<u32>, float_values: Vec<f64>, } } -
Option values:
#![allow(unused)] fn main() { use flat_message::*; #[derive(FlatMessage)] struct Example { boolean_value: Option<bool>, u32_vec: Option<Vec<u32>>, f32_slice: Option<&[f32]>, } }