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
bool
values, deserialization usingdeserialize_from
will validate if the value is0
or1
, and will return an error if the value is not valid. If you are certain that the value is valid, you can usedeserialize_from_unchecked
to 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]>, } }