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