#[repr(transparent)]pub struct BitSel<M> where
    M: BitMemory,  { /* private fields */ }Expand description
A one-hot selection mask, to be applied to a memory element M.
This type selects exactly one bit, and is produced by the conversion of a
semantic BitIdx to a BitPos through a BitOrder implementation, and
then applying 1 << pos. Values of this type are used to select only the bit
specified by a BitIdx when performing memory operations.
Type Parameters
M: The register type that values of this type govern.
Validity
Values of this type are required to have exactly one bit set to 1 and all
other bits set to 0.
Construction
This type is only constructed from BitPos values, which are themselves only
constructed by a chain of known-good BitIdx values passed into known-correct
BitOrder implementations. As such, bitvec can use BitSel values with full
confidence that they are correct in the surrounding context.
Implementations
Wraps a selector value as a known-good selection of an M element.
Parameters
sel: A one-hot selection mask of a bit in anMelement.
Returns
If sel does not have exactly one bit set, this returns None;
otherwise, it returns a BitSel wrapping the sel value.
Safety
This function must only be called within a BitOrder::select
implementation that is verified to be correct.
Wraps a selector value as an assumed-good selection of an M element.
Parameters
sel: A one-hot selection mask of a bit in anMelement.
Returns
sel wrapped in a BitSel.
Safety
sel must have exactly one bit set high and all others low. In
debug builds, invalid sel values cause a panic; release builds do not
check the input.
This function must only be called in a correct BitOrder::select
implementation.
Converts the selector into a bit mask.
This is a type-cast.
pub fn range_all(
) -> impl Iterator<Item = Self> + DoubleEndedIterator + ExactSizeIterator + FusedIterator
pub fn range_all(
) -> impl Iterator<Item = Self> + DoubleEndedIterator + ExactSizeIterator + FusedIterator
Ranges over all possible selector values.
Trait Implementations
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
Auto Trait Implementations
impl<M> RefUnwindSafe for BitSel<M> where
    M: RefUnwindSafe, 
impl<M> UnwindSafe for BitSel<M> where
    M: UnwindSafe, 
Blanket Implementations
Mutably borrows from an owned value. Read more
Causes self to use its Binary implementation when Debug-formatted.
Causes self to use its Display implementation when
Debug-formatted. Read more
Causes self to use its LowerExp implementation when
Debug-formatted. Read more
Causes self to use its LowerHex implementation when
Debug-formatted. Read more
Causes self to use its Octal implementation when Debug-formatted.
Causes self to use its Pointer implementation when
Debug-formatted. Read more
Causes self to use its UpperExp implementation when
Debug-formatted. Read more
Causes self to use its UpperHex implementation when
Debug-formatted. Read more
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
    Self: AsRef<T>,
    T: 'a,
    R: 'a, 
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
    Self: AsRef<T>,
    T: 'a,
    R: 'a, 
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
    Self: Borrow<T>,
    T: 'a,
    R: 'a, 
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
    Self: Borrow<T>,
    T: 'a,
    R: 'a, 
Pipes a trait borrow into a function that cannot normally be called in suffix position. Read more
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
    Self: Deref,
    R: 'a, 
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
    Self: Deref,
    R: 'a, 
Pipes a dereference into a function that cannot normally be called in suffix position. Read more
Pipes a reference into a function that cannot ordinarily be called in suffix position. Read more
Provides immutable access to the reference for inspection.
Calls tap_ref in debug builds, and does nothing in release builds.
Provides mutable access to the reference for modification.
Calls tap_ref_mut in debug builds, and does nothing in release builds.
Provides immutable access to the borrow for inspection. Read more
Calls tap_borrow in debug builds, and does nothing in release builds.
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
    Self: BorrowMut<T>,
    F: FnOnce(&mut T) -> R, 
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
    Self: BorrowMut<T>,
    F: FnOnce(&mut T) -> R, 
Provides mutable access to the borrow for modification.
Immutably dereferences self for inspection.
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
    Self: Deref,
    F: FnOnce(&Self::Target) -> R, 
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
    Self: Deref,
    F: FnOnce(&Self::Target) -> R, 
Calls tap_deref in debug builds, and does nothing in release builds.
fn tap_deref_mut<F, R>(self, func: F) -> Self where
    Self: DerefMut,
    F: FnOnce(&mut Self::Target) -> R, 
fn tap_deref_mut<F, R>(self, func: F) -> Self where
    Self: DerefMut,
    F: FnOnce(&mut Self::Target) -> R, 
Mutably dereferences self for modification.
