[][src]Macro neli::deserialize

macro_rules! deserialize {
    (STRIP $self_de_type:ident; $buffer:expr; $struct_type:path {
        $($de_name:ident: $de_type:ty $(=> $size:expr)?),*
    } => $struct_size:expr) => { ... };
    ($buffer:expr; $struct_type:path {
        $($de_name:ident: $de_type:ty $(=> $size:expr)?),*
    }) => { ... };
}

This macro can be used to declaratively define deserialization for a struct.

Examples

use neli::err::DeError;

fn deserialize() -> Result<(), DeError> {
    struct MyStruct {
        field_one: u16,
        field_two: u32,
        field_three: u16,
    }

    let mut vec = vec![0; 8];
    neli::deserialize! {
        vec.as_mut_slice();
        MyStruct {
            field_one: u16,
            field_two: u32,
            field_three: u16
        }
    };

    Ok(())
}