macro_rules! for_each_tuple_ { ($m:ident !!) => { $m! { } }; ($m:ident !! $h:ident, $($t:ident,)*) => { $m! { $h, $($t,)* } $crate::macros::for_each_tuple_! { $m !! $($t,)* } } } macro_rules! for_each_tuple { ($m:ident) => { $crate::macros::for_each_tuple_! { $m !! T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, } } } pub(crate) use for_each_tuple; pub(crate) use for_each_tuple_;