macro_rules! static_state_impl {
($machine:ident, {$($field : ident),*}, $state:ident { } => { $($transitions:tt)* }; $($rest:tt)* ) => { ... };
($machine:ident, {$($field : ident),*}, $state:ident { $($name:ident : $t:ty),* } => { $($transitions:tt)* }; $($rest:tt)*) => { ... };
($machine:ident, {$($field : ident),*}, $state:ident { }; $($rest:tt)* ) => { ... };
($machine:ident, {$($field : ident),*}, $state:ident { $($name:ident : $t:ty),* }; $($rest:tt)*) => { ... };
($machine:ident, {$($field : ident),*}, ) => { ... };
}