pub trait BitAndAssign<Rhs = Self> {
// Required method
fn bitand_assign(&mut self, rhs: Rhs);
}
Expand description
The bitwise AND assignment operator &=
.
§Examples
An implementation of BitAndAssign
that lifts the &=
operator to a
wrapper around bool
.
use std::ops::BitAndAssign;
#[derive(Debug, PartialEq)]
struct Scalar(bool);
impl BitAndAssign for Scalar {
// rhs is the "right-hand side" of the expression `a &= b`
fn bitand_assign(&mut self, rhs: Self) {
*self = Self(self.0 & rhs.0)
}
}
let mut scalar = Scalar(true);
scalar &= Scalar(true);
assert_eq!(scalar, Scalar(true));
let mut scalar = Scalar(true);
scalar &= Scalar(false);
assert_eq!(scalar, Scalar(false));
let mut scalar = Scalar(false);
scalar &= Scalar(true);
assert_eq!(scalar, Scalar(false));
let mut scalar = Scalar(false);
scalar &= Scalar(false);
assert_eq!(scalar, Scalar(false));
Here, the BitAndAssign
trait is implemented for a wrapper around
Vec<bool>
.
use std::ops::BitAndAssign;
#[derive(Debug, PartialEq)]
struct BooleanVector(Vec<bool>);
impl BitAndAssign for BooleanVector {
// `rhs` is the "right-hand side" of the expression `a &= b`.
fn bitand_assign(&mut self, rhs: Self) {
assert_eq!(self.0.len(), rhs.0.len());
*self = Self(
self.0
.iter()
.zip(rhs.0.iter())
.map(|(x, y)| *x & *y)
.collect()
);
}
}
let mut bv = BooleanVector(vec![true, true, false, false]);
bv &= BooleanVector(vec![true, false, true, false]);
let expected = BooleanVector(vec![true, false, false, false]);
assert_eq!(bv, expected);
Required Methods§
1.8.0 · Sourcefn bitand_assign(&mut self, rhs: Rhs)
fn bitand_assign(&mut self, rhs: Rhs)
Performs the &=
operation.
§Examples
Implementors§
impl BitAndAssign for bool
impl BitAndAssign for i8
impl BitAndAssign for i16
impl BitAndAssign for i32
impl BitAndAssign for i64
impl BitAndAssign for i128
impl BitAndAssign for isize
impl BitAndAssign for u8
impl BitAndAssign for u16
impl BitAndAssign for u32
impl BitAndAssign for u64
impl BitAndAssign for u128
impl BitAndAssign for usize
impl BitAndAssign for Ipv4Addr
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Ipv6Addr
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<i8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<i16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<i32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<i64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<i128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<isize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<u8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<u16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<u32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<u64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<u128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Saturating<usize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<i8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<i16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<i32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<i64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<i128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<isize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<u8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<u16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<u32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<u64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<u128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign for Wrapping<usize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&bool> for bool
impl BitAndAssign<&i8> for i8
impl BitAndAssign<&i8> for Saturating<i8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i8> for Wrapping<i8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i16> for i16
impl BitAndAssign<&i16> for Saturating<i16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i16> for Wrapping<i16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i32> for i32
impl BitAndAssign<&i32> for Saturating<i32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i32> for Wrapping<i32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i64> for i64
impl BitAndAssign<&i64> for Saturating<i64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i64> for Wrapping<i64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i128> for i128
impl BitAndAssign<&i128> for Saturating<i128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&i128> for Wrapping<i128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&isize> for isize
impl BitAndAssign<&isize> for Saturating<isize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&isize> for Wrapping<isize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u8> for u8
impl BitAndAssign<&u8> for Saturating<u8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u8> for Wrapping<u8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u16> for u16
impl BitAndAssign<&u16> for Saturating<u16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u16> for Wrapping<u16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u32> for u32
impl BitAndAssign<&u32> for Saturating<u32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u32> for Wrapping<u32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u64> for u64
impl BitAndAssign<&u64> for Saturating<u64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u64> for Wrapping<u64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u128> for u128
impl BitAndAssign<&u128> for Saturating<u128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&u128> for Wrapping<u128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&usize> for usize
impl BitAndAssign<&usize> for Saturating<usize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&usize> for Wrapping<usize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Ipv4Addr> for Ipv4Addr
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Ipv6Addr> for Ipv6Addr
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<i8>> for Saturating<i8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<i16>> for Saturating<i16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<i32>> for Saturating<i32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<i64>> for Saturating<i64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<i128>> for Saturating<i128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<isize>> for Saturating<isize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<u8>> for Saturating<u8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<u16>> for Saturating<u16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<u32>> for Saturating<u32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<u64>> for Saturating<u64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<u128>> for Saturating<u128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Saturating<usize>> for Saturating<usize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<i8>> for Wrapping<i8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<i16>> for Wrapping<i16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<i32>> for Wrapping<i32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<i64>> for Wrapping<i64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<i128>> for Wrapping<i128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<isize>> for Wrapping<isize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<u8>> for Wrapping<u8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<u16>> for Wrapping<u16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<u32>> for Wrapping<u32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<u64>> for Wrapping<u64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<u128>> for Wrapping<u128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<&Wrapping<usize>> for Wrapping<usize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i8> for Saturating<i8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i8> for Wrapping<i8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i16> for Saturating<i16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i16> for Wrapping<i16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i32> for Saturating<i32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i32> for Wrapping<i32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i64> for Saturating<i64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i64> for Wrapping<i64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i128> for Saturating<i128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<i128> for Wrapping<i128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<isize> for Saturating<isize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<isize> for Wrapping<isize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u8> for Saturating<u8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u8> for Wrapping<u8>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u16> for Saturating<u16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u16> for Wrapping<u16>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u32> for Saturating<u32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u32> for Wrapping<u32>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u64> for Saturating<u64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u64> for Wrapping<u64>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u128> for Saturating<u128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<u128> for Wrapping<u128>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<usize> for Saturating<usize>
Available on non-crate feature
ferrocene_certified
only.impl BitAndAssign<usize> for Wrapping<usize>
Available on non-crate feature
ferrocene_certified
only.impl<T, U, const N: usize> BitAndAssign<U> for Simd<T, N>
Available on non-crate feature
ferrocene_certified
only.impl<T, const N: usize> BitAndAssign for Mask<T, N>
Available on non-crate feature
ferrocene_certified
only.impl<T, const N: usize> BitAndAssign<bool> for Mask<T, N>
Available on non-crate feature
ferrocene_certified
only.