ospf_rust_math/algebra/operator/algorithmic/
reverse_bit.rs1use 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 }