1 2 3 4 5 6 7 8 9 10 11 12 13
use bitops::*; pub fn ffz<T: Bitops>(x: T) -> u8 { (lsz(x) + 1) as u8 } pub fn lsz<T: Bitops>(x: T) -> i8 { if x != bit_mask::<T>() { (x.trailing_ones() as i8) } else { -1i8 } }
1 2 3 4 5 6 7 8 9 10 11 12 13
use bitops::*; pub fn ffz<T: Bitops>(x: T) -> u8 { (lsz(x) + 1) as u8 } pub fn lsz<T: Bitops>(x: T) -> i8 { if x != bit_mask::<T>() { (x.trailing_ones() as i8) } else { -1i8 } }