macro_rules! PrevVariant {
( @ expand ( $ ( $ pub_ : tt ) * ) $ name : ident ( ) ) => { ... };
(
@ expand ( $ ( $ pub_ : tt ) * ) $ name : ident (
$ ( $ var_names : ident ) , * ) ) => { ... };
(
@ arms ( $ name : ident , $ self_ : expr ) , ( $ prev : expr , $ a : ident )
-> ( $ ( $ body : tt ) * ) ) => { ... };
(
@ arms ( $ name : ident , $ self_ : expr ) , (
$ prev : expr , $ a : ident $ ( $ rest : tt ) * ) -> ( $ ( $ body : tt ) * ) ) => { ... };
(
( ) pub enum $ name : ident { $ ( $ body : tt ) * } ) => { ... };
(
( ) enum $ name : ident { $ ( $ body : tt ) * } ) => { ... };
}