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;
// Required methods
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§
Required Associated Constants§
Required Methods§
sourcefn count_ones(self) -> u32
fn count_ones(self) -> u32
Counts the number of 1 bits
sourcefn leading_zeros(self) -> u32
fn leading_zeros(self) -> u32
Counts the number of leading zeros
sourcefn trailing_zeros(self) -> u32
fn trailing_zeros(self) -> u32
Counts the number of trailing zeros
sourcefn to_be_bytes(self) -> Self::Bytes
fn to_be_bytes(self) -> Self::Bytes
Our value in big-endian bytes
sourcefn to_le_bytes(self) -> Self::Bytes
fn to_le_bytes(self) -> Self::Bytes
Our value in little-endian bytes
sourcefn from_be_bytes(bytes: Self::Bytes) -> Self
fn from_be_bytes(bytes: Self::Bytes) -> Self
Convert big-endian bytes to our value
sourcefn from_le_bytes(bytes: Self::Bytes) -> Self
fn from_le_bytes(bytes: Self::Bytes) -> Self
Convert little-endian bytes to out value
sourcefn unsigned_value(self) -> UnsignedValue
fn unsigned_value(self) -> UnsignedValue
Convert to a generic unsigned write value for stream recording purposes