Trait origin_studio::ops::BitOr

1.0.0 · source ·
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§

source

type Output

The resulting type after applying the | operator.

Required Methods§

source

fn bitor(self, rhs: Rhs) -> Self::Output

Performs the | operation.

Examples
assert_eq!(true | false, true);
assert_eq!(false | false, false);
assert_eq!(5u8 | 1u8, 5);
assert_eq!(5u8 | 2u8, 7);

Implementors§

source§

impl BitOr for bool

§

type Output = bool

source§

impl BitOr for i8

§

type Output = i8

source§

impl BitOr for i16

§

type Output = i16

source§

impl BitOr for i32

§

type Output = i32

source§

impl BitOr for i64

§

type Output = i64

source§

impl BitOr for i128

§

type Output = i128

source§

impl BitOr for isize

source§

impl BitOr for u8

§

type Output = u8

source§

impl BitOr for u16

§

type Output = u16

source§

impl BitOr for u32

§

type Output = u32

source§

impl BitOr for u64

§

type Output = u64

source§

impl BitOr for u128

§

type Output = u128

source§

impl BitOr for usize

1.75.0 · source§

impl BitOr for Ipv4Addr

1.75.0 · source§

impl BitOr for Ipv6Addr

1.45.0 · source§

impl BitOr for NonZeroI8

1.45.0 · source§

impl BitOr for NonZeroI16

1.45.0 · source§

impl BitOr for NonZeroI32

1.45.0 · source§

impl BitOr for NonZeroI64

1.45.0 · source§

impl BitOr for NonZeroI128

1.45.0 · source§

impl BitOr for NonZeroIsize

1.45.0 · source§

impl BitOr for NonZeroU8

1.45.0 · source§

impl BitOr for NonZeroU16

1.45.0 · source§

impl BitOr for NonZeroU32

1.45.0 · source§

impl BitOr for NonZeroU64

1.45.0 · source§

impl BitOr for NonZeroU128

1.45.0 · source§

impl BitOr for NonZeroUsize

1.74.0 · source§

impl BitOr for Saturating<i8>

1.74.0 · source§

impl BitOr for Saturating<i16>

1.74.0 · source§

impl BitOr for Saturating<i32>

1.74.0 · source§

impl BitOr for Saturating<i64>

1.74.0 · source§

impl BitOr for Saturating<i128>

1.74.0 · source§

impl BitOr for Saturating<isize>

1.74.0 · source§

impl BitOr for Saturating<u8>

1.74.0 · source§

impl BitOr for Saturating<u16>

1.74.0 · source§

impl BitOr for Saturating<u32>

1.74.0 · source§

impl BitOr for Saturating<u64>

1.74.0 · source§

impl BitOr for Saturating<u128>

1.74.0 · source§

impl BitOr for Saturating<usize>

source§

impl BitOr for Wrapping<i8>

source§

impl BitOr for Wrapping<i16>

source§

impl BitOr for Wrapping<i32>

source§

impl BitOr for Wrapping<i64>

source§

impl BitOr for Wrapping<i128>

source§

impl BitOr for Wrapping<isize>

source§

impl BitOr for Wrapping<u8>

source§

impl BitOr for Wrapping<u16>

source§

impl BitOr for Wrapping<u32>

source§

impl BitOr for Wrapping<u64>

source§

impl BitOr for Wrapping<u128>

source§

impl BitOr for Wrapping<usize>

source§

impl BitOr for CreateFlags

source§

impl BitOr for WatchFlags

source§

impl BitOr for Access

source§

impl BitOr for AtFlags

source§

impl BitOr for FallocateFlags

source§

impl BitOr for MemfdFlags

source§

impl BitOr for Mode

§

type Output = Mode

source§

impl BitOr for OFlags

source§

impl BitOr for RenameFlags

source§

impl BitOr for ResolveFlags

source§

impl BitOr for SealFlags

source§

impl BitOr for StatVfsMountFlags

source§

impl BitOr for StatxFlags

source§

impl BitOr for DupFlags

source§

impl BitOr for FdFlags

source§

impl BitOr for ReadWriteFlags

source§

impl BitOr for MapFlags

source§

impl BitOr for MlockAllFlags

source§

impl BitOr for MlockFlags

source§

impl BitOr for MprotectFlags

source§

impl BitOr for MremapFlags

source§

impl BitOr for MsyncFlags

source§

impl BitOr for ProtFlags

source§

impl BitOr for UserfaultfdFlags

source§

impl BitOr for MountFlags

source§

impl BitOr for MountPropagationFlags

source§

impl BitOr for UnmountFlags

source§

impl BitOr for FutexFlags

source§

impl BitOr for TimerfdFlags

source§

impl BitOr for TimerfdTimerFlags

source§

impl BitOr for XattrFlags

source§

impl BitOr for MembarrierQuery

source§

impl BitOr for PidfdFlags

source§

impl BitOr for PidfdGetfdFlags

source§

impl BitOr for FloatingPointEmulationControl

source§

impl BitOr for FloatingPointExceptionMode

source§

impl BitOr for SpeculationFeatureControl

source§

impl BitOr for SpeculationFeatureState

source§

impl BitOr for UnalignedAccessControl

source§

impl BitOr for WaitOptions

source§

impl BitOr for WaitidOptions

source§

impl BitOr for CapabilityFlags

source§

impl BitOr for CapabilitiesSecureBits

source§

impl BitOr for TaggedAddressMode

source§

impl BitOr for ThreadNameSpaceType

source§

impl BitOr for UnshareFlags

§

impl BitOr for UnwindAction

§

type Output = UnwindAction

source§

impl BitOr<&bool> for &bool

§

type Output = <bool as BitOr>::Output

source§

impl BitOr<&bool> for bool

§

type Output = <bool as BitOr>::Output

source§

impl BitOr<&i8> for &i8

§

type Output = <i8 as BitOr>::Output

source§

impl BitOr<&i8> for i8

§

type Output = <i8 as BitOr>::Output

source§

impl BitOr<&i16> for &i16

§

type Output = <i16 as BitOr>::Output

source§

impl BitOr<&i16> for i16

§

type Output = <i16 as BitOr>::Output

source§

impl BitOr<&i32> for &i32

§

type Output = <i32 as BitOr>::Output

source§

impl BitOr<&i32> for i32

§

type Output = <i32 as BitOr>::Output

source§

impl BitOr<&i64> for &i64

§

type Output = <i64 as BitOr>::Output

source§

impl BitOr<&i64> for i64

§

type Output = <i64 as BitOr>::Output

source§

impl BitOr<&i128> for &i128

§

type Output = <i128 as BitOr>::Output

source§

impl BitOr<&i128> for i128

§

type Output = <i128 as BitOr>::Output

source§

impl BitOr<&isize> for &isize

§

type Output = <isize as BitOr>::Output

source§

impl BitOr<&isize> for isize

§

type Output = <isize as BitOr>::Output

source§

impl BitOr<&u8> for &u8

§

type Output = <u8 as BitOr>::Output

source§

impl BitOr<&u8> for u8

§

type Output = <u8 as BitOr>::Output

source§

impl BitOr<&u16> for &u16

§

type Output = <u16 as BitOr>::Output

source§

impl BitOr<&u16> for u16

§

type Output = <u16 as BitOr>::Output

source§

impl BitOr<&u32> for &u32

§

type Output = <u32 as BitOr>::Output

source§

impl BitOr<&u32> for u32

§

type Output = <u32 as BitOr>::Output

source§

impl BitOr<&u64> for &u64

§

type Output = <u64 as BitOr>::Output

source§

impl BitOr<&u64> for u64

§

type Output = <u64 as BitOr>::Output

source§

impl BitOr<&u128> for &u128

§

type Output = <u128 as BitOr>::Output

source§

impl BitOr<&u128> for u128

§

type Output = <u128 as BitOr>::Output

source§

impl BitOr<&usize> for &usize

§

type Output = <usize as BitOr>::Output

source§

impl BitOr<&usize> for usize

§

type Output = <usize as BitOr>::Output

1.75.0 · source§

impl BitOr<&Ipv4Addr> for &Ipv4Addr

1.75.0 · source§

impl BitOr<&Ipv4Addr> for Ipv4Addr

1.75.0 · source§

impl BitOr<&Ipv6Addr> for &Ipv6Addr

1.75.0 · source§

impl BitOr<&Ipv6Addr> for Ipv6Addr

1.74.0 · source§

impl BitOr<&Saturating<i8>> for &Saturating<i8>

1.74.0 · source§

impl BitOr<&Saturating<i8>> for Saturating<i8>

1.74.0 · source§

impl BitOr<&Saturating<i16>> for &Saturating<i16>

1.74.0 · source§

impl BitOr<&Saturating<i16>> for Saturating<i16>

1.74.0 · source§

impl BitOr<&Saturating<i32>> for &Saturating<i32>

1.74.0 · source§

impl BitOr<&Saturating<i32>> for Saturating<i32>

1.74.0 · source§

impl BitOr<&Saturating<i64>> for &Saturating<i64>

1.74.0 · source§

impl BitOr<&Saturating<i64>> for Saturating<i64>

1.74.0 · source§

impl BitOr<&Saturating<i128>> for &Saturating<i128>

1.74.0 · source§

impl BitOr<&Saturating<i128>> for Saturating<i128>

1.74.0 · source§

impl BitOr<&Saturating<isize>> for &Saturating<isize>

1.74.0 · source§

impl BitOr<&Saturating<isize>> for Saturating<isize>

1.74.0 · source§

impl BitOr<&Saturating<u8>> for &Saturating<u8>

1.74.0 · source§

impl BitOr<&Saturating<u8>> for Saturating<u8>

1.74.0 · source§

impl BitOr<&Saturating<u16>> for &Saturating<u16>

1.74.0 · source§

impl BitOr<&Saturating<u16>> for Saturating<u16>

1.74.0 · source§

impl BitOr<&Saturating<u32>> for &Saturating<u32>

1.74.0 · source§

impl BitOr<&Saturating<u32>> for Saturating<u32>

1.74.0 · source§

impl BitOr<&Saturating<u64>> for &Saturating<u64>

1.74.0 · source§

impl BitOr<&Saturating<u64>> for Saturating<u64>

1.74.0 · source§

impl BitOr<&Saturating<u128>> for &Saturating<u128>

1.74.0 · source§

impl BitOr<&Saturating<u128>> for Saturating<u128>

1.74.0 · source§

impl BitOr<&Saturating<usize>> for &Saturating<usize>

1.74.0 · source§

impl BitOr<&Saturating<usize>> for Saturating<usize>

1.14.0 · source§

impl BitOr<&Wrapping<i8>> for &Wrapping<i8>

1.14.0 · source§

impl BitOr<&Wrapping<i8>> for Wrapping<i8>

1.14.0 · source§

impl BitOr<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 · source§

impl BitOr<&Wrapping<i16>> for Wrapping<i16>

1.14.0 · source§

impl BitOr<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 · source§

impl BitOr<&Wrapping<i32>> for Wrapping<i32>

1.14.0 · source§

impl BitOr<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 · source§

impl BitOr<&Wrapping<i64>> for Wrapping<i64>

1.14.0 · source§

impl BitOr<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 · source§

impl BitOr<&Wrapping<i128>> for Wrapping<i128>

1.14.0 · source§

impl BitOr<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 · source§

impl BitOr<&Wrapping<isize>> for Wrapping<isize>

1.14.0 · source§

impl BitOr<&Wrapping<u8>> for &Wrapping<u8>

1.14.0 · source§

impl BitOr<&Wrapping<u8>> for Wrapping<u8>

1.14.0 · source§

impl BitOr<&Wrapping<u16>> for &Wrapping<u16>

1.14.0 · source§

impl BitOr<&Wrapping<u16>> for Wrapping<u16>

1.14.0 · source§

impl BitOr<&Wrapping<u32>> for &Wrapping<u32>

1.14.0 · source§

impl BitOr<&Wrapping<u32>> for Wrapping<u32>

1.14.0 · source§

impl BitOr<&Wrapping<u64>> for &Wrapping<u64>

1.14.0 · source§

impl BitOr<&Wrapping<u64>> for Wrapping<u64>

1.14.0 · source§

impl BitOr<&Wrapping<u128>> for &Wrapping<u128>

1.14.0 · source§

impl BitOr<&Wrapping<u128>> for Wrapping<u128>

1.14.0 · source§

impl BitOr<&Wrapping<usize>> for &Wrapping<usize>

1.14.0 · source§

impl BitOr<&Wrapping<usize>> for Wrapping<usize>

1.45.0 · source§

impl BitOr<i8> for NonZeroI8

1.45.0 · source§

impl BitOr<i16> for NonZeroI16

1.45.0 · source§

impl BitOr<i32> for NonZeroI32

1.45.0 · source§

impl BitOr<i64> for NonZeroI64

1.45.0 · source§

impl BitOr<i128> for NonZeroI128

1.45.0 · source§

impl BitOr<isize> for NonZeroIsize

1.45.0 · source§

impl BitOr<u8> for NonZeroU8

1.45.0 · source§

impl BitOr<u16> for NonZeroU16

1.45.0 · source§

impl BitOr<u32> for NonZeroU32

1.45.0 · source§

impl BitOr<u64> for NonZeroU64

1.45.0 · source§

impl BitOr<u128> for NonZeroU128

1.45.0 · source§

impl BitOr<usize> for NonZeroUsize

1.75.0 · source§

impl BitOr<Ipv4Addr> for &Ipv4Addr

1.75.0 · source§

impl BitOr<Ipv6Addr> for &Ipv6Addr

1.45.0 · source§

impl BitOr<NonZeroI8> for i8

1.45.0 · source§

impl BitOr<NonZeroI16> for i16

1.45.0 · source§

impl BitOr<NonZeroI32> for i32

1.45.0 · source§

impl BitOr<NonZeroI64> for i64

1.45.0 · source§

impl BitOr<NonZeroI128> for i128

1.45.0 · source§

impl BitOr<NonZeroIsize> for isize

1.45.0 · source§

impl BitOr<NonZeroU8> for u8

1.45.0 · source§

impl BitOr<NonZeroU16> for u16

1.45.0 · source§

impl BitOr<NonZeroU32> for u32

1.45.0 · source§

impl BitOr<NonZeroU64> for u64

1.45.0 · source§

impl BitOr<NonZeroU128> for u128

1.45.0 · source§

impl BitOr<NonZeroUsize> for usize

source§

impl<'a> BitOr<bool> for &'a bool

§

type Output = <bool as BitOr>::Output

source§

impl<'a> BitOr<i8> for &'a i8

§

type Output = <i8 as BitOr>::Output

source§

impl<'a> BitOr<i16> for &'a i16

§

type Output = <i16 as BitOr>::Output

source§

impl<'a> BitOr<i32> for &'a i32

§

type Output = <i32 as BitOr>::Output

source§

impl<'a> BitOr<i64> for &'a i64

§

type Output = <i64 as BitOr>::Output

source§

impl<'a> BitOr<i128> for &'a i128

§

type Output = <i128 as BitOr>::Output

source§

impl<'a> BitOr<isize> for &'a isize

§

type Output = <isize as BitOr>::Output

source§

impl<'a> BitOr<u8> for &'a u8

§

type Output = <u8 as BitOr>::Output

source§

impl<'a> BitOr<u16> for &'a u16

§

type Output = <u16 as BitOr>::Output

source§

impl<'a> BitOr<u32> for &'a u32

§

type Output = <u32 as BitOr>::Output

source§

impl<'a> BitOr<u64> for &'a u64

§

type Output = <u64 as BitOr>::Output

source§

impl<'a> BitOr<u128> for &'a u128

§

type Output = <u128 as BitOr>::Output

source§

impl<'a> BitOr<usize> for &'a usize

§

type Output = <usize as BitOr>::Output

1.74.0 · source§

impl<'a> BitOr<Saturating<i8>> for &'a Saturating<i8>

1.74.0 · source§

impl<'a> BitOr<Saturating<i16>> for &'a Saturating<i16>

1.74.0 · source§

impl<'a> BitOr<Saturating<i32>> for &'a Saturating<i32>

1.74.0 · source§

impl<'a> BitOr<Saturating<i64>> for &'a Saturating<i64>

1.74.0 · source§

impl<'a> BitOr<Saturating<i128>> for &'a Saturating<i128>

1.74.0 · source§

impl<'a> BitOr<Saturating<isize>> for &'a Saturating<isize>

1.74.0 · source§

impl<'a> BitOr<Saturating<u8>> for &'a Saturating<u8>

1.74.0 · source§

impl<'a> BitOr<Saturating<u16>> for &'a Saturating<u16>

1.74.0 · source§

impl<'a> BitOr<Saturating<u32>> for &'a Saturating<u32>

1.74.0 · source§

impl<'a> BitOr<Saturating<u64>> for &'a Saturating<u64>

1.74.0 · source§

impl<'a> BitOr<Saturating<u128>> for &'a Saturating<u128>

1.74.0 · source§

impl<'a> BitOr<Saturating<usize>> for &'a Saturating<usize>

1.14.0 · source§

impl<'a> BitOr<Wrapping<i8>> for &'a Wrapping<i8>

1.14.0 · source§

impl<'a> BitOr<Wrapping<i16>> for &'a Wrapping<i16>

1.14.0 · source§

impl<'a> BitOr<Wrapping<i32>> for &'a Wrapping<i32>

1.14.0 · source§

impl<'a> BitOr<Wrapping<i64>> for &'a Wrapping<i64>

1.14.0 · source§

impl<'a> BitOr<Wrapping<i128>> for &'a Wrapping<i128>

1.14.0 · source§

impl<'a> BitOr<Wrapping<isize>> for &'a Wrapping<isize>

1.14.0 · source§

impl<'a> BitOr<Wrapping<u8>> for &'a Wrapping<u8>

1.14.0 · source§

impl<'a> BitOr<Wrapping<u16>> for &'a Wrapping<u16>

1.14.0 · source§

impl<'a> BitOr<Wrapping<u32>> for &'a Wrapping<u32>

1.14.0 · source§

impl<'a> BitOr<Wrapping<u64>> for &'a Wrapping<u64>

1.14.0 · source§

impl<'a> BitOr<Wrapping<u128>> for &'a Wrapping<u128>

1.14.0 · source§

impl<'a> BitOr<Wrapping<usize>> for &'a Wrapping<usize>

source§

impl<'lhs, 'rhs, T, const LANES: usize> BitOr<&'rhs Simd<T, LANES>> for &'lhs Simd<T, LANES>where T: SimdElement, Simd<T, LANES>: BitOr<Output = Simd<T, LANES>>, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<T, LANES>

source§

impl<T, A> BitOr<&BTreeSet<T, A>> for &BTreeSet<T, A>where T: Ord + Clone, A: Allocator + Clone,

§

type Output = BTreeSet<T, A>

source§

impl<T, const LANES: usize> BitOr for Mask<T, LANES>where T: MaskElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Mask<T, LANES>

source§

impl<T, const LANES: usize> BitOr<&Simd<T, LANES>> for Simd<T, LANES>where T: SimdElement, Simd<T, LANES>: BitOr<Output = Simd<T, LANES>>, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<T, LANES>

source§

impl<T, const LANES: usize> BitOr<bool> for Mask<T, LANES>where T: MaskElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Mask<T, LANES>

source§

impl<T, const LANES: usize> BitOr<Mask<T, LANES>> for boolwhere T: MaskElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Mask<T, LANES>

source§

impl<T, const LANES: usize> BitOr<Simd<T, LANES>> for &Simd<T, LANES>where T: SimdElement, Simd<T, LANES>: BitOr<Output = Simd<T, LANES>>, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<T, LANES>

source§

impl<const N: usize> BitOr for Simd<i8, N>where i8: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<i8, N>

source§

impl<const N: usize> BitOr for Simd<i16, N>where i16: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<i16, N>

source§

impl<const N: usize> BitOr for Simd<i32, N>where i32: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<i32, N>

source§

impl<const N: usize> BitOr for Simd<i64, N>where i64: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<i64, N>

source§

impl<const N: usize> BitOr for Simd<isize, N>where isize: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<isize, N>

source§

impl<const N: usize> BitOr for Simd<u8, N>where u8: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<u8, N>

source§

impl<const N: usize> BitOr for Simd<u16, N>where u16: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<u16, N>

source§

impl<const N: usize> BitOr for Simd<u32, N>where u32: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<u32, N>

source§

impl<const N: usize> BitOr for Simd<u64, N>where u64: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<u64, N>

source§

impl<const N: usize> BitOr for Simd<usize, N>where usize: SimdElement, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<usize, N>