macro_rules! rules {
(
$($kind:ident $field:ident $(: $ty:ty)? => $variant:ident $(#[doc = $doc:literal])+;)+
) => { ... };
(@field switch) => { ... };
(@field rule $ty:ty) => { ... };
(@none switch) => { ... };
(@none rule) => { ... };
(@push switch $entries:ident $rules:ident $field:ident $variant:ident) => { ... };
(@push rule $entries:ident $rules:ident $field:ident $variant:ident) => { ... };
(@read switch $rules:ident $decoder:ident $field:ident) => { ... };
(@read rule $rules:ident $decoder:ident $field:ident) => { ... };
}Expand description
Define Rules and everything else that lists its rule types.
switch entries are rules without parameters, rule entries carry
parameters. The entries are in the order the rules are written to GitHub.