#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::ops::BitOr; #[derive(Debug, PartialEq)] struct Scalar(bool); impl BitOr for Scalar { type Output = Self; fn bitor(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(true)); assert_eq!(Scalar(false) | Scalar(true), Scalar(true)); assert_eq!(Scalar(false) | Scalar(false), Scalar(false)); }