#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::ops::BitAndAssign; #[derive(Debug, PartialEq)] struct Scalar(bool); impl BitAndAssign for Scalar { fn bitand_assign(&mut self, rhs: Self) { *self = Self(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)); }