Trait bitstream_io::Numeric

source ·
pub trait Numeric: Sized + Copy + Default + Debug + PartialOrd + Shl<u32, Output = Self> + ShlAssign<u32> + Shr<u32, Output = Self> + ShrAssign<u32> + Rem<Self, Output = Self> + RemAssign<Self> + BitOrAssign<Self> + BitXor<Self, Output = Self> + Not<Output = Self> + Sub<Self, Output = Self> {
    type Bytes: AsRef<[u8]> + AsMut<[u8]>;

    const BITS_SIZE: u32;
    const ONE: Self;

    fn is_zero(self) -> bool;
    fn from_u8(u: u8) -> Self;
    fn to_u8(self) -> u8;
    fn count_ones(self) -> u32;
    fn leading_zeros(self) -> u32;
    fn trailing_zeros(self) -> u32;
    fn buffer() -> Self::Bytes;
    fn to_be_bytes(self) -> Self::Bytes;
    fn to_le_bytes(self) -> Self::Bytes;
    fn from_be_bytes(bytes: Self::Bytes) -> Self;
    fn from_le_bytes(bytes: Self::Bytes) -> Self;
    fn unsigned_value(self) -> UnsignedValue;
}
Expand description

This trait extends many common integer types (both unsigned and signed) with a few trivial methods so that they can be used with the bitstream handling traits.

Required Associated Types

The raw byte representation of this numeric type

Required Associated Constants

Size of type in bits

The value of 1 in this type

Required Methods

Returns true if this value is 0, in its type

Returns a u8 value in this type

Assuming 0 <= value < 256, returns this value as a u8 type

Counts the number of 1 bits

Counts the number of leading zeros

Counts the number of trailing zeros

An empty buffer of this type’s size

Our value in big-endian bytes

Our value in little-endian bytes

Convert big-endian bytes to our value

Convert little-endian bytes to out value

Convert to a generic unsigned write value for stream recording purposes

Implementations on Foreign Types

Implementors