Trait grafix_toolbox::uses::ops::BitOr 1.0.0[−][src]
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);
Associated Types
Required methods
Implementations on Foreign Types
Returns the union of self and rhs as a new HashSet<T, S>.
Examples
use std::collections::HashSet; let a: HashSet<_> = vec![1, 2, 3].into_iter().collect(); let b: HashSet<_> = vec![3, 4, 5].into_iter().collect(); let set = &a | &b; let mut i = 0; let expected = [1, 2, 3, 4, 5]; for x in &set { assert!(expected.contains(x)); i += 1; } assert_eq!(i, expected.len());
type Output = NonZeroI64type Output = NonZeroIsizetype Output = NonZeroU128type Output = NonZeroI128type Output = NonZeroU64type Output = NonZeroU128type Output = NonZeroI16type Output = NonZeroU16type Output = NonZeroUsizetype Output = NonZeroU64type Output = NonZeroI128type Output = NonZeroU32type Output = NonZeroI32type Output = NonZeroI16type Output = NonZeroI32type Output = NonZeroUsizetype Output = NonZeroU16type Output = NonZeroI128type Output = NonZeroI32type Output = NonZeroI64type Output = NonZeroI64type Output = NonZeroIsizetype Output = NonZeroU16type Output = NonZeroUsizetype Output = NonZeroU32type Output = NonZeroU64type Output = NonZeroU128type Output = NonZeroU32type Output = NonZeroI16type Output = NonZeroIsizeReturns the union of the two sets of flags.
type Output = JoystickHatsimpl BitOr<Transformations> for Transformations
impl BitOr<Transformations> for Transformationspub fn bitor(self, rhs: &AHashSet<T, S>) -> AHashSet<T, S>
pub fn bitor(self, rhs: &AHashSet<T, S>) -> AHashSet<T, S>Returns the union of self and rhs as a new AHashSet<T, S>.
Examples
use ahash::AHashSet; let a: AHashSet<_> = vec![1, 2, 3].into_iter().collect(); let b: AHashSet<_> = vec![3, 4, 5].into_iter().collect(); let set = &a | &b; let mut i = 0; let expected = [1, 2, 3, 4, 5]; for x in &set { assert!(expected.contains(x)); i += 1; } assert_eq!(i, expected.len());
type Output = AHashSet<T, S>impl BitOr<B1> for B0
impl BitOr<B1> for B0Or with 0 ( 0 | 1 = 1)
impl<U> BitOr<U> for UTerm where
U: Unsigned,
impl<U> BitOr<U> for UTerm where
U: Unsigned, UTerm | X = X
UInt<Ul, B1> | UInt<Ur, B0> = UInt<Ul | Ur, B1>
impl<B, U> BitOr<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<B, U> BitOr<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned, X | UTerm = X
UInt<Ul, B1> | UInt<Ur, B1> = UInt<Ul | Ur, B1>
impl<Rhs> BitOr<Rhs> for B1 where
Rhs: Bit,
impl<Rhs> BitOr<Rhs> for B1 where
Rhs: Bit, Or with 1 ( 1 | B = 1)
UInt<Ul, B0> | UInt<Ur, B0> = UInt<Ul | Ur, B0>
impl BitOr<B0> for B0
impl BitOr<B0> for B0Or with 0 ( 0 | 0 = 0)
UInt<Ul, B0> | UInt<Ur, B1> = UInt<Ul | Ur, B1>