macro_rules! struct {
(
$( #[$meta:meta] )*
$pub:vis struct $name:ident {
$( $field_pub:vis $field_name:ident: $field_ty:ty ),* $(,)?
}
) => { ... };
(
$( #[$meta:meta] )*
$pub:vis struct $name:ident($( $inner_pub:vis $inner_ty:ty ),* $(,)? );
) => { ... };
(
$( #[$meta:meta] )*
$pub:vis struct $name:ident;
) => { ... };
}