Macro enum_dispatch

Source
macro_rules! enum_dispatch {
    (@match [$($variant:ident),+]: $fnc:ident, $self:ident, $combined_args:tt) => { ... };
    (@fnc [$($variant:ident),+]: $vis:vis fn $fnc:ident($self:ident: $sty:ty $(, $arg:ident: $t:ty)*) -> $ret:ty) => { ... };
    ($variants:tt; $($vis:vis fn $fnc:ident$args:tt -> $ret:ty;)+) => { ... };
}