Trait rlsf::int::BinInteger

source ·
pub trait BinInteger: Clone + Copy + PartialEq + Eq + Ord + PartialOrd + Unpin + Add<Output = Self> + Sub<Output = Self> + Mul<Output = Self> + Div<Output = Self> + Rem<Output = Self> + Sized + AddAssign + SubAssign + MulAssign + DivAssign + RemAssign + Debug + Send + Sync + 'static + Sealed {
    const ZERO: Self;
    const BITS: u32;

    // Required methods
    fn ones(range: Range<u32>) -> Self;
    fn ones_truncated(range: Range<u32>) -> Self;
    fn trailing_zeros(&self) -> u32;
    fn leading_zeros(&self) -> u32;
    fn count_ones(&self) -> u32;
    fn bit_scan_forward(&self, start: u32) -> u32;
    fn extract_u32(&self, range: Range<u32>) -> u32;
    fn get_bit(&self, i: u32) -> bool;
    fn set_bit(&mut self, i: u32);
    fn clear_bit(&mut self, i: u32);
    fn checked_ceil_fix(self, fp: u32) -> Option<Self>;
}
Expand description

Integral types with efficient binary operations.

Required Associated Constants§

source

const ZERO: Self

source

const BITS: u32

Required Methods§

source

fn ones(range: Range<u32>) -> Self

source

fn ones_truncated(range: Range<u32>) -> Self

source

fn trailing_zeros(&self) -> u32

Return the number of trailing zeros in its binary representation.

source

fn leading_zeros(&self) -> u32

Return the number of leading zeros in its binary representation.

source

fn count_ones(&self) -> u32

Return the number of ones in its binary representation.

source

fn bit_scan_forward(&self, start: u32) -> u32

Return the position of the least significant set bit since the position start.

Retruns Self::BITS if none was found.

source

fn extract_u32(&self, range: Range<u32>) -> u32

Slice a part of its binary representation as u32.

source

fn get_bit(&self, i: u32) -> bool

Retrieve whether the specified bit is set or not.

source

fn set_bit(&mut self, i: u32)

Set a single bit.

source

fn clear_bit(&mut self, i: u32)

Clear a single bit.

source

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

Perform ceil treating the value as a fixed point number with fp fractional part digits.

Implementations on Foreign Types§

source§

impl BinInteger for u16

source§

const ZERO: Self = 0u16

source§

const BITS: u32 = 16u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for isize

source§

const ZERO: Self = 0isize

source§

const BITS: u32 = 64u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for i128

source§

const ZERO: Self = 0i128

source§

const BITS: u32 = 128u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for u64

source§

const ZERO: Self = 0u64

source§

const BITS: u32 = 64u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for i16

source§

const ZERO: Self = 0i16

source§

const BITS: u32 = 16u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for usize

source§

const ZERO: Self = 0usize

source§

const BITS: u32 = 64u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for i32

source§

const ZERO: Self = 0i32

source§

const BITS: u32 = 32u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for i8

source§

const ZERO: Self = 0i8

source§

const BITS: u32 = 8u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for u128

source§

const ZERO: Self = 0u128

source§

const BITS: u32 = 128u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for u32

source§

const ZERO: Self = 0u32

source§

const BITS: u32 = 32u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for i64

source§

const ZERO: Self = 0i64

source§

const BITS: u32 = 64u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

source§

impl BinInteger for u8

source§

const ZERO: Self = 0u8

source§

const BITS: u32 = 8u32

source§

fn ones(range: Range<u32>) -> Self

source§

fn ones_truncated(range: Range<u32>) -> Self

source§

fn trailing_zeros(&self) -> u32

source§

fn leading_zeros(&self) -> u32

source§

fn count_ones(&self) -> u32

source§

fn bit_scan_forward(&self, start: u32) -> u32

source§

fn extract_u32(&self, range: Range<u32>) -> u32

source§

fn get_bit(&self, i: u32) -> bool

source§

fn set_bit(&mut self, i: u32)

source§

fn clear_bit(&mut self, i: u32)

source§

fn checked_ceil_fix(self, fp: u32) -> Option<Self>

Implementors§