Skip to main content

decode_params

Macro decode_params 

Source
macro_rules! decode_params {
    ($r:expr, $version:expr, $($key:expr => $name:ident: $ty:ty),* $(,)?) => { ... };
}
Expand description

Decode message parameters with compile-time sorted keys.

The declared type is the final type of each variable. Use Option<T> for optional parameters (defaults to None when absent) and bare types like u8 for parameters where T::default() is an acceptable fallback.

Unknown parameters cause DecodeError::InvalidValue. Duplicate parameters cause DecodeError::Duplicate.

decode_params!(r, version,
    0x10 => forward: Option<bool>,
    0x20 => subscriber_priority: Option<u8>,
);
// forward: Option<bool> and subscriber_priority: Option<u8> are now in scope
let subscriber_priority = subscriber_priority.unwrap_or(128);