BitAndAssign

Trait BitAndAssign 

1.8.0 (const: unstable) · Source
pub trait BitAndAssign<Rhs = Self> {
    // Required method
    fn bitand_assign(&mut self, rhs: Rhs);
}
Expand description

The bitwise AND assignment operator &=.

§Examples

An implementation of BitAndAssign that lifts the &= operator to a wrapper around bool.

use std::ops::BitAndAssign;

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

impl BitAndAssign for Scalar {
    // rhs is the "right-hand side" of the expression `a &= b`
    fn bitand_assign(&mut self, rhs: Self) {
        *self = Self(self.0 & rhs.0)
    }
}

let mut scalar = Scalar(true);
scalar &= Scalar(true);
assert_eq!(scalar, Scalar(true));

let mut scalar = Scalar(true);
scalar &= Scalar(false);
assert_eq!(scalar, Scalar(false));

let mut scalar = Scalar(false);
scalar &= Scalar(true);
assert_eq!(scalar, Scalar(false));

let mut scalar = Scalar(false);
scalar &= Scalar(false);
assert_eq!(scalar, Scalar(false));

Here, the BitAndAssign trait is implemented for a wrapper around Vec<bool>.

use std::ops::BitAndAssign;

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

impl BitAndAssign for BooleanVector {
    // `rhs` is the "right-hand side" of the expression `a &= b`.
    fn bitand_assign(&mut self, rhs: Self) {
        assert_eq!(self.0.len(), rhs.0.len());
        *self = Self(
            self.0
                .iter()
                .zip(rhs.0.iter())
                .map(|(x, y)| *x & *y)
                .collect()
        );
    }
}

let mut bv = BooleanVector(vec![true, true, false, false]);
bv &= BooleanVector(vec![true, false, true, false]);
let expected = BooleanVector(vec![true, false, false, false]);
assert_eq!(bv, expected);

Required Methods§

1.8.0 · Source

fn bitand_assign(&mut self, rhs: Rhs)

Performs the &= operation.

§Examples
let mut x = true;
x &= false;
assert_eq!(x, false);

let mut x = true;
x &= true;
assert_eq!(x, true);

let mut x: u8 = 5;
x &= 1;
assert_eq!(x, 1);

let mut x: u8 = 5;
x &= 2;
assert_eq!(x, 0);

Implementors§

1.8.0 (const: unstable) · Source§

impl BitAndAssign for bool

1.8.0 (const: unstable) · Source§

impl BitAndAssign for i8

1.8.0 (const: unstable) · Source§

impl BitAndAssign for i16

1.8.0 (const: unstable) · Source§

impl BitAndAssign for i32

1.8.0 (const: unstable) · Source§

impl BitAndAssign for i64

1.8.0 (const: unstable) · Source§

impl BitAndAssign for i128

1.8.0 (const: unstable) · Source§

impl BitAndAssign for isize

1.8.0 (const: unstable) · Source§

impl BitAndAssign for u8

1.8.0 (const: unstable) · Source§

impl BitAndAssign for u16

1.8.0 (const: unstable) · Source§

impl BitAndAssign for u32

1.8.0 (const: unstable) · Source§

impl BitAndAssign for u64

1.8.0 (const: unstable) · Source§

impl BitAndAssign for u128

1.8.0 (const: unstable) · Source§

impl BitAndAssign for usize

Source§

impl BitAndAssign for Capabilities

Source§

impl BitAndAssign for PtraceAccessMode

Source§

impl BitAndAssign for SecureBits

Source§

impl BitAndAssign for Access

Source§

impl BitAndAssign for FileMode

Source§

impl BitAndAssign for InotifyMask

Source§

impl BitAndAssign for IptIpFlagsV4

Source§

impl BitAndAssign for IptIpFlagsV6

Source§

impl BitAndAssign for IptIpInverseFlags

Source§

impl BitAndAssign for NfIpHooks

Source§

impl BitAndAssign for NfNatRangeFlags

Source§

impl BitAndAssign for XtTcpInverseFlags

Source§

impl BitAndAssign for XtUdpInverseFlags

Source§

impl BitAndAssign for MountFlags

Source§

impl BitAndAssign for starnix_uapi::open_flags::OpenFlags

Source§

impl BitAndAssign for PersonalityFlags

Source§

impl BitAndAssign for SealFlags

Source§

impl BitAndAssign for UnmountFlags

Source§

impl BitAndAssign for FdEvents

Source§

impl BitAndAssign for ResolveFlags

1.75.0 (const: unstable) · Source§

impl BitAndAssign for Ipv4Addr

1.75.0 (const: unstable) · Source§

impl BitAndAssign for Ipv6Addr

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl BitAndAssign for Saturating<usize>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<i8>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<i16>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<i32>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<i64>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<i128>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<isize>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<u8>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<u16>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<u32>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<u64>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<u128>

1.8.0 (const: unstable) · Source§

impl BitAndAssign for Wrapping<usize>

§

impl BitAndAssign for AddressTaggingFeatureFlags

§

impl BitAndAssign for AllocateMode

§

impl BitAndAssign for AtRestFlags

§

impl BitAndAssign for BtiOptions

§

impl BitAndAssign for ClockOpts

§

impl BitAndAssign for ConfigMutability

§

impl BitAndAssign for ConfigMutability

§

impl BitAndAssign for CpuFeatureFlags

§

impl BitAndAssign for DebugLogOpts

§

impl BitAndAssign for DynamicFlags

§

impl BitAndAssign for ExceptionChannelOptions

§

impl BitAndAssign for FileSignal

§

impl BitAndAssign for Flags

§

impl BitAndAssign for IobAccess

§

impl BitAndAssign for JobCriticalOptions

§

impl BitAndAssign for MemoryStallKind

§

impl BitAndAssign for ModeType

§

impl BitAndAssign for NodeAttributeFlags

§

impl BitAndAssign for NodeAttributesQuery

§

impl BitAndAssign for NodeProtocolKinds

§

impl BitAndAssign for OpenFlags

§

impl BitAndAssign for Operations

§

impl BitAndAssign for PagerOptions

§

impl BitAndAssign for PagerWritebackBeginOptions

§

impl BitAndAssign for PortOptions

§

impl BitAndAssign for ProcessInfoFlags

§

impl BitAndAssign for ProcessOptions

§

impl BitAndAssign for RaiseExceptionOptions

§

impl BitAndAssign for ResourceFlag

§

impl BitAndAssign for ResourceKind

§

impl BitAndAssign for Rights

§

impl BitAndAssign for Signals

§

impl BitAndAssign for SocketOpts

§

impl BitAndAssign for SocketReadOpts

§

impl BitAndAssign for SocketWriteOpts

§

impl BitAndAssign for StreamOptions

§

impl BitAndAssign for StreamReadOptions

§

impl BitAndAssign for StreamWriteOptions

§

impl BitAndAssign for TransferDataOptions

§

impl BitAndAssign for UnlinkFlags

§

impl BitAndAssign for VirtualMemoryFeatureFlags

§

impl BitAndAssign for VmarFlags

§

impl BitAndAssign for VmarFlagsExtended

§

impl BitAndAssign for VmoChildOptions

§

impl BitAndAssign for VmoFlags

§

impl BitAndAssign for VmoInfoFlags

§

impl BitAndAssign for VmoOptions

§

impl BitAndAssign for WaitAsyncOpts

§

impl BitAndAssign for WatchMask

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&bool> for bool

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i8> for i8

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&i8> for Saturating<i8>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i8> for Wrapping<i8>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i16> for i16

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&i16> for Saturating<i16>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i16> for Wrapping<i16>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i32> for i32

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&i32> for Saturating<i32>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i32> for Wrapping<i32>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i64> for i64

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&i64> for Saturating<i64>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i64> for Wrapping<i64>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i128> for i128

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&i128> for Saturating<i128>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&i128> for Wrapping<i128>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&isize> for isize

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&isize> for Saturating<isize>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&isize> for Wrapping<isize>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u8> for u8

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&u8> for Saturating<u8>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u8> for Wrapping<u8>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u16> for u16

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&u16> for Saturating<u16>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u16> for Wrapping<u16>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u32> for u32

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&u32> for Saturating<u32>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u32> for Wrapping<u32>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u64> for u64

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&u64> for Saturating<u64>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u64> for Wrapping<u64>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u128> for u128

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&u128> for Saturating<u128>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&u128> for Wrapping<u128>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&usize> for usize

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&usize> for Saturating<usize>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&usize> for Wrapping<usize>

1.75.0 (const: unstable) · Source§

impl BitAndAssign<&Ipv4Addr> for Ipv4Addr

1.75.0 (const: unstable) · Source§

impl BitAndAssign<&Ipv6Addr> for Ipv6Addr

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<i8>> for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<i16>> for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<i32>> for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<i64>> for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<i128>> for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<isize>> for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<u8>> for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<u16>> for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<u32>> for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<u64>> for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<u128>> for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<&Saturating<usize>> for Saturating<usize>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<i8>> for Wrapping<i8>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<i16>> for Wrapping<i16>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<i32>> for Wrapping<i32>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<i64>> for Wrapping<i64>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<i128>> for Wrapping<i128>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<isize>> for Wrapping<isize>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<u8>> for Wrapping<u8>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<u16>> for Wrapping<u16>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<u32>> for Wrapping<u32>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<u64>> for Wrapping<u64>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<u128>> for Wrapping<u128>

1.22.0 (const: unstable) · Source§

impl BitAndAssign<&Wrapping<usize>> for Wrapping<usize>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<i8> for Saturating<i8>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<i8> for Wrapping<i8>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<i16> for Saturating<i16>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<i16> for Wrapping<i16>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<i32> for Saturating<i32>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<i32> for Wrapping<i32>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<i64> for Saturating<i64>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<i64> for Wrapping<i64>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<i128> for Saturating<i128>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<i128> for Wrapping<i128>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<isize> for Saturating<isize>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<isize> for Wrapping<isize>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<u8> for Saturating<u8>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<u8> for Wrapping<u8>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<u16> for Saturating<u16>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<u16> for Wrapping<u16>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<u32> for Saturating<u32>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<u32> for Wrapping<u32>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<u64> for Saturating<u64>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<u64> for Wrapping<u64>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<u128> for Saturating<u128>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<u128> for Wrapping<u128>

1.74.0 (const: unstable) · Source§

impl BitAndAssign<usize> for Saturating<usize>

1.60.0 (const: unstable) · Source§

impl BitAndAssign<usize> for Wrapping<usize>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<O> BitAndAssign for Isize<O>
where O: ByteOrder,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<O> BitAndAssign for Usize<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<i16> for I16<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<i32> for I32<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<i64> for I64<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<i128> for I128<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<isize> for Isize<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<u16> for U16<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<u32> for U32<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<u64> for U64<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<u128> for U128<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<usize> for Usize<O>
where O: ByteOrder,

Source§

impl<O> BitAndAssign<I16<O>> for i16
where O: ByteOrder,

Source§

impl<O> BitAndAssign<I32<O>> for i32
where O: ByteOrder,

Source§

impl<O> BitAndAssign<I64<O>> for i64
where O: ByteOrder,

Source§

impl<O> BitAndAssign<I128<O>> for i128
where O: ByteOrder,

Source§

impl<O> BitAndAssign<Isize<O>> for isize
where O: ByteOrder,

Source§

impl<O> BitAndAssign<U16<O>> for u16
where O: ByteOrder,

Source§

impl<O> BitAndAssign<U32<O>> for u32
where O: ByteOrder,

Source§

impl<O> BitAndAssign<U64<O>> for u64
where O: ByteOrder,

Source§

impl<O> BitAndAssign<U128<O>> for u128
where O: ByteOrder,

Source§

impl<O> BitAndAssign<Usize<O>> for usize
where O: ByteOrder,

Source§

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

Source§

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

Source§

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