Trait BitAndAssign

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

core The bitwise AND assignment operator &=.

Re-exported from core::ops:: .


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 · Source§

impl BitAndAssign for bool

1.8.0 · Source§

impl BitAndAssign for i8

1.8.0 · Source§

impl BitAndAssign for i16

1.8.0 · Source§

impl BitAndAssign for i32

1.8.0 · Source§

impl BitAndAssign for i64

1.8.0 · Source§

impl BitAndAssign for i128

1.8.0 · Source§

impl BitAndAssign for isize

1.8.0 · Source§

impl BitAndAssign for u8

1.8.0 · Source§

impl BitAndAssign for u16

1.8.0 · Source§

impl BitAndAssign for u32

1.8.0 · Source§

impl BitAndAssign for u64

1.8.0 · Source§

impl BitAndAssign for u128

1.8.0 · Source§

impl BitAndAssign for usize

§

impl BitAndAssign for KeyEventState

§

impl BitAndAssign for KeyModifiers

§

impl BitAndAssign for KeyboardEnhancementFlags

§

impl BitAndAssign for FileAccess

§

impl BitAndAssign for Root

§

impl BitAndAssign for FileChooserType

§

impl BitAndAssign for FileDialogOptions

§

impl BitAndAssign for LineStyle

§

impl BitAndAssign for Align

§

impl BitAndAssign for CallbackTrigger

§

impl BitAndAssign for Damage

§

impl BitAndAssign for devela::_dep::fltk::enums::Mode

§

impl BitAndAssign for Shortcut

§

impl BitAndAssign for GridAlign

§

impl BitAndAssign for AnimGifImageFlags

§

impl BitAndAssign for MenuFlag

§

impl BitAndAssign for Attrib

§

impl BitAndAssign for CharFlags

§

impl BitAndAssign for OutFlags

§

impl BitAndAssign for devela::_dep::rustix::event::epoll::CreateFlags

§

impl BitAndAssign for EventfdFlags

§

impl BitAndAssign for PollFlags

§

impl BitAndAssign for devela::_dep::rustix::fs::inotify::CreateFlags

§

impl BitAndAssign for ReadFlags

§

impl BitAndAssign for WatchFlags

§

impl BitAndAssign for Access

§

impl BitAndAssign for AtFlags

§

impl BitAndAssign for FallocateFlags

§

impl BitAndAssign for FdFlags

§

impl BitAndAssign for IFlags

§

impl BitAndAssign for MemfdFlags

§

impl BitAndAssign for devela::_dep::rustix::fs::Mode

§

impl BitAndAssign for MountFlags

§

impl BitAndAssign for MountPropagationFlags

§

impl BitAndAssign for OFlags

§

impl BitAndAssign for RenameFlags

§

impl BitAndAssign for ResolveFlags

§

impl BitAndAssign for SealFlags

§

impl BitAndAssign for StatVfsMountFlags

§

impl BitAndAssign for StatxFlags

§

impl BitAndAssign for UnmountFlags

§

impl BitAndAssign for XattrFlags

§

impl BitAndAssign for DupFlags

§

impl BitAndAssign for ReadWriteFlags

§

impl BitAndAssign for EventFlags

§

impl BitAndAssign for IoringAcceptFlags

§

impl BitAndAssign for IoringAsyncCancelFlags

§

impl BitAndAssign for IoringCqFlags

§

impl BitAndAssign for IoringCqeFlags

§

impl BitAndAssign for IoringEnterFlags

§

impl BitAndAssign for IoringFeatureFlags

§

impl BitAndAssign for IoringFsyncFlags

§

impl BitAndAssign for IoringMsgringFlags

§

impl BitAndAssign for IoringOpFlags

§

impl BitAndAssign for IoringPollFlags

§

impl BitAndAssign for IoringRecvFlags

§

impl BitAndAssign for IoringRegisterFlags

§

impl BitAndAssign for IoringRsrcFlags

§

impl BitAndAssign for IoringSendFlags

§

impl BitAndAssign for IoringSetupFlags

§

impl BitAndAssign for IoringSqFlags

§

impl BitAndAssign for IoringSqeFlags

§

impl BitAndAssign for IoringTimeoutFlags

§

impl BitAndAssign for RecvFlags

§

impl BitAndAssign for RecvmsgOutFlags

§

impl BitAndAssign for SendFlags

§

impl BitAndAssign for SocketFlags

§

impl BitAndAssign for devela::_dep::rustix::io_uring::SpliceFlags

§

impl BitAndAssign for MapFlags

§

impl BitAndAssign for MlockAllFlags

§

impl BitAndAssign for MlockFlags

§

impl BitAndAssign for MprotectFlags

§

impl BitAndAssign for MremapFlags

§

impl BitAndAssign for MsyncFlags

§

impl BitAndAssign for ProtFlags

§

impl BitAndAssign for UserfaultfdFlags

§

impl BitAndAssign for FsMountFlags

§

impl BitAndAssign for FsOpenFlags

§

impl BitAndAssign for FsPickFlags

§

impl BitAndAssign for MountAttrFlags

§

impl BitAndAssign for MoveMountFlags

§

impl BitAndAssign for OpenTreeFlags

§

impl BitAndAssign for SockaddrXdpFlags

§

impl BitAndAssign for XdpDescOptions

§

impl BitAndAssign for XdpOptionsFlags

§

impl BitAndAssign for XdpRingFlags

§

impl BitAndAssign for XdpUmemRegFlags

§

impl BitAndAssign for PipeFlags

§

impl BitAndAssign for devela::_dep::rustix::pipe::SpliceFlags

§

impl BitAndAssign for FloatingPointEmulationControl

§

impl BitAndAssign for FloatingPointExceptionMode

§

impl BitAndAssign for MembarrierQuery

§

impl BitAndAssign for PidfdFlags

§

impl BitAndAssign for PidfdGetfdFlags

§

impl BitAndAssign for SpeculationFeatureControl

§

impl BitAndAssign for SpeculationFeatureState

§

impl BitAndAssign for UnalignedAccessControl

§

impl BitAndAssign for WaitOptions

§

impl BitAndAssign for WaitidOptions

§

impl BitAndAssign for OpenptFlags

§

impl BitAndAssign for GetRandomFlags

§

impl BitAndAssign for ShmOFlags

§

impl BitAndAssign for ControlModes

§

impl BitAndAssign for InputModes

§

impl BitAndAssign for LocalModes

§

impl BitAndAssign for OutputModes

§

impl BitAndAssign for CapabilitiesSecureBits

§

impl BitAndAssign for CapabilityFlags

§

impl BitAndAssign for devela::_dep::rustix::thread::FutexFlags

§

impl BitAndAssign for TaggedAddressMode

§

impl BitAndAssign for ThreadNameSpaceType

§

impl BitAndAssign for UnshareFlags

§

impl BitAndAssign for TimerfdFlags

§

impl BitAndAssign for TimerfdTimerFlags

§

impl BitAndAssign for devela::_dep::sdl2::image::InitFlag

§

impl BitAndAssign for devela::_dep::sdl2::keyboard::Mod

§

impl BitAndAssign for devela::_dep::sdl2::messagebox::MessageBoxButtonFlag

§

impl BitAndAssign for devela::_dep::sdl2::messagebox::MessageBoxFlag

§

impl BitAndAssign for devela::_dep::sdl2::mixer::InitFlag

§

impl BitAndAssign for FontStyle

§

impl BitAndAssign for GlobFlags

§

impl BitAndAssign for devela::_dep::sdl3::keyboard::Mod

§

impl BitAndAssign for devela::_dep::sdl3::messagebox::MessageBoxButtonFlag

§

impl BitAndAssign for devela::_dep::sdl3::messagebox::MessageBoxFlag

§

impl BitAndAssign for Channels

§

impl BitAndAssign for f32x4

§

impl BitAndAssign for f32x8

§

impl BitAndAssign for f64x2

§

impl BitAndAssign for f64x4

§

impl BitAndAssign for i8x16

§

impl BitAndAssign for i8x32

§

impl BitAndAssign for i16x8

§

impl BitAndAssign for i16x16

§

impl BitAndAssign for i32x4

§

impl BitAndAssign for i32x8

§

impl BitAndAssign for i64x2

§

impl BitAndAssign for u8x16

§

impl BitAndAssign for u16x8

§

impl BitAndAssign for u16x16

§

impl BitAndAssign for u32x4

§

impl BitAndAssign for u32x8

§

impl BitAndAssign for u64x2

§

impl BitAndAssign for u64x4

Source§

impl BitAndAssign for BVec2

Source§

impl BitAndAssign for BVec3

Source§

impl BitAndAssign for BVec4

Source§

impl BitAndAssign for BVec3A

Source§

impl BitAndAssign for BVec4A

Source§

impl BitAndAssign for Choice

1.75.0 · Source§

impl BitAndAssign for Ipv4Addr

1.75.0 · Source§

impl BitAndAssign for Ipv6Addr

1.74.0 · Source§

impl BitAndAssign for Saturating<i8>

1.74.0 · Source§

impl BitAndAssign for Saturating<i16>

1.74.0 · Source§

impl BitAndAssign for Saturating<i32>

1.74.0 · Source§

impl BitAndAssign for Saturating<i64>

1.74.0 · Source§

impl BitAndAssign for Saturating<i128>

1.74.0 · Source§

impl BitAndAssign for Saturating<isize>

1.74.0 · Source§

impl BitAndAssign for Saturating<u8>

1.74.0 · Source§

impl BitAndAssign for Saturating<u16>

1.74.0 · Source§

impl BitAndAssign for Saturating<u32>

1.74.0 · Source§

impl BitAndAssign for Saturating<u64>

1.74.0 · Source§

impl BitAndAssign for Saturating<u128>

1.74.0 · Source§

impl BitAndAssign for Saturating<usize>

1.8.0 · Source§

impl BitAndAssign for Wrapping<i8>

1.8.0 · Source§

impl BitAndAssign for Wrapping<i16>

1.8.0 · Source§

impl BitAndAssign for Wrapping<i32>

1.8.0 · Source§

impl BitAndAssign for Wrapping<i64>

1.8.0 · Source§

impl BitAndAssign for Wrapping<i128>

1.8.0 · Source§

impl BitAndAssign for Wrapping<isize>

1.8.0 · Source§

impl BitAndAssign for Wrapping<u8>

1.8.0 · Source§

impl BitAndAssign for Wrapping<u16>

1.8.0 · Source§

impl BitAndAssign for Wrapping<u32>

1.8.0 · Source§

impl BitAndAssign for Wrapping<u64>

1.8.0 · Source§

impl BitAndAssign for Wrapping<u128>

1.8.0 · Source§

impl BitAndAssign for Wrapping<usize>

§

impl BitAndAssign for m128

§

impl BitAndAssign for m128d

§

impl BitAndAssign for m128i

§

impl BitAndAssign for m256

§

impl BitAndAssign for m256d

§

impl BitAndAssign for m256i

§

impl BitAndAssign for EfdFlags

§

impl BitAndAssign for EpollCreateFlags

§

impl BitAndAssign for EpollFlags

§

impl BitAndAssign for EventMask

§

impl BitAndAssign for Flags

§

impl BitAndAssign for PortCap

§

impl BitAndAssign for PortType

§

impl BitAndAssign for Remove

§

impl BitAndAssign for Transformations

§

impl BitAndAssign for WatchMask

1.22.0 · Source§

impl BitAndAssign<&bool> for bool

1.22.0 · Source§

impl BitAndAssign<&i8> for i8

1.22.0 · Source§

impl BitAndAssign<&i8> for Saturating<i8>

1.22.0 · Source§

impl BitAndAssign<&i8> for Wrapping<i8>

1.22.0 · Source§

impl BitAndAssign<&i16> for i16

1.22.0 · Source§

impl BitAndAssign<&i16> for Saturating<i16>

1.22.0 · Source§

impl BitAndAssign<&i16> for Wrapping<i16>

1.22.0 · Source§

impl BitAndAssign<&i32> for i32

1.22.0 · Source§

impl BitAndAssign<&i32> for Saturating<i32>

1.22.0 · Source§

impl BitAndAssign<&i32> for Wrapping<i32>

1.22.0 · Source§

impl BitAndAssign<&i64> for i64

1.22.0 · Source§

impl BitAndAssign<&i64> for Saturating<i64>

1.22.0 · Source§

impl BitAndAssign<&i64> for Wrapping<i64>

1.22.0 · Source§

impl BitAndAssign<&i128> for i128

1.22.0 · Source§

impl BitAndAssign<&i128> for Saturating<i128>

1.22.0 · Source§

impl BitAndAssign<&i128> for Wrapping<i128>

1.22.0 · Source§

impl BitAndAssign<&isize> for isize

1.22.0 · Source§

impl BitAndAssign<&isize> for Saturating<isize>

1.22.0 · Source§

impl BitAndAssign<&isize> for Wrapping<isize>

1.22.0 · Source§

impl BitAndAssign<&u8> for u8

1.22.0 · Source§

impl BitAndAssign<&u8> for Saturating<u8>

1.22.0 · Source§

impl BitAndAssign<&u8> for Wrapping<u8>

1.22.0 · Source§

impl BitAndAssign<&u16> for u16

1.22.0 · Source§

impl BitAndAssign<&u16> for Saturating<u16>

1.22.0 · Source§

impl BitAndAssign<&u16> for Wrapping<u16>

1.22.0 · Source§

impl BitAndAssign<&u32> for u32

1.22.0 · Source§

impl BitAndAssign<&u32> for Saturating<u32>

1.22.0 · Source§

impl BitAndAssign<&u32> for Wrapping<u32>

1.22.0 · Source§

impl BitAndAssign<&u64> for u64

1.22.0 · Source§

impl BitAndAssign<&u64> for Saturating<u64>

1.22.0 · Source§

impl BitAndAssign<&u64> for Wrapping<u64>

1.22.0 · Source§

impl BitAndAssign<&u128> for u128

1.22.0 · Source§

impl BitAndAssign<&u128> for Saturating<u128>

1.22.0 · Source§

impl BitAndAssign<&u128> for Wrapping<u128>

1.22.0 · Source§

impl BitAndAssign<&usize> for usize

1.22.0 · Source§

impl BitAndAssign<&usize> for Saturating<usize>

1.22.0 · Source§

impl BitAndAssign<&usize> for Wrapping<usize>

§

impl BitAndAssign<&f32x4> for f32x4

§

impl BitAndAssign<&f32x8> for f32x8

§

impl BitAndAssign<&f64x2> for f64x2

§

impl BitAndAssign<&f64x4> for f64x4

§

impl BitAndAssign<&i8x16> for i8x16

§

impl BitAndAssign<&i8x32> for i8x32

§

impl BitAndAssign<&i16x8> for i16x8

§

impl BitAndAssign<&i16x16> for i16x16

§

impl BitAndAssign<&i32x4> for i32x4

§

impl BitAndAssign<&i32x8> for i32x8

§

impl BitAndAssign<&i64x2> for i64x2

§

impl BitAndAssign<&u8x16> for u8x16

§

impl BitAndAssign<&u16x8> for u16x8

§

impl BitAndAssign<&u16x16> for u16x16

§

impl BitAndAssign<&u32x4> for u32x4

§

impl BitAndAssign<&u32x8> for u32x8

§

impl BitAndAssign<&u64x2> for u64x2

§

impl BitAndAssign<&u64x4> for u64x4

1.75.0 · Source§

impl BitAndAssign<&Ipv4Addr> for Ipv4Addr

1.75.0 · Source§

impl BitAndAssign<&Ipv6Addr> for Ipv6Addr

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.22.0 · Source§

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

1.74.0 · Source§

impl BitAndAssign<i8> for Saturating<i8>

1.60.0 · Source§

impl BitAndAssign<i8> for Wrapping<i8>

1.74.0 · Source§

impl BitAndAssign<i16> for Saturating<i16>

1.60.0 · Source§

impl BitAndAssign<i16> for Wrapping<i16>

1.74.0 · Source§

impl BitAndAssign<i32> for Saturating<i32>

1.60.0 · Source§

impl BitAndAssign<i32> for Wrapping<i32>

1.74.0 · Source§

impl BitAndAssign<i64> for Saturating<i64>

1.60.0 · Source§

impl BitAndAssign<i64> for Wrapping<i64>

1.74.0 · Source§

impl BitAndAssign<i128> for Saturating<i128>

1.60.0 · Source§

impl BitAndAssign<i128> for Wrapping<i128>

1.74.0 · Source§

impl BitAndAssign<isize> for Saturating<isize>

1.60.0 · Source§

impl BitAndAssign<isize> for Wrapping<isize>

1.74.0 · Source§

impl BitAndAssign<u8> for Saturating<u8>

1.60.0 · Source§

impl BitAndAssign<u8> for Wrapping<u8>

1.74.0 · Source§

impl BitAndAssign<u16> for Saturating<u16>

1.60.0 · Source§

impl BitAndAssign<u16> for Wrapping<u16>

1.74.0 · Source§

impl BitAndAssign<u32> for Saturating<u32>

1.60.0 · Source§

impl BitAndAssign<u32> for Wrapping<u32>

1.74.0 · Source§

impl BitAndAssign<u64> for Saturating<u64>

1.60.0 · Source§

impl BitAndAssign<u64> for Wrapping<u64>

1.74.0 · Source§

impl BitAndAssign<u128> for Saturating<u128>

1.60.0 · Source§

impl BitAndAssign<u128> for Wrapping<u128>

1.74.0 · Source§

impl BitAndAssign<usize> for Saturating<usize>

1.60.0 · Source§

impl BitAndAssign<usize> for Wrapping<usize>

§

impl<T, S, A> BitAndAssign<&HashSet<T, S, A>> for HashSet<T, S, A>
where T: Eq + Hash + Clone, S: BuildHasher, A: Allocator,

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 CAP: usize, S: Storage> BitAndAssign for Array<T, CAP, S>

Source§

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

Source§

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