Trait gclient::ext::sp_core::sp_std::ops::BitAndAssign

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

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§

source§

impl BitAndAssign for bool

source§

impl BitAndAssign for i8

source§

impl BitAndAssign for i16

source§

impl BitAndAssign for i32

source§

impl BitAndAssign for i64

source§

impl BitAndAssign for i128

source§

impl BitAndAssign for isize

source§

impl BitAndAssign for u8

source§

impl BitAndAssign for u16

source§

impl BitAndAssign for u32

source§

impl BitAndAssign for u64

source§

impl BitAndAssign for u128

source§

impl BitAndAssign for usize

§

impl BitAndAssign for Capabilities

§

impl BitAndAssign for H256

§

impl BitAndAssign for H160

§

impl BitAndAssign for H512

§

impl BitAndAssign for U256

§

impl BitAndAssign for U512

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>

source§

impl BitAndAssign for Wrapping<i8>

source§

impl BitAndAssign for Wrapping<i16>

source§

impl BitAndAssign for Wrapping<i32>

source§

impl BitAndAssign for Wrapping<i64>

source§

impl BitAndAssign for Wrapping<i128>

source§

impl BitAndAssign for Wrapping<isize>

source§

impl BitAndAssign for Wrapping<u8>

source§

impl BitAndAssign for Wrapping<u16>

source§

impl BitAndAssign for Wrapping<u32>

source§

impl BitAndAssign for Wrapping<u64>

source§

impl BitAndAssign for Wrapping<u128>

source§

impl BitAndAssign for Wrapping<usize>

1.75.0 · source§

impl BitAndAssign for Ipv4Addr

1.75.0 · source§

impl BitAndAssign for Ipv6Addr

source§

impl BitAndAssign for BigInt

source§

impl BitAndAssign for BigUint

source§

impl BitAndAssign for Choice

source§

impl BitAndAssign for FmtSpan

§

impl BitAndAssign for Access

§

impl BitAndAssign for Access

§

impl BitAndAssign for AtFlags

§

impl BitAndAssign for AtFlags

§

impl BitAndAssign for ControlModes

§

impl BitAndAssign for CreateFlags

§

impl BitAndAssign for CreateFlags

§

impl BitAndAssign for CreateFlags

§

impl BitAndAssign for CreateFlags

§

impl BitAndAssign for DupFlags

§

impl BitAndAssign for DupFlags

§

impl BitAndAssign for DupFlags

§

impl BitAndAssign for EventFlags

§

impl BitAndAssign for EventFlags

§

impl BitAndAssign for EventfdFlags

§

impl BitAndAssign for EventfdFlags

§

impl BitAndAssign for FallocateFlags

§

impl BitAndAssign for FallocateFlags

§

impl BitAndAssign for FdFlags

§

impl BitAndAssign for FdFlags

§

impl BitAndAssign for FdFlags

§

impl BitAndAssign for H128

§

impl BitAndAssign for H384

§

impl BitAndAssign for H768

§

impl BitAndAssign for IFlags

§

impl BitAndAssign for InputModes

§

impl BitAndAssign for LocalModes

§

impl BitAndAssign for MapFlags

§

impl BitAndAssign for MemfdFlags

§

impl BitAndAssign for MemfdFlags

§

impl BitAndAssign for MlockFlags

§

impl BitAndAssign for Mode

§

impl BitAndAssign for Mode

§

impl BitAndAssign for MountFlags

§

impl BitAndAssign for MountFlags

§

impl BitAndAssign for MountPropagationFlags

§

impl BitAndAssign for MountPropagationFlags

§

impl BitAndAssign for MprotectFlags

§

impl BitAndAssign for MremapFlags

§

impl BitAndAssign for MsyncFlags

§

impl BitAndAssign for OFlags

§

impl BitAndAssign for OFlags

§

impl BitAndAssign for OutputModes

§

impl BitAndAssign for PipeFlags

§

impl BitAndAssign for PipeFlags

§

impl BitAndAssign for PollFlags

§

impl BitAndAssign for PollFlags

§

impl BitAndAssign for ProtFlags

§

impl BitAndAssign for Protection

§

impl BitAndAssign for ReadWriteFlags

§

impl BitAndAssign for ReadWriteFlags

§

impl BitAndAssign for ReadWriteFlags

§

impl BitAndAssign for RenameFlags

§

impl BitAndAssign for RenameFlags

§

impl BitAndAssign for ResolveFlags

§

impl BitAndAssign for ResolveFlags

§

impl BitAndAssign for SealFlags

§

impl BitAndAssign for SealFlags

§

impl BitAndAssign for SpliceFlags

§

impl BitAndAssign for SpliceFlags

§

impl BitAndAssign for StatVfsMountFlags

§

impl BitAndAssign for StatVfsMountFlags

§

impl BitAndAssign for StatxFlags

§

impl BitAndAssign for StatxFlags

§

impl BitAndAssign for U128

§

impl BitAndAssign for UnmountFlags

§

impl BitAndAssign for UnmountFlags

§

impl BitAndAssign for UserfaultfdFlags

§

impl BitAndAssign for WatchFlags

§

impl BitAndAssign for WatchFlags

§

impl BitAndAssign for XattrFlags

§

impl BitAndAssign for XattrFlags

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>

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.75.0 · source§

impl BitAndAssign<&Ipv4Addr> for Ipv4Addr

1.75.0 · source§

impl BitAndAssign<&Ipv6Addr> for Ipv6Addr

source§

impl BitAndAssign<&BigInt> for BigInt

source§

impl BitAndAssign<&BigUint> for BigUint

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<'r> BitAndAssign<&'r H256> for H256

§

impl<'r> BitAndAssign<&'r H160> for H160

§

impl<'r> BitAndAssign<&'r H512> for H512

§

impl<'r> BitAndAssign<&'r H128> for H128

§

impl<'r> BitAndAssign<&'r H384> for H384

§

impl<'r> BitAndAssign<&'r H768> for H768

§

impl<A, O> BitAndAssign<&BitArray<A, O>> for BitSlice<<A as BitView>::Store, O>
where A: BitViewSized, O: BitOrder,

§

impl<A, O> BitAndAssign<BitArray<A, O>> for BitSlice<<A as BitView>::Store, O>
where A: BitViewSized, O: BitOrder,

§

impl<A, O, Rhs> BitAndAssign<Rhs> for BitArray<A, O>
where A: BitViewSized, O: BitOrder, BitSlice<<A as BitView>::Store, O>: BitAndAssign<Rhs>,

§

impl<T1, T2, O1, O2> BitAndAssign<&BitSlice<T2, O2>> for BitSlice<T1, O1>
where T1: BitStore, T2: BitStore, O1: BitOrder, O2: BitOrder,

§

impl<T, O> BitAndAssign<&BitBox<T, O>> for BitSlice<T, O>
where T: BitStore, O: BitOrder,

§

impl<T, O> BitAndAssign<&BitVec<T, O>> for BitSlice<T, O>
where T: BitStore, O: BitOrder,

§

impl<T, O> BitAndAssign<BitBox<T, O>> for BitSlice<T, O>
where T: BitStore, O: BitOrder,

§

impl<T, O> BitAndAssign<BitVec<T, O>> for BitSlice<T, O>
where T: BitStore, O: BitOrder,

§

impl<T, O, Rhs> BitAndAssign<Rhs> for BitBox<T, O>
where T: BitStore, O: BitOrder, BitSlice<T, O>: BitAndAssign<Rhs>,

§

impl<T, O, Rhs> BitAndAssign<Rhs> for BitVec<T, O>
where T: BitStore, O: BitOrder, BitSlice<T, O>: BitAndAssign<Rhs>,

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>