Trait core::ops::BitAnd 1.0.0
[−]
[src]
pub trait BitAnd<RHS = Self> {
type Output;
fn bitand(self, rhs: RHS) -> Self::Output;
}The BitAnd trait is used to specify the functionality of &.
Examples
In this example, the BitAnd trait is implemented for a BooleanVector
struct.
use std::ops::BitAnd; #[derive(Debug)] struct BooleanVector { value: Vec<bool>, }; impl BitAnd for BooleanVector { type Output = Self; fn bitand(self, rhs: Self) -> Self { BooleanVector { value: self.value .iter() .zip(rhs.value.iter()) .map(|(x, y)| *x && *y) .collect(), } } } impl PartialEq for BooleanVector { fn eq(&self, other: &Self) -> bool { self.value == other.value } } let bv1 = BooleanVector { value: vec![true, true, false, false] }; let bv2 = BooleanVector { value: vec![true, false, true, false] }; let expected = BooleanVector { value: vec![true, false, false, false] }; assert_eq!(bv1 & bv2, expected);
Associated Types
type Output
The resulting type after applying the & operator
Required Methods
fn bitand(self, rhs: RHS) -> Self::Output
The method for the & operator
Implementors
impl BitAnd for Wrapping<usize>impl BitAnd for Wrapping<u8>impl BitAnd for Wrapping<u16>impl BitAnd for Wrapping<u32>impl BitAnd for Wrapping<u64>impl BitAnd for Wrapping<isize>impl BitAnd for Wrapping<i8>impl BitAnd for Wrapping<i16>impl BitAnd for Wrapping<i32>impl BitAnd for Wrapping<i64>impl BitAnd for boolimpl<'a> BitAnd<bool> for &'a boolimpl<'a> BitAnd<&'a bool> for boolimpl<'a, 'b> BitAnd<&'a bool> for &'b boolimpl BitAnd for usizeimpl<'a> BitAnd<usize> for &'a usizeimpl<'a> BitAnd<&'a usize> for usizeimpl<'a, 'b> BitAnd<&'a usize> for &'b usizeimpl BitAnd for u8impl<'a> BitAnd<u8> for &'a u8impl<'a> BitAnd<&'a u8> for u8impl<'a, 'b> BitAnd<&'a u8> for &'b u8impl BitAnd for u16impl<'a> BitAnd<u16> for &'a u16impl<'a> BitAnd<&'a u16> for u16impl<'a, 'b> BitAnd<&'a u16> for &'b u16impl BitAnd for u32impl<'a> BitAnd<u32> for &'a u32impl<'a> BitAnd<&'a u32> for u32impl<'a, 'b> BitAnd<&'a u32> for &'b u32impl BitAnd for u64impl<'a> BitAnd<u64> for &'a u64impl<'a> BitAnd<&'a u64> for u64impl<'a, 'b> BitAnd<&'a u64> for &'b u64impl BitAnd for isizeimpl<'a> BitAnd<isize> for &'a isizeimpl<'a> BitAnd<&'a isize> for isizeimpl<'a, 'b> BitAnd<&'a isize> for &'b isizeimpl BitAnd for i8impl<'a> BitAnd<i8> for &'a i8impl<'a> BitAnd<&'a i8> for i8impl<'a, 'b> BitAnd<&'a i8> for &'b i8impl BitAnd for i16impl<'a> BitAnd<i16> for &'a i16impl<'a> BitAnd<&'a i16> for i16impl<'a, 'b> BitAnd<&'a i16> for &'b i16impl BitAnd for i32impl<'a> BitAnd<i32> for &'a i32impl<'a> BitAnd<&'a i32> for i32impl<'a, 'b> BitAnd<&'a i32> for &'b i32impl BitAnd for i64impl<'a> BitAnd<i64> for &'a i64impl<'a> BitAnd<&'a i64> for i64impl<'a, 'b> BitAnd<&'a i64> for &'b i64