Macro pubstruct

Source
macro_rules! pubstruct {
    ($(#[$meta:meta])*
    $name: ident($(#[$fmeta:meta])* $($t: ty), *)) => { ... };
    ($(#[$meta:meta])*
    $name: ident<$($T: ident), +>($(#[$fmeta:meta])* $($t: ty), *)) => { ... };
    ($(#[$meta:meta])*
    $name: ident<$($L: lifetime), +>($(#[$fmeta:meta])* $($t: ty), *)) => { ... };
    ($(#[$meta:meta])*
    $name: ident<$($L: lifetime), +, $($T: ident), +>($(#[$fmeta:meta])* $($t: ty), *)) => { ... };
    ($(#[$meta:meta])*
    $name: ident {
        $($(#[$fmeta:meta])*
        $field: ident: $t: ty),* $(,)?
    }) => { ... };
    ($(#[$meta:meta])*
    $name: ident<$($T: ident),*> {
        $($(#[$fmeta:meta])*
        $field:ident: $t:ty),* $(,)?
    }) => { ... };
    ($(#[$meta:meta])*
    $name: ident<$($L: lifetime),*> {
        $($(#[$fmeta:meta])*
        $field: ident: $t: ty),* $(,)?
    }) => { ... };
    ($(#[$meta: meta])*
    $name: ident<$($L: lifetime),*, $($T: ident),*> {
        $($(#[$fmeta: meta])*
        $field: ident: $t: ty),* $(,)?
    }) => { ... };
}