pub trait BitAnd<Rhs = Self> {
type Output;
// Required method
fn bitand(self, rhs: Rhs) -> Self::Output;
}Available on crate features
crypto and std 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§
Required Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
§impl BitAnd for InterfaceFlags
impl BitAnd for InterfaceFlags
type Output = InterfaceFlags
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<i16>
impl BitAnd for Saturating<i16>
type Output = Saturating<i16>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<i32>
impl BitAnd for Saturating<i32>
type Output = Saturating<i32>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<i64>
impl BitAnd for Saturating<i64>
type Output = Saturating<i64>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<i128>
impl BitAnd for Saturating<i128>
type Output = Saturating<i128>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<isize>
impl BitAnd for Saturating<isize>
type Output = Saturating<isize>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<u16>
impl BitAnd for Saturating<u16>
type Output = Saturating<u16>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<u32>
impl BitAnd for Saturating<u32>
type Output = Saturating<u32>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<u64>
impl BitAnd for Saturating<u64>
type Output = Saturating<u64>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<u128>
impl BitAnd for Saturating<u128>
type Output = Saturating<u128>
1.74.0 (const: unstable) · Source§impl BitAnd for Saturating<usize>
impl BitAnd for Saturating<usize>
type Output = Saturating<usize>
§impl BitAnd for ShutdownState
impl BitAnd for ShutdownState
type Output = ShutdownState
§impl BitAnd for SslOptions
impl BitAnd for SslOptions
type Output = SslOptions
§impl BitAnd for SslSessionCacheMode
impl BitAnd for SslSessionCacheMode
type Output = SslSessionCacheMode
§impl BitAnd for SslVerifyMode
impl BitAnd for SslVerifyMode
type Output = SslVerifyMode
§impl BitAnd for TraceFlags
impl BitAnd for TraceFlags
type Output = TraceFlags
§impl BitAnd for X509CheckFlags
impl BitAnd for X509CheckFlags
type Output = X509CheckFlags
§impl BitAnd for X509VerifyFlags
impl BitAnd for X509VerifyFlags
type Output = X509VerifyFlags
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i8>> for &Saturating<i8>
impl BitAnd<&Saturating<i8>> for &Saturating<i8>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i8>> for Saturating<i8>
impl BitAnd<&Saturating<i8>> for Saturating<i8>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i16>> for &Saturating<i16>
impl BitAnd<&Saturating<i16>> for &Saturating<i16>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i16>> for Saturating<i16>
impl BitAnd<&Saturating<i16>> for Saturating<i16>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i32>> for &Saturating<i32>
impl BitAnd<&Saturating<i32>> for &Saturating<i32>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i32>> for Saturating<i32>
impl BitAnd<&Saturating<i32>> for Saturating<i32>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i64>> for &Saturating<i64>
impl BitAnd<&Saturating<i64>> for &Saturating<i64>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i64>> for Saturating<i64>
impl BitAnd<&Saturating<i64>> for Saturating<i64>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i128>> for &Saturating<i128>
impl BitAnd<&Saturating<i128>> for &Saturating<i128>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<i128>> for Saturating<i128>
impl BitAnd<&Saturating<i128>> for Saturating<i128>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<isize>> for &Saturating<isize>
impl BitAnd<&Saturating<isize>> for &Saturating<isize>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<isize>> for Saturating<isize>
impl BitAnd<&Saturating<isize>> for Saturating<isize>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u8>> for &Saturating<u8>
impl BitAnd<&Saturating<u8>> for &Saturating<u8>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u8>> for Saturating<u8>
impl BitAnd<&Saturating<u8>> for Saturating<u8>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u16>> for &Saturating<u16>
impl BitAnd<&Saturating<u16>> for &Saturating<u16>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u16>> for Saturating<u16>
impl BitAnd<&Saturating<u16>> for Saturating<u16>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u32>> for &Saturating<u32>
impl BitAnd<&Saturating<u32>> for &Saturating<u32>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u32>> for Saturating<u32>
impl BitAnd<&Saturating<u32>> for Saturating<u32>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u64>> for &Saturating<u64>
impl BitAnd<&Saturating<u64>> for &Saturating<u64>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u64>> for Saturating<u64>
impl BitAnd<&Saturating<u64>> for Saturating<u64>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u128>> for &Saturating<u128>
impl BitAnd<&Saturating<u128>> for &Saturating<u128>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<u128>> for Saturating<u128>
impl BitAnd<&Saturating<u128>> for Saturating<u128>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<usize>> for &Saturating<usize>
impl BitAnd<&Saturating<usize>> for &Saturating<usize>
1.74.0 (const: unstable) · Source§impl BitAnd<&Saturating<usize>> for Saturating<usize>
impl BitAnd<&Saturating<usize>> for Saturating<usize>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<i8>> for &Saturating<i8>
impl BitAnd<Saturating<i8>> for &Saturating<i8>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<i16>> for &Saturating<i16>
impl BitAnd<Saturating<i16>> for &Saturating<i16>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<i32>> for &Saturating<i32>
impl BitAnd<Saturating<i32>> for &Saturating<i32>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<i64>> for &Saturating<i64>
impl BitAnd<Saturating<i64>> for &Saturating<i64>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<i128>> for &Saturating<i128>
impl BitAnd<Saturating<i128>> for &Saturating<i128>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<isize>> for &Saturating<isize>
impl BitAnd<Saturating<isize>> for &Saturating<isize>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<u8>> for &Saturating<u8>
impl BitAnd<Saturating<u8>> for &Saturating<u8>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<u16>> for &Saturating<u16>
impl BitAnd<Saturating<u16>> for &Saturating<u16>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<u32>> for &Saturating<u32>
impl BitAnd<Saturating<u32>> for &Saturating<u32>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<u64>> for &Saturating<u64>
impl BitAnd<Saturating<u64>> for &Saturating<u64>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<u128>> for &Saturating<u128>
impl BitAnd<Saturating<u128>> for &Saturating<u128>
1.74.0 (const: unstable) · Source§impl BitAnd<Saturating<usize>> for &Saturating<usize>
impl BitAnd<Saturating<usize>> for &Saturating<usize>
1.0.0 · Source§impl<T, S> BitAnd<&HashSet<T, S>> for &rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::collections::HashSet<T, S>
impl<T, S> BitAnd<&HashSet<T, S>> for &rama::crypto::dep::x509_parser::prelude::asn1_rs::nom::lib::std::collections::HashSet<T, S>
Source§impl<Ul, Bl, Ur> BitAnd<Ur> for UInt<Ul, Bl>
Anding unsigned integers.
We use our PrivateAnd operator and then Trim the output.
impl<Ul, Bl, Ur> BitAnd<Ur> for UInt<Ul, Bl>
Anding unsigned integers.
We use our PrivateAnd operator and then Trim the output.