pub fn pop_bit(&mut self) -> Option<u8> {
        if !self.bits.is_zero() {
            let trailing = self.bits.trailing_zeros();
            self.bits = self.bits & (self.bits - U::one());
            Some(trailing as u8)
        } else {
            None
        }
    }
/// Removes the least signifigant bit from `self` and returns its position
Removes the least signifigant bit from `self` and returns its position
Removes the least signifigant bit from ` self ` and returns its position
pub fn pop_bit(&mut self) -> Option<u8> {
        if !self.bits.is_zero() {
            let trailing = self.bits.trailing_zeros();
            self.bits = self.bits & (self.bits - U::one());
            Some(trailing as u8)
        } else {
            None
        }
    }
pub fn pop_bit ( & mut self ) -> Option < u8 > { if ! self . bits . is_zero ( ) { let trailing = self . bits . trailing_zeros ( ) ; self . bits = self . bits & ( self . bits - U :: one ( ) ) ; Some ( trailing as u8 ) } else { None } }
Removes the least signifigant bit from `self` and returns its position
Removes the least signifigant bit from ` self ` and returns its position
&mut self