Macro gen_frame
Source macro_rules! gen_frame {
(@frame
$( #[$($meta:meta)*] )*
$name:ident [ $hdr:ident ] {
// flags mask
#mask = [ $($flags:tt)* ];
// reqiured flags
$( #requires = [ $($required_flags:tt)* ]; )?
// fields
$(
// meta
$( #[$($field_meta:meta)*] )*
// options
$( @$field_opt:ident $(($field_opt_val:literal))?; )*
// visibility
$field_vis:vis
// name
$field:ident
// modifier
$(($field_mod:ident))?
// data type
: $field_ty:ty
// generators
$( => [
$(
$gen:ident $($gen_tt:tt)?
),*
])?
);* $(;)?
}$(;)?
) => { ... };
}