json::object!
[−]
[src]
macro_rules! object { ( let decoder = $dec:ident; let buffer = $buf:expr; $T:ident { $($name:ident: $modus:ident. $key:expr => $action:expr),+ } ) => { ... }; ( let decoder = $dec:ident; $T:ident { $($name:ident: $modus:ident. $key:expr => $action:expr),+ } ) => { ... }; }
Macro to support declarative decoding into struct types.
Syntax:
object! {
'let' 'decoder' '=' decoder_var_name ';'
'let' 'buffer' '=' mutable_reference_to_utf8_buffer ';' // optional
struct_type '{'
( field_name ':' ('req' / 'opt') '.' field_string '=>' expression ',' )+
'}'
}
Example:
struct Point {
x: u32,
y: u32
}
object! {
let decoder = d;
Point {
x: req. "x" => Decoder::u32,
y: req. "y" => Decoder::u32
}
}