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§
Implementors§
1.74.0 · Source§impl BitOr for Saturating<i8>
impl BitOr for Saturating<i8>
type Output = Saturating<i8>
1.74.0 · Source§impl BitOr for Saturating<i16>
impl BitOr for Saturating<i16>
type Output = Saturating<i16>
1.74.0 · Source§impl BitOr for Saturating<i32>
impl BitOr for Saturating<i32>
type Output = Saturating<i32>
1.74.0 · Source§impl BitOr for Saturating<i64>
impl BitOr for Saturating<i64>
type Output = Saturating<i64>
1.74.0 · Source§impl BitOr for Saturating<i128>
impl BitOr for Saturating<i128>
type Output = Saturating<i128>
1.74.0 · Source§impl BitOr for Saturating<isize>
impl BitOr for Saturating<isize>
type Output = Saturating<isize>
1.74.0 · Source§impl BitOr for Saturating<u8>
impl BitOr for Saturating<u8>
type Output = Saturating<u8>
1.74.0 · Source§impl BitOr for Saturating<u16>
impl BitOr for Saturating<u16>
type Output = Saturating<u16>
1.74.0 · Source§impl BitOr for Saturating<u32>
impl BitOr for Saturating<u32>
type Output = Saturating<u32>
1.74.0 · Source§impl BitOr for Saturating<u64>
impl BitOr for Saturating<u64>
type Output = Saturating<u64>
1.74.0 · Source§impl BitOr for Saturating<u128>
impl BitOr for Saturating<u128>
type Output = Saturating<u128>
1.74.0 · Source§impl BitOr for Saturating<usize>
impl BitOr for Saturating<usize>
type Output = Saturating<usize>
1.74.0 · Source§impl BitOr<&Saturating<i8>> for &Saturating<i8>
impl BitOr<&Saturating<i8>> for &Saturating<i8>
1.74.0 · Source§impl BitOr<&Saturating<i8>> for Saturating<i8>
impl BitOr<&Saturating<i8>> for Saturating<i8>
1.74.0 · Source§impl BitOr<&Saturating<i16>> for &Saturating<i16>
impl BitOr<&Saturating<i16>> for &Saturating<i16>
1.74.0 · Source§impl BitOr<&Saturating<i16>> for Saturating<i16>
impl BitOr<&Saturating<i16>> for Saturating<i16>
1.74.0 · Source§impl BitOr<&Saturating<i32>> for &Saturating<i32>
impl BitOr<&Saturating<i32>> for &Saturating<i32>
1.74.0 · Source§impl BitOr<&Saturating<i32>> for Saturating<i32>
impl BitOr<&Saturating<i32>> for Saturating<i32>
1.74.0 · Source§impl BitOr<&Saturating<i64>> for &Saturating<i64>
impl BitOr<&Saturating<i64>> for &Saturating<i64>
1.74.0 · Source§impl BitOr<&Saturating<i64>> for Saturating<i64>
impl BitOr<&Saturating<i64>> for Saturating<i64>
1.74.0 · Source§impl BitOr<&Saturating<i128>> for &Saturating<i128>
impl BitOr<&Saturating<i128>> for &Saturating<i128>
1.74.0 · Source§impl BitOr<&Saturating<i128>> for Saturating<i128>
impl BitOr<&Saturating<i128>> for Saturating<i128>
1.74.0 · Source§impl BitOr<&Saturating<isize>> for &Saturating<isize>
impl BitOr<&Saturating<isize>> for &Saturating<isize>
1.74.0 · Source§impl BitOr<&Saturating<isize>> for Saturating<isize>
impl BitOr<&Saturating<isize>> for Saturating<isize>
1.74.0 · Source§impl BitOr<&Saturating<u8>> for &Saturating<u8>
impl BitOr<&Saturating<u8>> for &Saturating<u8>
1.74.0 · Source§impl BitOr<&Saturating<u8>> for Saturating<u8>
impl BitOr<&Saturating<u8>> for Saturating<u8>
1.74.0 · Source§impl BitOr<&Saturating<u16>> for &Saturating<u16>
impl BitOr<&Saturating<u16>> for &Saturating<u16>
1.74.0 · Source§impl BitOr<&Saturating<u16>> for Saturating<u16>
impl BitOr<&Saturating<u16>> for Saturating<u16>
1.74.0 · Source§impl BitOr<&Saturating<u32>> for &Saturating<u32>
impl BitOr<&Saturating<u32>> for &Saturating<u32>
1.74.0 · Source§impl BitOr<&Saturating<u32>> for Saturating<u32>
impl BitOr<&Saturating<u32>> for Saturating<u32>
1.74.0 · Source§impl BitOr<&Saturating<u64>> for &Saturating<u64>
impl BitOr<&Saturating<u64>> for &Saturating<u64>
1.74.0 · Source§impl BitOr<&Saturating<u64>> for Saturating<u64>
impl BitOr<&Saturating<u64>> for Saturating<u64>
1.74.0 · Source§impl BitOr<&Saturating<u128>> for &Saturating<u128>
impl BitOr<&Saturating<u128>> for &Saturating<u128>
1.74.0 · Source§impl BitOr<&Saturating<u128>> for Saturating<u128>
impl BitOr<&Saturating<u128>> for Saturating<u128>
1.74.0 · Source§impl BitOr<&Saturating<usize>> for &Saturating<usize>
impl BitOr<&Saturating<usize>> for &Saturating<usize>
1.74.0 · Source§impl BitOr<&Saturating<usize>> for Saturating<usize>
impl BitOr<&Saturating<usize>> for Saturating<usize>
1.74.0 · Source§impl<'a> BitOr<Saturating<i8>> for &'a Saturating<i8>
impl<'a> BitOr<Saturating<i8>> for &'a Saturating<i8>
1.74.0 · Source§impl<'a> BitOr<Saturating<i16>> for &'a Saturating<i16>
impl<'a> BitOr<Saturating<i16>> for &'a Saturating<i16>
1.74.0 · Source§impl<'a> BitOr<Saturating<i32>> for &'a Saturating<i32>
impl<'a> BitOr<Saturating<i32>> for &'a Saturating<i32>
1.74.0 · Source§impl<'a> BitOr<Saturating<i64>> for &'a Saturating<i64>
impl<'a> BitOr<Saturating<i64>> for &'a Saturating<i64>
1.74.0 · Source§impl<'a> BitOr<Saturating<i128>> for &'a Saturating<i128>
impl<'a> BitOr<Saturating<i128>> for &'a Saturating<i128>
1.74.0 · Source§impl<'a> BitOr<Saturating<isize>> for &'a Saturating<isize>
impl<'a> BitOr<Saturating<isize>> for &'a Saturating<isize>
1.74.0 · Source§impl<'a> BitOr<Saturating<u8>> for &'a Saturating<u8>
impl<'a> BitOr<Saturating<u8>> for &'a Saturating<u8>
1.74.0 · Source§impl<'a> BitOr<Saturating<u16>> for &'a Saturating<u16>
impl<'a> BitOr<Saturating<u16>> for &'a Saturating<u16>
1.74.0 · Source§impl<'a> BitOr<Saturating<u32>> for &'a Saturating<u32>
impl<'a> BitOr<Saturating<u32>> for &'a Saturating<u32>
1.74.0 · Source§impl<'a> BitOr<Saturating<u64>> for &'a Saturating<u64>
impl<'a> BitOr<Saturating<u64>> for &'a Saturating<u64>
1.74.0 · Source§impl<'a> BitOr<Saturating<u128>> for &'a Saturating<u128>
impl<'a> BitOr<Saturating<u128>> for &'a Saturating<u128>
1.74.0 · Source§impl<'a> BitOr<Saturating<usize>> for &'a Saturating<usize>
impl<'a> BitOr<Saturating<usize>> for &'a Saturating<usize>
Source§impl<'a, A, B, S, S2, D, E> BitOr<&'a ArrayBase<S2, E>> for &'a ArrayBase<S, D>
Perform elementwise
bit or
between references self and rhs,
and return the result as a new Array.
impl<'a, A, B, S, S2, D, E> BitOr<&'a ArrayBase<S2, E>> for &'a ArrayBase<S, D>
Perform elementwise
bit or
between references self and rhs,
and return the result as a new Array.
If their shapes disagree, self and rhs is broadcast to their broadcast shape,
cloning the data if needed.
Panics if broadcasting isn’t possible.
Source§impl<'a, A, B, S, S2, D, E> BitOr<&'a ArrayBase<S2, E>> for ArrayBase<S, D>
Perform elementwise
bit or
between self and reference rhs,
and return the result.
impl<'a, A, B, S, S2, D, E> BitOr<&'a ArrayBase<S2, E>> for ArrayBase<S, D>
Perform elementwise
bit or
between self and reference rhs,
and return the result.
rhs must be an Array or ArcArray.
If their shapes disagree, self is broadcast to their broadcast shape,
cloning the data if needed.
Panics if broadcasting isn’t possible.
Source§impl<'a, A, B, S, S2, D, E> BitOr<ArrayBase<S2, E>> for &'a ArrayBase<S, D>
Perform elementwise
bit or
between reference self and rhs,
and return the result.
impl<'a, A, B, S, S2, D, E> BitOr<ArrayBase<S2, E>> for &'a ArrayBase<S, D>
Perform elementwise
bit or
between reference self and rhs,
and return the result.
rhs must be an Array or ArcArray.
If their shapes disagree, self is broadcast to their broadcast shape,
cloning the data if needed.
Panics if broadcasting isn’t possible.
Source§impl<'a, A, S, D, B> BitOr<B> for &'a ArrayBase<S, D>
Perform elementwise
bit or
between the reference self and the scalar x,
and return the result as a new Array.
impl<'a, A, S, D, B> BitOr<B> for &'a ArrayBase<S, D>
Perform elementwise
bit or
between the reference self and the scalar x,
and return the result as a new Array.
Source§impl<A, B, S, S2, D, E> BitOr<ArrayBase<S2, E>> for ArrayBase<S, D>
Perform elementwise
bit or
between self and rhs,
and return the result.
impl<A, B, S, S2, D, E> BitOr<ArrayBase<S2, E>> for ArrayBase<S, D>
Perform elementwise
bit or
between self and rhs,
and return the result.
self must be an Array or ArcArray.
If their shapes disagree, self is broadcast to their broadcast shape.
Panics if broadcasting isn’t possible.
Source§impl<A, S, D, B> BitOr<B> for ArrayBase<S, D>
Perform elementwise
bit or
between self and the scalar x,
and return the result (based on self).
impl<A, S, D, B> BitOr<B> for ArrayBase<S, D>
Perform elementwise
bit or
between self and the scalar x,
and return the result (based on self).
self must be an Array or ArcArray.