#[repr(transparent)]pub struct BitPos<M> where
    M: BitMemory,  { /* private fields */ }Expand description
An electrical position of a single bit within a memory element M.
This type is used as the shift distance in the expression 1 << shamt. It is
only produced by the translation of a semantic BitIdx<M> according to some
BitOrder implementation using BitOrder::at. It can only be used for the
construction of bit masks used to manipulate a register value during memory
access, and serves no other purpose.
Type Parameters
M: The register type that values of this type govern.
Validity
Values of this type are required to be in the range 0 .. M::BITS. Any value
outside this range will cause the program state to become invalid, and the
library’s behavior is unspecified. The library will never produce such an
invalid value, and users are required to do the same.
Construction
This type offers public unsafe constructors. bitvec does not offer any public
APIs that take values of this type directly; it always routes through BitOrder
implementations. As BitIdx will only be constructed from safe, correct,
values, and BitOrder::at is the only BitIdx -> BitPos transform function,
all constructed BitPos values are known to be memory-correct.
Implementations
Wraps a value as a known-good position within an M element.
Parameters
pos: An electrical position of a bit within anMelement.
Returns
If pos is outside the valid range 0 .. M::BITS, this returns None;
otherwise, it returns a BitPos wrapping the pos value.
Safety
This function must only be called within a BitOrder::at implementation
which is verified to be correct.
Wraps a value as an assumed-good position within an M element.
Parameters
pos: An electrical position within anMelement.
Returns
pos wrapped in a BitPos.
Safety
pos must be within the valid range 0 .. M::BITS. In debug
builds, invalid pos values cause a panic; release builds do not check
the input.
This function must only be called in a correct BitOrder::at
implementation.
Constructs a one-hot selection mask from the position counter.
This is a well-typed 1 << pos.
Parameters
self
Returns
A one-hot mask for M selecting the bit specified by self.
Constructs an untyped bitmask from the position counter.
This removes the one-hot requirement from the selection mask.
Parameters
self
Returns
A mask for M selecting only the bit specified by self.
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 BitPos<M> where
    M: RefUnwindSafe, 
impl<M> UnwindSafe for BitPos<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.
