Trait core::ops::BitAndAssign 1.8.0
[−]
[src]
#[lang = "bitand_assign"]pub trait BitAndAssign<Rhs = Self> { fn bitand_assign(&mut self, rhs: Rhs); }
The BitAndAssign
trait is used to specify the functionality of &=
.
Examples
In this example, the &=
operator is lifted to a trivial Scalar
type.
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 = Scalar(self.0 & rhs.0) } } fn main() { 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)); }Run
In this example, the BitAndAssign
trait is implemented for a
BooleanVector
struct.
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 = BooleanVector(self.0 .iter() .zip(rhs.0.iter()) .map(|(x, y)| *x && *y) .collect()); } } fn main() { 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); }Run
Required Methods
fn bitand_assign(&mut self, rhs: Rhs)
The method for the &=
operator
Implementors
impl BitAndAssign for Wrapping<usize>
impl BitAndAssign for Wrapping<u8>
impl BitAndAssign for Wrapping<u16>
impl BitAndAssign for Wrapping<u32>
impl BitAndAssign for Wrapping<u64>
impl BitAndAssign for Wrapping<u128>
impl BitAndAssign for Wrapping<isize>
impl BitAndAssign for Wrapping<i8>
impl BitAndAssign for Wrapping<i16>
impl BitAndAssign for Wrapping<i32>
impl BitAndAssign for Wrapping<i64>
impl BitAndAssign for Wrapping<i128>
impl BitAndAssign for bool
impl BitAndAssign for usize
impl BitAndAssign for u8
impl BitAndAssign for u16
impl BitAndAssign for u32
impl BitAndAssign for u64
impl BitAndAssign for u128
impl BitAndAssign for isize
impl BitAndAssign for i8
impl BitAndAssign for i16
impl BitAndAssign for i32
impl BitAndAssign for i64
impl BitAndAssign for i128