Trait scale_info::prelude::ops::BitXorAssign

1.8.0 · source ·
pub trait BitXorAssign<Rhs = Self> {
    fn bitxor_assign(&mut self, rhs: Rhs);
}
Expand description

The bitwise XOR assignment operator ^=.

Examples

use std::ops::BitXorAssign;

#[derive(Debug, PartialEq)]
struct Personality {
    has_soul: bool,
    likes_knitting: bool,
}

impl BitXorAssign for Personality {
    fn bitxor_assign(&mut self, rhs: Self) {
        self.has_soul ^= rhs.has_soul;
        self.likes_knitting ^= rhs.likes_knitting;
    }
}

let mut personality = Personality { has_soul: false, likes_knitting: true };
personality ^= Personality { has_soul: true, likes_knitting: true };
assert_eq!(personality, Personality { has_soul: true, likes_knitting: false});

Required Methods§

Performs the ^= operation.

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

let mut x = true;
x ^= true;
assert_eq!(x, false);

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

let mut x: u8 = 5;
x ^= 2;
assert_eq!(x, 7);

Implementors§

impl<const LIMBS: usize> BitXorAssign<UInt<LIMBS>> for UInt<LIMBS>

impl<const LIMBS: usize> BitXorAssign<&UInt<LIMBS>> for UInt<LIMBS>

impl<const LIMBS: usize> BitXorAssign<Wrapping<UInt<LIMBS>>> for Wrapping<UInt<LIMBS>>

impl<const LIMBS: usize> BitXorAssign<&Wrapping<UInt<LIMBS>>> for Wrapping<UInt<LIMBS>>

impl<T, B> BitXorAssign<B> for BitFlags<T>where
    T: BitFlag,
    B: Into<BitFlags<T>>,

impl<Frac> BitXorAssign<FixedU8<Frac>> for FixedU8<Frac>

impl<Frac> BitXorAssign<&FixedU8<Frac>> for FixedU8<Frac>

impl<Frac> BitXorAssign<FixedU16<Frac>> for FixedU16<Frac>

impl<Frac> BitXorAssign<&FixedU16<Frac>> for FixedU16<Frac>

impl<Frac> BitXorAssign<FixedU32<Frac>> for FixedU32<Frac>

impl<Frac> BitXorAssign<&FixedU32<Frac>> for FixedU32<Frac>

impl<Frac> BitXorAssign<FixedU64<Frac>> for FixedU64<Frac>

impl<Frac> BitXorAssign<&FixedU64<Frac>> for FixedU64<Frac>

impl<Frac> BitXorAssign<FixedU128<Frac>> for FixedU128<Frac>

impl<Frac> BitXorAssign<&FixedU128<Frac>> for FixedU128<Frac>

impl<Frac> BitXorAssign<FixedI8<Frac>> for FixedI8<Frac>

impl<Frac> BitXorAssign<&FixedI8<Frac>> for FixedI8<Frac>

impl<Frac> BitXorAssign<FixedI16<Frac>> for FixedI16<Frac>

impl<Frac> BitXorAssign<&FixedI16<Frac>> for FixedI16<Frac>

impl<Frac> BitXorAssign<FixedI32<Frac>> for FixedI32<Frac>

impl<Frac> BitXorAssign<&FixedI32<Frac>> for FixedI32<Frac>

impl<Frac> BitXorAssign<FixedI64<Frac>> for FixedI64<Frac>

impl<Frac> BitXorAssign<&FixedI64<Frac>> for FixedI64<Frac>

impl<Frac> BitXorAssign<FixedI128<Frac>> for FixedI128<Frac>

impl<Frac> BitXorAssign<&FixedI128<Frac>> for FixedI128<Frac>

impl<F> BitXorAssign<Unwrapped<F>> for Unwrapped<F>where
    F: BitXorAssign<F>,

impl<F> BitXorAssign<&Unwrapped<F>> for Unwrapped<F>where
    for<'a> F: BitXorAssign<&'a F>,

impl<F> BitXorAssign<F> for Unwrapped<F>where
    F: BitXorAssign<F>,

impl<F> BitXorAssign<&F> for Unwrapped<F>where
    for<'a> F: BitXorAssign<&'a F>,

impl<F> BitXorAssign<Wrapping<F>> for Wrapping<F>where
    F: BitXorAssign<F>,

impl<F> BitXorAssign<&Wrapping<F>> for Wrapping<F>where
    for<'a> F: BitXorAssign<&'a F>,

impl<F> BitXorAssign<F> for Wrapping<F>where
    F: BitXorAssign<F>,

impl<F> BitXorAssign<&F> for Wrapping<F>where
    for<'a> F: BitXorAssign<&'a F>,

impl<'a> BitXorAssign<&'a BigInt> for BigInt

impl<'a> BitXorAssign<&'a BigUint> for BigUint

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

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

impl<'r> BitXorAssign<&'r H256> for H256

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

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

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