1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pub trait IsOdd {
    fn is_odd(&self) -> bool;
}

macro_rules! prim_impl {
    ($($t:tt)*) => {
        $(
            impl IsOdd for $t {
                fn is_odd(&self) -> bool {
                    self&1 != 0
                }
            }
        )*
    };
}

prim_impl!(i8 u8 i16 u16 i32 u32 i64 u64 i128 u128 isize usize);