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 AccessFlags
impl BitOr for AccessFlags
type Output = AccessFlags
Source§impl BitOr for CodegenConfig
impl BitOr for CodegenConfig
type Output = CodegenConfig
Source§impl BitOr for ControlFlags
impl BitOr for ControlFlags
type Output = ControlFlags
Source§impl BitOr for CreateFlags
impl BitOr for CreateFlags
type Output = CreateFlags
Source§impl BitOr for Effects
§Examples
let effects = anstyle::Effects::BOLD | anstyle::Effects::UNDERLINE;
assert_eq!(format!("{:?}", effects), "Effects(BOLD | UNDERLINE)");
impl BitOr for Effects
§Examples
let effects = anstyle::Effects::BOLD | anstyle::Effects::UNDERLINE;
assert_eq!(format!("{:?}", effects), "Effects(BOLD | UNDERLINE)");Source§impl BitOr for EventKindMask
impl BitOr for EventKindMask
type Output = EventKindMask
Source§impl BitOr for nix::fcntl::FallocateFlags
impl BitOr for nix::fcntl::FallocateFlags
type Output = FallocateFlags
Source§impl BitOr for rustix::backend::fs::types::FallocateFlags
impl BitOr for rustix::backend::fs::types::FallocateFlags
type Output = FallocateFlags
Source§impl BitOr for InputFlags
impl BitOr for InputFlags
type Output = InputFlags
Source§impl BitOr for LengthHint
impl BitOr for LengthHint
type Output = LengthHint
Source§impl BitOr for LocalFlags
impl BitOr for LocalFlags
type Output = LocalFlags
Source§impl BitOr for MemfdFlags
impl BitOr for MemfdFlags
type Output = MemfdFlags
Source§impl BitOr for OutputFlags
impl BitOr for OutputFlags
type Output = OutputFlags
Source§impl BitOr for PosixSpawnFlags
impl BitOr for PosixSpawnFlags
type Output = PosixSpawnFlags
Source§impl BitOr for ReadWriteFlags
impl BitOr for ReadWriteFlags
type Output = ReadWriteFlags
Source§impl BitOr for nix::fcntl::RenameFlags
impl BitOr for nix::fcntl::RenameFlags
type Output = RenameFlags
Source§impl BitOr for rustix::backend::fs::types::RenameFlags
impl BitOr for rustix::backend::fs::types::RenameFlags
type Output = RenameFlags
Source§impl BitOr for ResolveFlag
impl BitOr for ResolveFlag
type Output = ResolveFlag
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 StatVfsMountFlags
impl BitOr for StatVfsMountFlags
type Output = StatVfsMountFlags
Source§impl BitOr for StatxAttributes
impl BitOr for StatxAttributes
type Output = StatxAttributes
Source§impl BitOr for StatxFlags
impl BitOr for StatxFlags
type Output = StatxFlags
Source§impl BitOr for Transformations
impl BitOr for Transformations
type Output = Transformations
Source§impl BitOr for WaitPidFlag
impl BitOr for WaitPidFlag
type Output = WaitPidFlag
Source§impl BitOr for WatchFlags
impl BitOr for WatchFlags
type Output = WatchFlags
Source§impl BitOr for XattrFlags
impl BitOr for XattrFlags
type Output = XattrFlags
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>
Source§impl BitOr<Effects> for Style
§Examples
let style = anstyle::Style::new() | anstyle::Effects::BOLD.into();
impl BitOr<Effects> for Style
§Examples
let style = anstyle::Style::new() | anstyle::Effects::BOLD.into();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>
Source§impl<T> BitOr for LittleEndian<T>where
T: BitOr,
impl<T> BitOr for LittleEndian<T>where
T: BitOr,
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>