wasmtime_environ::__core::ops

Trait BitAnd

1.6.0 · Source
pub trait BitAnd<Rhs = Self> {
    type Output;

    // Required method
    fn bitand(self, rhs: Rhs) -> Self::Output;
}
Expand description

The bitwise AND operator &.

Note that Rhs is Self by default, but this is not mandatory.

§Examples

An implementation of BitAnd for a wrapper around bool.

use std::ops::BitAnd;

#[derive(Debug, PartialEq)]
struct Scalar(bool);

impl BitAnd for Scalar {
    type Output = Self;

    // rhs is the "right-hand side" of the expression `a & b`
    fn bitand(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(false));
assert_eq!(Scalar(false) & Scalar(true), Scalar(false));
assert_eq!(Scalar(false) & Scalar(false), Scalar(false));

An implementation of BitAnd for a wrapper around Vec<bool>.

use std::ops::BitAnd;

#[derive(Debug, PartialEq)]
struct BooleanVector(Vec<bool>);

impl BitAnd for BooleanVector {
    type Output = Self;

    fn bitand(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, false, false, false]);
assert_eq!(bv1 & bv2, expected);

Required Associated Types§

1.0.0 · Source

type Output

The resulting type after applying the & operator.

Required Methods§

1.0.0 · Source

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

Performs the & operation.

§Examples
assert_eq!(true & false, false);
assert_eq!(true & true, true);
assert_eq!(5u8 & 1u8, 1);
assert_eq!(5u8 & 2u8, 0);

Implementors§

1.0.0 · Source§

impl BitAnd for bool

1.0.0 · Source§

impl BitAnd for i8

1.0.0 · Source§

impl BitAnd for i16

1.0.0 · Source§

impl BitAnd for i32

1.0.0 · Source§

impl BitAnd for i64

1.0.0 · Source§

impl BitAnd for i128

1.0.0 · Source§

impl BitAnd for isize

1.0.0 · Source§

impl BitAnd for u8

1.0.0 · Source§

impl BitAnd for u16

1.0.0 · Source§

impl BitAnd for u32

1.0.0 · Source§

impl BitAnd for u64

1.0.0 · Source§

impl BitAnd for u128

1.0.0 · Source§

impl BitAnd for usize

Source§

impl BitAnd for WasmFeatures

Source§

impl BitAnd for SegmentFlags

Source§

impl BitAnd for SymbolFlags

1.75.0 · Source§

impl BitAnd for Ipv4Addr

1.75.0 · Source§

impl BitAnd for Ipv6Addr

1.74.0 · Source§

impl BitAnd for Saturating<i8>

1.74.0 · Source§

impl BitAnd for Saturating<i16>

1.74.0 · Source§

impl BitAnd for Saturating<i32>

1.74.0 · Source§

impl BitAnd for Saturating<i64>

1.74.0 · Source§

impl BitAnd for Saturating<i128>

1.74.0 · Source§

impl BitAnd for Saturating<isize>

1.74.0 · Source§

impl BitAnd for Saturating<u8>

1.74.0 · Source§

impl BitAnd for Saturating<u16>

1.74.0 · Source§

impl BitAnd for Saturating<u32>

1.74.0 · Source§

impl BitAnd for Saturating<u64>

1.74.0 · Source§

impl BitAnd for Saturating<u128>

1.74.0 · Source§

impl BitAnd for Saturating<usize>

1.0.0 · Source§

impl BitAnd for Wrapping<i8>

1.0.0 · Source§

impl BitAnd for Wrapping<i16>

1.0.0 · Source§

impl BitAnd for Wrapping<i32>

1.0.0 · Source§

impl BitAnd for Wrapping<i64>

1.0.0 · Source§

impl BitAnd for Wrapping<i128>

1.0.0 · Source§

impl BitAnd for Wrapping<isize>

1.0.0 · Source§

impl BitAnd for Wrapping<u8>

1.0.0 · Source§

impl BitAnd for Wrapping<u16>

1.0.0 · Source§

impl BitAnd for Wrapping<u32>

1.0.0 · Source§

impl BitAnd for Wrapping<u64>

1.0.0 · Source§

impl BitAnd for Wrapping<u128>

1.0.0 · Source§

impl BitAnd for Wrapping<usize>

1.0.0 · Source§

impl BitAnd<&bool> for &bool

1.0.0 · Source§

impl BitAnd<&bool> for bool

1.0.0 · Source§

impl BitAnd<&i8> for &i8

1.0.0 · Source§

impl BitAnd<&i8> for i8

1.0.0 · Source§

impl BitAnd<&i16> for &i16

1.0.0 · Source§

impl BitAnd<&i16> for i16

1.0.0 · Source§

impl BitAnd<&i32> for &i32

1.0.0 · Source§

impl BitAnd<&i32> for i32

1.0.0 · Source§

impl BitAnd<&i64> for &i64

1.0.0 · Source§

impl BitAnd<&i64> for i64

1.0.0 · Source§

impl BitAnd<&i128> for &i128

1.0.0 · Source§

impl BitAnd<&i128> for i128

1.0.0 · Source§

impl BitAnd<&isize> for &isize

1.0.0 · Source§

impl BitAnd<&isize> for isize

1.0.0 · Source§

impl BitAnd<&u8> for &u8

1.0.0 · Source§

impl BitAnd<&u8> for u8

1.0.0 · Source§

impl BitAnd<&u16> for &u16

1.0.0 · Source§

impl BitAnd<&u16> for u16

1.0.0 · Source§

impl BitAnd<&u32> for &u32

1.0.0 · Source§

impl BitAnd<&u32> for u32

1.0.0 · Source§

impl BitAnd<&u64> for &u64

1.0.0 · Source§

impl BitAnd<&u64> for u64

1.0.0 · Source§

impl BitAnd<&u128> for &u128

1.0.0 · Source§

impl BitAnd<&u128> for u128

1.0.0 · Source§

impl BitAnd<&usize> for &usize

1.0.0 · Source§

impl BitAnd<&usize> for usize

1.75.0 · Source§

impl BitAnd<&Ipv4Addr> for &Ipv4Addr

1.75.0 · Source§

impl BitAnd<&Ipv4Addr> for Ipv4Addr

1.75.0 · Source§

impl BitAnd<&Ipv6Addr> for &Ipv6Addr

1.75.0 · Source§

impl BitAnd<&Ipv6Addr> for Ipv6Addr

1.74.0 · Source§

impl BitAnd<&Saturating<i8>> for &Saturating<i8>

1.74.0 · Source§

impl BitAnd<&Saturating<i8>> for Saturating<i8>

1.74.0 · Source§

impl BitAnd<&Saturating<i16>> for &Saturating<i16>

1.74.0 · Source§

impl BitAnd<&Saturating<i16>> for Saturating<i16>

1.74.0 · Source§

impl BitAnd<&Saturating<i32>> for &Saturating<i32>

1.74.0 · Source§

impl BitAnd<&Saturating<i32>> for Saturating<i32>

1.74.0 · Source§

impl BitAnd<&Saturating<i64>> for &Saturating<i64>

1.74.0 · Source§

impl BitAnd<&Saturating<i64>> for Saturating<i64>

1.74.0 · Source§

impl BitAnd<&Saturating<i128>> for &Saturating<i128>

1.74.0 · Source§

impl BitAnd<&Saturating<i128>> for Saturating<i128>

1.74.0 · Source§

impl BitAnd<&Saturating<isize>> for &Saturating<isize>

1.74.0 · Source§

impl BitAnd<&Saturating<isize>> for Saturating<isize>

1.74.0 · Source§

impl BitAnd<&Saturating<u8>> for &Saturating<u8>

1.74.0 · Source§

impl BitAnd<&Saturating<u8>> for Saturating<u8>

1.74.0 · Source§

impl BitAnd<&Saturating<u16>> for &Saturating<u16>

1.74.0 · Source§

impl BitAnd<&Saturating<u16>> for Saturating<u16>

1.74.0 · Source§

impl BitAnd<&Saturating<u32>> for &Saturating<u32>

1.74.0 · Source§

impl BitAnd<&Saturating<u32>> for Saturating<u32>

1.74.0 · Source§

impl BitAnd<&Saturating<u64>> for &Saturating<u64>

1.74.0 · Source§

impl BitAnd<&Saturating<u64>> for Saturating<u64>

1.74.0 · Source§

impl BitAnd<&Saturating<u128>> for &Saturating<u128>

1.74.0 · Source§

impl BitAnd<&Saturating<u128>> for Saturating<u128>

1.74.0 · Source§

impl BitAnd<&Saturating<usize>> for &Saturating<usize>

1.74.0 · Source§

impl BitAnd<&Saturating<usize>> for Saturating<usize>

1.14.0 · Source§

impl BitAnd<&Wrapping<i8>> for &Wrapping<i8>

1.14.0 · Source§

impl BitAnd<&Wrapping<i8>> for Wrapping<i8>

1.14.0 · Source§

impl BitAnd<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 · Source§

impl BitAnd<&Wrapping<i16>> for Wrapping<i16>

1.14.0 · Source§

impl BitAnd<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 · Source§

impl BitAnd<&Wrapping<i32>> for Wrapping<i32>

1.14.0 · Source§

impl BitAnd<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 · Source§

impl BitAnd<&Wrapping<i64>> for Wrapping<i64>

1.14.0 · Source§

impl BitAnd<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 · Source§

impl BitAnd<&Wrapping<i128>> for Wrapping<i128>

1.14.0 · Source§

impl BitAnd<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 · Source§

impl BitAnd<&Wrapping<isize>> for Wrapping<isize>

1.14.0 · Source§

impl BitAnd<&Wrapping<u8>> for &Wrapping<u8>

1.14.0 · Source§

impl BitAnd<&Wrapping<u8>> for Wrapping<u8>

1.14.0 · Source§

impl BitAnd<&Wrapping<u16>> for &Wrapping<u16>

1.14.0 · Source§

impl BitAnd<&Wrapping<u16>> for Wrapping<u16>

1.14.0 · Source§

impl BitAnd<&Wrapping<u32>> for &Wrapping<u32>

1.14.0 · Source§

impl BitAnd<&Wrapping<u32>> for Wrapping<u32>

1.14.0 · Source§

impl BitAnd<&Wrapping<u64>> for &Wrapping<u64>

1.14.0 · Source§

impl BitAnd<&Wrapping<u64>> for Wrapping<u64>

1.14.0 · Source§

impl BitAnd<&Wrapping<u128>> for &Wrapping<u128>

1.14.0 · Source§

impl BitAnd<&Wrapping<u128>> for Wrapping<u128>

1.14.0 · Source§

impl BitAnd<&Wrapping<usize>> for &Wrapping<usize>

1.14.0 · Source§

impl BitAnd<&Wrapping<usize>> for Wrapping<usize>

1.75.0 · Source§

impl BitAnd<Ipv4Addr> for &Ipv4Addr

1.75.0 · Source§

impl BitAnd<Ipv6Addr> for &Ipv6Addr

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.74.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

Source§

impl<'a, T> BitAnd for &'a Set<T>
where T: Eq + Hash + Ord + Clone + 'a,

Source§

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

Source§

type Output = Simd<T, N>

1.0.0 · Source§

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

Source§

impl<T, S1, S2> BitAnd<&IndexSet<T, S2>> for &IndexSet<T, S1>
where T: Eq + Hash + Clone, S1: BuildHasher + Default, S2: BuildHasher,

Source§

type Output = IndexSet<T, S1>

1.0.0 · Source§

impl<T, S> BitAnd<&HashSet<T, S>> for &std::collections::hash::set::HashSet<T, S>
where T: Eq + Hash + Clone, S: BuildHasher + Default,

Source§

type Output = HashSet<T, S>

Source§

impl<T, S, A> BitAnd<&HashSet<T, S, A>> for &hashbrown::set::HashSet<T, S, A>
where T: Eq + Hash + Clone, S: BuildHasher + Default, A: Allocator + Default,

Source§

type Output = HashSet<T, S, A>

Source§

impl<T, const N: usize> BitAnd for Mask<T, N>

Source§

type Output = Mask<T, N>

Source§

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

Source§

type Output = Simd<T, N>

Source§

impl<T, const N: usize> BitAnd<bool> for Mask<T, N>

Source§

type Output = Mask<T, N>

Source§

impl<T, const N: usize> BitAnd<Mask<T, N>> for bool

Source§

type Output = Mask<T, N>

Source§

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

Source§

type Output = Simd<T, N>

Source§

impl<const N: usize> BitAnd for Simd<i8, N>

Source§

impl<const N: usize> BitAnd for Simd<i16, N>

Source§

impl<const N: usize> BitAnd for Simd<i32, N>

Source§

impl<const N: usize> BitAnd for Simd<i64, N>

Source§

impl<const N: usize> BitAnd for Simd<isize, N>

Source§

impl<const N: usize> BitAnd for Simd<u8, N>

Source§

impl<const N: usize> BitAnd for Simd<u16, N>

Source§

impl<const N: usize> BitAnd for Simd<u32, N>

Source§

impl<const N: usize> BitAnd for Simd<u64, N>

Source§

impl<const N: usize> BitAnd for Simd<usize, N>

impl BitAnd for Ieee128

impl BitAnd for Ieee16

impl BitAnd for Ieee32

impl BitAnd for Ieee64

impl<F: Flags, R: Into<FlagSet<F>>> BitAnd<R> for FlagSet<F>

impl<'min, L, R, OUT: 'min> BitAnd<MaybeOwned<'min, R>> for MaybeOwned<'min, L>
where L: BitAnd<R, Output = OUT> + BitAnd<&'min R, Output = OUT>, &'min L: BitAnd<R, Output = OUT> + BitAnd<&'min R, Output = OUT>,

impl<'min, L, R, OUT: 'min> BitAnd<MaybeOwnedMut<'min, R>> for MaybeOwnedMut<'min, L>
where L: BitAnd<R, Output = OUT> + BitAnd<&'min R, Output = OUT>, &'min L: BitAnd<R, Output = OUT> + BitAnd<&'min R, Output = OUT>,

impl BitAnd for BigInt

impl BitAnd for BigUint

impl BitAnd<&BigInt> for &BigInt

impl BitAnd<&BigInt> for BigInt

impl BitAnd<&BigUint> for &BigUint

impl BitAnd<BigInt> for &BigInt

impl BitAnd for PRegSet

impl BitAnd for ReadFlags

impl BitAnd for Access

impl BitAnd for AtFlags

impl BitAnd for IFlags

impl BitAnd for Mode

impl BitAnd for OFlags

impl BitAnd for SealFlags

impl BitAnd for DupFlags

impl BitAnd for FdFlags

impl BitAnd for Choice

impl BitAnd for FdFlags

impl BitAnd for Ready

impl BitAnd for FmtSpan

impl BitAnd for B1

impl BitAnd<B0> for B1

impl<Rhs: Bit> BitAnd<Rhs> for B0

impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned> BitAnd<Ur> for UInt<Ul, Bl>
where UInt<Ul, Bl>: PrivateAnd<Ur>, PrivateAndOut<UInt<Ul, Bl>, Ur>: Trim,

impl<Ur: Unsigned> BitAnd<Ur> for UTerm

impl BitAnd for OpenFlags

impl BitAnd for PathFlags

impl BitAnd for OpenFlags

impl BitAnd for PathFlags

impl BitAnd for DirPerms

impl BitAnd for FilePerms

impl<R: Into<FlagSet<Reasons>>> BitAnd<R> for Reasons

impl<O: ByteOrder> BitAnd for I128<O>

impl<O: ByteOrder> BitAnd for I16<O>

impl<O: ByteOrder> BitAnd for I32<O>

impl<O: ByteOrder> BitAnd for I64<O>

impl<O: ByteOrder> BitAnd for Isize<O>

impl<O: ByteOrder> BitAnd for U128<O>

impl<O: ByteOrder> BitAnd for U16<O>

impl<O: ByteOrder> BitAnd for U32<O>

impl<O: ByteOrder> BitAnd for U64<O>

impl<O: ByteOrder> BitAnd for Usize<O>

impl<O: ByteOrder> BitAnd<i128> for I128<O>

impl<O: ByteOrder> BitAnd<i16> for I16<O>

impl<O: ByteOrder> BitAnd<i32> for I32<O>

impl<O: ByteOrder> BitAnd<i64> for I64<O>

impl<O: ByteOrder> BitAnd<isize> for Isize<O>

impl<O: ByteOrder> BitAnd<u128> for U128<O>

impl<O: ByteOrder> BitAnd<u16> for U16<O>

impl<O: ByteOrder> BitAnd<u32> for U32<O>

impl<O: ByteOrder> BitAnd<u64> for U64<O>

impl<O: ByteOrder> BitAnd<usize> for Usize<O>

impl<O: ByteOrder> BitAnd<I128<O>> for i128

impl<O: ByteOrder> BitAnd<I16<O>> for i16

impl<O: ByteOrder> BitAnd<I32<O>> for i32

impl<O: ByteOrder> BitAnd<I64<O>> for i64

impl<O: ByteOrder> BitAnd<Isize<O>> for isize

impl<O: ByteOrder> BitAnd<U128<O>> for u128

impl<O: ByteOrder> BitAnd<U16<O>> for u16

impl<O: ByteOrder> BitAnd<U32<O>> for u32

impl<O: ByteOrder> BitAnd<U64<O>> for u64

impl<O: ByteOrder> BitAnd<Usize<O>> for usize