Trait rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::ops::BitAnd

1.0.0 · source ·
pub trait BitAnd<Rhs = Self> {
    type Output;

    // Required method
    fn bitand(self, rhs: Rhs) -> Self::Output;
}
Available on crate feature mtls only.
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

§

type Output = bool

1.0.0 · source§

impl BitAnd for i8

§

type Output = i8

1.0.0 · source§

impl BitAnd for i16

§

type Output = i16

1.0.0 · source§

impl BitAnd for i32

§

type Output = i32

1.0.0 · source§

impl BitAnd for i64

§

type Output = i64

1.0.0 · source§

impl BitAnd for i128

§

type Output = i128

1.0.0 · source§

impl BitAnd for isize

1.0.0 · source§

impl BitAnd for u8

§

type Output = u8

1.0.0 · source§

impl BitAnd for u16

§

type Output = u16

1.0.0 · source§

impl BitAnd for u32

§

type Output = u32

1.0.0 · source§

impl BitAnd for u64

§

type Output = u64

1.0.0 · source§

impl BitAnd for u128

§

type Output = u128

1.0.0 · source§

impl BitAnd for usize

source§

impl BitAnd for BigInt

source§

impl BitAnd for BigUint

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>

source§

impl BitAnd for CreateFlags

source§

impl BitAnd for WatchFlags

source§

impl BitAnd for Access

source§

impl BitAnd for AtFlags

source§

impl BitAnd for FallocateFlags

source§

impl BitAnd for MemfdFlags

source§

impl BitAnd for Mode

§

type Output = Mode

source§

impl BitAnd for OFlags

source§

impl BitAnd for RenameFlags

source§

impl BitAnd for ResolveFlags

source§

impl BitAnd for SealFlags

source§

impl BitAnd for StatVfsMountFlags

source§

impl BitAnd for StatxFlags

source§

impl BitAnd for DupFlags

source§

impl BitAnd for FdFlags

source§

impl BitAnd for ReadWriteFlags

source§

impl BitAnd for MountFlags

source§

impl BitAnd for MountPropagationFlags

source§

impl BitAnd for UnmountFlags

source§

impl BitAnd for IFlags

source§

impl BitAnd for XattrFlags

source§

impl BitAnd for Choice

source§

impl BitAnd for Ready

source§

impl BitAnd for B1

And with 1 ( 1 & 1 = 1)

§

type Output = B1

1.0.0 · source§

impl BitAnd<&bool> for &bool

§

type Output = <bool as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&bool> for bool

§

type Output = <bool as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i8> for &i8

§

type Output = <i8 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i8> for i8

§

type Output = <i8 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i16> for &i16

§

type Output = <i16 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i16> for i16

§

type Output = <i16 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i32> for &i32

§

type Output = <i32 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i32> for i32

§

type Output = <i32 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i64> for &i64

§

type Output = <i64 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i64> for i64

§

type Output = <i64 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i128> for &i128

§

type Output = <i128 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&i128> for i128

§

type Output = <i128 as BitAnd>::Output

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

§

type Output = <u8 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u8> for u8

§

type Output = <u8 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u16> for &u16

§

type Output = <u16 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u16> for u16

§

type Output = <u16 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u32> for &u32

§

type Output = <u32 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u32> for u32

§

type Output = <u32 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u64> for &u64

§

type Output = <u64 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u64> for u64

§

type Output = <u64 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u128> for &u128

§

type Output = <u128 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&u128> for u128

§

type Output = <u128 as BitAnd>::Output

1.0.0 · source§

impl BitAnd<&usize> for &usize

1.0.0 · source§

impl BitAnd<&usize> for usize

source§

impl BitAnd<&BigInt> for &BigInt

source§

impl BitAnd<&BigInt> for BigInt

source§

impl BitAnd<&BigUint> for &BigUint

source§

impl BitAnd<&BigUint> for BigUint

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>

source§

impl BitAnd<BigInt> for &BigInt

source§

impl BitAnd<BigUint> for &BigUint

1.75.0 · source§

impl BitAnd<Ipv4Addr> for &Ipv4Addr

1.75.0 · source§

impl BitAnd<Ipv6Addr> for &Ipv6Addr

source§

impl BitAnd<B0> for B1

And with 1 ( 1 & 0 = 0)

§

type Output = B0

1.0.0 · source§

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

§

type Output = <bool as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <i8 as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <i16 as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <i32 as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <i64 as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <i128 as BitAnd>::Output

1.0.0 · source§

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

1.0.0 · source§

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

§

type Output = <u8 as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <u16 as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <u32 as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <u64 as BitAnd>::Output

1.0.0 · source§

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

§

type Output = <u128 as BitAnd>::Output

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<'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,

§

type Output = Simd<T, N>

source§

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

§

type Output = I16<O>

source§

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

§

type Output = I32<O>

source§

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

§

type Output = I64<O>

source§

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

§

type Output = I128<O>

source§

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

§

type Output = U16<O>

source§

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

§

type Output = U32<O>

source§

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

§

type Output = U64<O>

source§

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

§

type Output = U128<O>

source§

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

And with 0 ( 0 & B = 0)

§

type Output = B0

source§

impl<T> BitAnd for Number<T>

§

type Output = Number<<T as BitAnd>::Output>

1.0.0 · source§

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

§

type Output = BTreeSet<T, A>

source§

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

§

type Output = IndexSet<T, S1>

1.0.0 · source§

impl<T, S> BitAnd<&HashSet<T, S>> for &rocket::mtls::x509::der_parser::asn1_rs::nom::lib::std::collections::HashSet<T, S>
where T: Eq + Hash + Clone, S: BuildHasher + Default,

§

type Output = HashSet<T, S>

source§

impl<T, S> BitAnd<&AHashSet<T, S>> for &AHashSet<T, S>
where T: Eq + Hash + Clone, S: BuildHasher + Default,

§

type Output = AHashSet<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,

§

type Output = HashSet<T, S>

source§

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

§

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,

§

type Output = Simd<T, N>

source§

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

§

type Output = Mask<T, N>

source§

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

§

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,

§

type Output = Simd<T, N>

source§

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

Anding unsigned integers. We use our PrivateAnd operator and then Trim the output.

§

type Output = <<UInt<Ul, Bl> as PrivateAnd<Ur>>::Output as Trim>::Output

source§

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

0 & X = 0

source§

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

§

type Output = Simd<i8, N>

source§

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

§

type Output = Simd<i16, N>

source§

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

§

type Output = Simd<i32, N>

source§

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

§

type Output = Simd<i64, N>

source§

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

§

type Output = Simd<isize, N>

source§

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

§

type Output = Simd<u8, N>

source§

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

§

type Output = Simd<u16, N>

source§

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

§

type Output = Simd<u32, N>

source§

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

§

type Output = Simd<u64, N>

source§

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

§

type Output = Simd<usize, N>