ospf_rust_math/algebra/operator/algorithmic/
reverse_bit.rs

1use std::ops::BitOr;
2
3pub trait ReverseBit {
4    type Output;
5
6    fn reverse_bit(self) -> Self::Output;
7}
8
9macro_rules! int_trailing_zeros_impl {
10    ($($type:ident)*) => ($(
11        impl ReverseBit for $type {
12            type Output = $type;
13
14            fn reverse_bit(self) -> $type {
15                self.reverse_bits()
16            }
17        }
18
19        impl ReverseBit for &$type {
20            type Output = $type;
21
22            fn reverse_bit(self) -> $type {
23                (*self).reverse_bit()
24            }
25        }
26    )*);
27}
28int_trailing_zeros_impl! { i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize }