pub trait BitOr<Rhs = Self> { typeOutput; // Required method fnbitor(self, rhs: Rhs) -> Self::Output;}Expand description
The bitwise OR operator|.
Note thatRhs isSelf by default, but this is not mandatory.
§Examples
An implementation ofBitOr for a wrapper aroundbool.
usestd::ops::BitOr;#[derive(Debug, PartialEq)]structScalar(bool);implBitOrforScalar {typeOutput =Self;// rhs is the "right-hand side" of the expression `a | b`fnbitor(self, rhs:Self) ->Self::Output {Self(self.0| rhs.0) }}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));An implementation ofBitOr for a wrapper aroundVec<bool>.
usestd::ops::BitOr;#[derive(Debug, PartialEq)]structBooleanVector(Vec<bool>);implBitOrforBooleanVector {typeOutput =Self;fnbitor(self,Self(rhs):Self) ->Self::Output {letSelf(lhs) =self;assert_eq!(lhs.len(), rhs.len());Self( lhs.iter() .zip(rhs.iter()) .map(|(x, y)|*x |*y) .collect() ) }}letbv1 = BooleanVector(vec![true,true,false,false]);letbv2 = BooleanVector(vec![true,false,true,false]);letexpected = BooleanVector(vec![true,true,true,false]);assert_eq!(bv1 | bv2, expected);