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 Capabilities
impl BitOr for Capabilities
type Output = Capabilities
Source§impl BitOr for FileSystemFlags
impl BitOr for FileSystemFlags
type Output = FileSystemFlags
Source§impl BitOr for FileSystemTypeFlags
impl BitOr for FileSystemTypeFlags
type Output = FileSystemTypeFlags
Source§impl BitOr for InotifyMask
impl BitOr for InotifyMask
type Output = InotifyMask
Source§impl BitOr for IptIpFlagsV4
impl BitOr for IptIpFlagsV4
type Output = IptIpFlagsV4
Source§impl BitOr for IptIpFlagsV6
impl BitOr for IptIpFlagsV6
type Output = IptIpFlagsV6
Source§impl BitOr for IptIpInverseFlags
impl BitOr for IptIpInverseFlags
type Output = IptIpInverseFlags
Source§impl BitOr for MountFlags
impl BitOr for MountFlags
type Output = MountFlags
Source§impl BitOr for MountpointFlags
impl BitOr for MountpointFlags
type Output = MountpointFlags
Source§impl BitOr for NfNatRangeFlags
impl BitOr for NfNatRangeFlags
type Output = NfNatRangeFlags
Source§impl BitOr for PersonalityFlags
impl BitOr for PersonalityFlags
type Output = PersonalityFlags
Source§impl BitOr for PtraceAccessMode
impl BitOr for PtraceAccessMode
type Output = PtraceAccessMode
Source§impl BitOr for ResolveFlags
impl BitOr for ResolveFlags
type Output = ResolveFlags
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>
Source§impl BitOr for SecureBits
impl BitOr for SecureBits
type Output = SecureBits
Source§impl BitOr for UnmountFlags
impl BitOr for UnmountFlags
type Output = UnmountFlags
Source§impl BitOr for XtTcpInverseFlags
impl BitOr for XtTcpInverseFlags
type Output = XtTcpInverseFlags
Source§impl BitOr for XtUdpInverseFlags
impl BitOr for XtUdpInverseFlags
type Output = XtUdpInverseFlags
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>