1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
macro_rules! m_num {
    ($($Tuple:ident { $($T:ident . $idx:tt),* } )*) => ($(
        impl<$($T),*> num::Zero for $Tuple<$($T),*> where $( $T: num::Zero ),* {
            fn zero() -> Self {
                $Tuple( $( $T::zero() ),* )
            }
            fn is_zero(&self) -> bool {
                $( self.$idx.is_zero() )&&*
            }
        }
    )*)   
}