[−][src]Struct bitvec::index::BitMask
A multi-bit selection mask.
Unlike BitSel
, which enforces a strict one-hot mask encoding, this mask type
permits any number of bits to be set or unset. This is used to accumulate
selections for a batch operation on a register.
Construction
It is only constructed by accumulating BitSel
values. The chain of custody for
safe construction in this module and in order
ensures that all masks that are
applied to register values can be trusted to not cause memory unsafety.
Implementations
impl<R> BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
pub const ALL: Self
[src]
A full mask.
pub const ZERO: Self
[src]
An empty mask.
pub unsafe fn new(mask: R) -> Self
[src]
Wraps any R
value as a bit-mask.
This constructor is provided to explicitly declare that an operation is discarding the numeric value of an integer and reading it only as a bit-mask.
Parameters
mask
: Some integer value
Returns
mask
wrapped as a bit-mask, with its numeric context discarded.
Safety
This function must only be called within a BitOrder::mask
implementation which is verified to be correct.
Prefer accumulating BitSel
values using the Sum
implementation.
pub fn combine(self, sel: BitSel<R>) -> Self
[src]
Creates a new mask with a selector bit activated.
Parameters
self
sel
: The selector bit to activate in the new mask.
Returns
A copy of self
, with the selector at sel
activated.
pub fn insert(&mut self, sel: BitSel<R>)
[src]
Inserts a selector into an existing mask.
Parameters
&mut self
sel
: The selector bit to insert into the mask.
Effects
The selector’s bit in the self
mask is activated.
pub fn test(self, sel: BitSel<R>) -> bool
[src]
Tests whether a mask contains a given selector bit.
Paramters
self
sel
: The selector bit to test in theself
mask.
Returns
Whether self
has set the bit at sel
.
pub fn value(self) -> R
[src]
Views the internal mask value.
Trait Implementations
impl<R> Binary for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R> BitAnd<R> for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
type Output = Self
The resulting type after applying the &
operator.
fn bitand(self, rhs: R) -> Self
[src]
impl<R> BitOr<R> for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
type Output = Self
The resulting type after applying the |
operator.
fn bitor(self, rhs: R) -> Self
[src]
impl<R: Clone> Clone for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R: Copy> Copy for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R> Debug for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R: Default> Default for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R> Display for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R: Eq> Eq for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R: Hash> Hash for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<R> Not for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
type Output = Self
The resulting type after applying the !
operator.
fn not(self) -> Self::Output
[src]
impl<R: Ord> Ord for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
fn cmp(&self, other: &BitMask<R>) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl<R: PartialEq> PartialEq<BitMask<R>> for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R: PartialOrd> PartialOrd<BitMask<R>> for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
fn partial_cmp(&self, other: &BitMask<R>) -> Option<Ordering>
[src]
fn lt(&self, other: &BitMask<R>) -> bool
[src]
fn le(&self, other: &BitMask<R>) -> bool
[src]
fn gt(&self, other: &BitMask<R>) -> bool
[src]
fn ge(&self, other: &BitMask<R>) -> bool
[src]
impl<R> StructuralEq for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R> StructuralPartialEq for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
impl<R> Sum<BitSel<R>> for BitMask<R> where
R: BitRegister,
[src]
R: BitRegister,
Auto Trait Implementations
impl<R> RefUnwindSafe for BitMask<R> where
R: RefUnwindSafe,
R: RefUnwindSafe,
impl<R> Send for BitMask<R>
impl<R> Sync for BitMask<R>
impl<R> Unpin for BitMask<R>
impl<R> UnwindSafe for BitMask<R> where
R: UnwindSafe,
R: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Conv for T
[src]
impl<T> FmtForward for T
[src]
fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
[src]
Self: Binary,
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
[src]
Self: Display,
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
[src]
Self: LowerExp,
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
[src]
Self: LowerHex,
fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
[src]
Self: Octal,
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
[src]
Self: Pointer,
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
[src]
Self: UpperExp,
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
[src]
Self: UpperHex,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pipe for T
[src]
impl<T> PipeAsRef for T
[src]
fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
R: 'a,
Self: AsRef<T>,
T: 'a,
[src]
R: 'a,
Self: AsRef<T>,
T: 'a,
fn pipe_as_mut<'a, T, R>(&'a mut self, func: impl FnOnce(&'a mut T) -> R) -> R where
R: 'a,
Self: AsMut<T>,
T: 'a,
[src]
R: 'a,
Self: AsMut<T>,
T: 'a,
impl<T> PipeBorrow for T
[src]
fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
R: 'a,
Self: Borrow<T>,
T: 'a,
[src]
R: 'a,
Self: Borrow<T>,
T: 'a,
fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
R: 'a,
Self: BorrowMut<T>,
T: 'a,
[src]
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
R: 'a,
Self: BorrowMut<T>,
T: 'a,
impl<T> PipeDeref for T
[src]
fn pipe_deref<'a, R>(&'a self, func: impl FnOnce(&'a Self::Target) -> R) -> R where
R: 'a,
Self: Deref,
[src]
R: 'a,
Self: Deref,
fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
R: 'a,
Self: DerefMut,
[src]
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
R: 'a,
Self: DerefMut,
impl<T> PipeRef for T
[src]
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
[src]
R: 'a,
fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
[src]
R: 'a,
impl<T> Tap for T
[src]
fn tap<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
[src]
F: FnOnce(&Self) -> R,
fn tap_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
[src]
F: FnOnce(&Self) -> R,
fn tap_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
[src]
F: FnOnce(&mut Self) -> R,
fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
[src]
F: FnOnce(&mut Self) -> R,
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
[src]
U: ?Sized,
fn tap_ref<F, R>(self, func: F) -> Self where
F: FnOnce(&T) -> R,
Self: AsRef<T>,
[src]
F: FnOnce(&T) -> R,
Self: AsRef<T>,
fn tap_ref_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&T) -> R,
Self: AsRef<T>,
[src]
F: FnOnce(&T) -> R,
Self: AsRef<T>,
fn tap_ref_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
[src]
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
[src]
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
[src]
U: ?Sized,
fn tap_borrow<F, R>(self, func: F) -> Self where
F: FnOnce(&T) -> R,
Self: Borrow<T>,
[src]
F: FnOnce(&T) -> R,
Self: Borrow<T>,
fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&T) -> R,
Self: Borrow<T>,
[src]
F: FnOnce(&T) -> R,
Self: Borrow<T>,
fn tap_borrow_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
[src]
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
[src]
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
impl<T> TapDeref for T
[src]
fn tap_deref<F, R>(self, func: F) -> Self where
F: FnOnce(&Self::Target) -> R,
Self: Deref,
[src]
F: FnOnce(&Self::Target) -> R,
Self: Deref,
fn tap_deref_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self::Target) -> R,
Self: Deref,
[src]
F: FnOnce(&Self::Target) -> R,
Self: Deref,
fn tap_deref_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
[src]
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
[src]
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T> TryConv for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,