Macro compose
Source macro_rules! compose {
(@ call $builder:ident; $key:ident : type $ty:ty) => { ... };
(@ call $builder:ident; $key:ident < $($g:ty),+ > : $value:expr) => { ... };
(@ call $builder:ident; $key:ident : $value:expr) => { ... };
(@ entries $builder:ident; $key:ident : type $ty:ty $(, $($rest:tt)*)?) => { ... };
(
@ entries $builder:ident; $key:ident < $($g:ty),+ > : $value:expr $(,
$($rest:tt)*)?
) => { ... };
(@ entries $builder:ident; $key:ident : $value:expr $(, $($rest:tt)*)?) => { ... };
(@ entries $builder:ident;) => { ... };
($variant_id:ident : $($rest:tt)*) => { ... };
}