macro_rules! struct_display {
( < $($rest:tt)* ) => { ... };
( $first:ident $($rest:tt)* ) => { ... };
(
@outer $inp_life_old:tt [$($param_decl:tt)*]
input_lifetime = $inp_life:tt;
$($rest:tt)*
) => { ... };
(
@outer $inp_life:tt [$($param_decl_old:tt)*]
params = { $($param_decl:tt)* }
$($rest:tt)*
) => { ... };
(
@outer $inp_life:tt [$($param_decl:tt)*]
$name:ident
$( < $($param:tt),* > )?
{ $($fields:tt)* }
= [ $($args:tt)* ]
) => { ... };
(
@outer $inp_life:tt [$($param_decl:tt)*]
$name:ident
$( < $($param:tt),* > )?
( $($fields:tt)* )
= [ $($args:tt)* ]
) => { ... };
(
@main $name:ident $inp_life:tt
[ $($param_decl:tt)* ]
[ $($param:tt),* ]
[ $($fields:tt)* ]
[ $($args:tt)* ]
) => { ... };
}