macro_rules! convert {
() => { ... };
($kind:ident $from:path [<=>] $to:path { $($body:tt)* } $($rest:tt)*) => { ... };
(struct $from:ty => $to:path { $($field:ident,)* } $($rest:tt)*) => { ... };
(enum $from:path => $to:path { $($variant:ident $(($e:ident))?,)* } $($rest:tt)*) => { ... };
(flags $from:path => $to:path { $($flag:ident,)* } $($rest:tt)*) => { ... };
}