pub trait BitOr<Rhs = Self> {
type Output;
// Required method
fn bitor(self, rhs: Rhs) -> Self::Output;
}Expand description
The bitwise OR operator |.
Note that Rhs is Self by default, but this is not mandatory.
§Examples
An implementation of BitOr for a wrapper around bool.
use std::ops::BitOr;
#[derive(Debug, PartialEq)]
struct Scalar(bool);
impl BitOr for Scalar {
type Output = Self;
// rhs is the "right-hand side" of the expression `a | b`
fn bitor(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 of BitOr for a wrapper around Vec<bool>.
use std::ops::BitOr;
#[derive(Debug, PartialEq)]
struct BooleanVector(Vec<bool>);
impl BitOr for BooleanVector {
type Output = Self;
fn bitor(self, Self(rhs): Self) -> Self::Output {
let Self(lhs) = self;
assert_eq!(lhs.len(), rhs.len());
Self(
lhs.iter()
.zip(rhs.iter())
.map(|(x, y)| *x | *y)
.collect()
)
}
}
let bv1 = BooleanVector(vec![true, true, false, false]);
let bv2 = BooleanVector(vec![true, false, true, false]);
let expected = BooleanVector(vec![true, true, true, false]);
assert_eq!(bv1 | bv2, expected);Required Associated Types§
Required Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
Source§impl BitOr for LlvmBoolTensor
impl BitOr for LlvmBoolTensor
type Output = LlvmTensor<bool>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<i16>
impl BitOr for Saturating<i16>
type Output = Saturating<i16>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<i32>
impl BitOr for Saturating<i32>
type Output = Saturating<i32>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<i64>
impl BitOr for Saturating<i64>
type Output = Saturating<i64>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<i128>
impl BitOr for Saturating<i128>
type Output = Saturating<i128>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<isize>
impl BitOr for Saturating<isize>
type Output = Saturating<isize>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<u16>
impl BitOr for Saturating<u16>
type Output = Saturating<u16>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<u32>
impl BitOr for Saturating<u32>
type Output = Saturating<u32>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<u64>
impl BitOr for Saturating<u64>
type Output = Saturating<u64>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<u128>
impl BitOr for Saturating<u128>
type Output = Saturating<u128>
1.74.0 (const: unstable) · Source§impl BitOr for Saturating<usize>
impl BitOr for Saturating<usize>
type Output = Saturating<usize>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i8>> for &Saturating<i8>
impl BitOr<&Saturating<i8>> for &Saturating<i8>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i8>> for Saturating<i8>
impl BitOr<&Saturating<i8>> for Saturating<i8>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i16>> for &Saturating<i16>
impl BitOr<&Saturating<i16>> for &Saturating<i16>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i16>> for Saturating<i16>
impl BitOr<&Saturating<i16>> for Saturating<i16>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i32>> for &Saturating<i32>
impl BitOr<&Saturating<i32>> for &Saturating<i32>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i32>> for Saturating<i32>
impl BitOr<&Saturating<i32>> for Saturating<i32>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i64>> for &Saturating<i64>
impl BitOr<&Saturating<i64>> for &Saturating<i64>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i64>> for Saturating<i64>
impl BitOr<&Saturating<i64>> for Saturating<i64>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i128>> for &Saturating<i128>
impl BitOr<&Saturating<i128>> for &Saturating<i128>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<i128>> for Saturating<i128>
impl BitOr<&Saturating<i128>> for Saturating<i128>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<isize>> for &Saturating<isize>
impl BitOr<&Saturating<isize>> for &Saturating<isize>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<isize>> for Saturating<isize>
impl BitOr<&Saturating<isize>> for Saturating<isize>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u8>> for &Saturating<u8>
impl BitOr<&Saturating<u8>> for &Saturating<u8>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u8>> for Saturating<u8>
impl BitOr<&Saturating<u8>> for Saturating<u8>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u16>> for &Saturating<u16>
impl BitOr<&Saturating<u16>> for &Saturating<u16>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u16>> for Saturating<u16>
impl BitOr<&Saturating<u16>> for Saturating<u16>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u32>> for &Saturating<u32>
impl BitOr<&Saturating<u32>> for &Saturating<u32>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u32>> for Saturating<u32>
impl BitOr<&Saturating<u32>> for Saturating<u32>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u64>> for &Saturating<u64>
impl BitOr<&Saturating<u64>> for &Saturating<u64>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u64>> for Saturating<u64>
impl BitOr<&Saturating<u64>> for Saturating<u64>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u128>> for &Saturating<u128>
impl BitOr<&Saturating<u128>> for &Saturating<u128>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<u128>> for Saturating<u128>
impl BitOr<&Saturating<u128>> for Saturating<u128>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<usize>> for &Saturating<usize>
impl BitOr<&Saturating<usize>> for &Saturating<usize>
1.74.0 (const: unstable) · Source§impl BitOr<&Saturating<usize>> for Saturating<usize>
impl BitOr<&Saturating<usize>> for Saturating<usize>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<i8>> for &Saturating<i8>
impl BitOr<Saturating<i8>> for &Saturating<i8>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<i16>> for &Saturating<i16>
impl BitOr<Saturating<i16>> for &Saturating<i16>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<i32>> for &Saturating<i32>
impl BitOr<Saturating<i32>> for &Saturating<i32>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<i64>> for &Saturating<i64>
impl BitOr<Saturating<i64>> for &Saturating<i64>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<i128>> for &Saturating<i128>
impl BitOr<Saturating<i128>> for &Saturating<i128>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<isize>> for &Saturating<isize>
impl BitOr<Saturating<isize>> for &Saturating<isize>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<u8>> for &Saturating<u8>
impl BitOr<Saturating<u8>> for &Saturating<u8>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<u16>> for &Saturating<u16>
impl BitOr<Saturating<u16>> for &Saturating<u16>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<u32>> for &Saturating<u32>
impl BitOr<Saturating<u32>> for &Saturating<u32>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<u64>> for &Saturating<u64>
impl BitOr<Saturating<u64>> for &Saturating<u64>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<u128>> for &Saturating<u128>
impl BitOr<Saturating<u128>> for &Saturating<u128>
1.74.0 (const: unstable) · Source§impl BitOr<Saturating<usize>> for &Saturating<usize>
impl BitOr<Saturating<usize>> for &Saturating<usize>
1.45.0 (const: unstable) · Source§impl<T> BitOr for NonZero<T>where
T: ZeroablePrimitive + BitOr<Output = T>,
impl<T> BitOr for NonZero<T>where
T: ZeroablePrimitive + BitOr<Output = T>,
1.45.0 (const: unstable) · Source§impl<T> BitOr<NonZero<T>> for Twhere
T: ZeroablePrimitive + BitOr<Output = T>,
impl<T> BitOr<NonZero<T>> for Twhere
T: ZeroablePrimitive + BitOr<Output = T>,
1.45.0 (const: unstable) · Source§impl<T> BitOr<T> for NonZero<T>where
T: ZeroablePrimitive + BitOr<Output = T>,
impl<T> BitOr<T> for NonZero<T>where
T: ZeroablePrimitive + BitOr<Output = T>,
Source§impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B0>
UInt<Ul, B0> | UInt<Ur, B0> = UInt<Ul | Ur, B0>
impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B0>
UInt<Ul, B0> | UInt<Ur, B0> = UInt<Ul | Ur, B0>
Source§impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B1>
UInt<Ul, B1> | UInt<Ur, B0> = UInt<Ul | Ur, B1>
impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B1>
UInt<Ul, B1> | UInt<Ur, B0> = UInt<Ul | Ur, B1>
Source§impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B0>
UInt<Ul, B0> | UInt<Ur, B1> = UInt<Ul | Ur, B1>
impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B0>
UInt<Ul, B0> | UInt<Ur, B1> = UInt<Ul | Ur, B1>
Source§impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B1>
UInt<Ul, B1> | UInt<Ur, B1> = UInt<Ul | Ur, B1>
impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B1>
UInt<Ul, B1> | UInt<Ur, B1> = UInt<Ul | Ur, B1>