#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::ops::BitAnd; #[derive(Debug, PartialEq)] struct Scalar(bool); impl BitAnd for Scalar { type Output = Self; fn bitand(self, rhs: Self) -> Self::Output { Self(self.0 & rhs.0) } } fn main() { assert_eq!(Scalar(true) & Scalar(true), Scalar(true)); assert_eq!(Scalar(true) & Scalar(false), Scalar(false)); assert_eq!(Scalar(false) & Scalar(true), Scalar(false)); assert_eq!(Scalar(false) & Scalar(false), Scalar(false)); }