pub trait UnderlierType:
Debug
+ Default
+ Eq
+ Ord
+ Copy
+ Random
+ NoUninit
+ Zeroable
+ Sized
+ Send
+ Sync
+ 'static
+ BitAnd<Self, Output = Self>
+ BitAndAssign<Self>
+ BitOr<Self, Output = Self>
+ BitOrAssign<Self>
+ BitXor<Self, Output = Self>
+ BitXorAssign<Self>
+ Not<Output = Self>
+ Divisible<SmallU<1>> {
const LOG_BITS: usize;
const ZERO: Self;
const ONE: Self;
const ONES: Self;
const BITS: usize = _;
// Required method
fn interleave(self, other: Self, log_block_len: usize) -> (Self, Self);
// Provided methods
fn fill_with_bit(val: u8) -> Self { ... }
fn transpose(self, other: Self, log_block_len: usize) -> (Self, Self) { ... }
fn from_fn<T>(f: impl FnMut(usize) -> T) -> Self
where T: UnderlierType,
Self: Divisible<T> { ... }
fn broadcast_subvalue<T>(value: T) -> Self
where T: UnderlierType,
Self: Divisible<T> { ... }
}Expand description
Primitive integer underlying a binary field or packed binary field implementation. Note that this type is not guaranteed to be POD, U1, U2 and U4 have some unused bits.
Required Associated Constants§
Provided Associated Constants§
Required Methods§
Sourcefn interleave(self, other: Self, log_block_len: usize) -> (Self, Self)
fn interleave(self, other: Self, log_block_len: usize) -> (Self, Self)
Interleave with the given bit size
Provided Methods§
Sourcefn fill_with_bit(val: u8) -> Self
fn fill_with_bit(val: u8) -> Self
Fill value with the given bit
val must be 0 or 1.
Sourcefn transpose(self, other: Self, log_block_len: usize) -> (Self, Self)
fn transpose(self, other: Self, log_block_len: usize) -> (Self, Self)
Transpose with the given bit size
fn from_fn<T>(f: impl FnMut(usize) -> T) -> Selfwhere
T: UnderlierType,
Self: Divisible<T>,
Sourcefn broadcast_subvalue<T>(value: T) -> Selfwhere
T: UnderlierType,
Self: Divisible<T>,
fn broadcast_subvalue<T>(value: T) -> Selfwhere
T: UnderlierType,
Self: Divisible<T>,
Broadcast subvalue to fill Self.
Self::BITS/T::BITS is supposed to be a power of 2.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.