Trait SubAssign

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

The subtraction assignment operator -=.

§Examples

This example creates a Point struct that implements the SubAssign trait, and then demonstrates sub-assigning to a mutable Point.

use std::ops::SubAssign;

#[derive(Debug, Copy, Clone, PartialEq)]
struct Point {
    x: i32,
    y: i32,
}

impl SubAssign for Point {
    fn sub_assign(&mut self, other: Self) {
        *self = Self {
            x: self.x - other.x,
            y: self.y - other.y,
        };
    }
}

let mut point = Point { x: 3, y: 3 };
point -= Point { x: 2, y: 3 };
assert_eq!(point, Point {x: 1, y: 0});

Required Methods§

1.8.0 · Source

fn sub_assign(&mut self, rhs: Rhs)

Performs the -= operation.

§Example
let mut x: u32 = 12;
x -= 1;
assert_eq!(x, 11);

Implementors§

1.8.0 · Source§

impl SubAssign for f16

1.8.0 · Source§

impl SubAssign for f32

1.8.0 · Source§

impl SubAssign for f64

1.8.0 · Source§

impl SubAssign for f128

1.8.0 · Source§

impl SubAssign for i8

1.8.0 · Source§

impl SubAssign for i16

1.8.0 · Source§

impl SubAssign for i32

1.8.0 · Source§

impl SubAssign for i64

1.8.0 · Source§

impl SubAssign for i128

1.8.0 · Source§

impl SubAssign for isize

1.8.0 · Source§

impl SubAssign for u8

1.8.0 · Source§

impl SubAssign for u16

1.8.0 · Source§

impl SubAssign for u32

1.8.0 · Source§

impl SubAssign for u64

1.8.0 · Source§

impl SubAssign for u128

1.8.0 · Source§

impl SubAssign for usize

Source§

impl SubAssign for Decimal

Source§

impl SubAssign for EnabledModules

Source§

impl SubAssign for EventFlags

Source§

impl SubAssign for I192

Source§

impl SubAssign for I256

Source§

impl SubAssign for I320

Source§

impl SubAssign for I384

Source§

impl SubAssign for I448

Source§

impl SubAssign for I512

Source§

impl SubAssign for I768

Source§

impl SubAssign for LockFlags

Source§

impl SubAssign for PreciseDecimal

Source§

impl SubAssign for U192

Source§

impl SubAssign for U256

Source§

impl SubAssign for U320

Source§

impl SubAssign for U384

Source§

impl SubAssign for U448

Source§

impl SubAssign for U512

Source§

impl SubAssign for U768

Source§

impl SubAssign for VaultFreezeFlags

1.74.0 · Source§

impl SubAssign for Saturating<i8>

1.74.0 · Source§

impl SubAssign for Saturating<i16>

1.74.0 · Source§

impl SubAssign for Saturating<i32>

1.74.0 · Source§

impl SubAssign for Saturating<i64>

1.74.0 · Source§

impl SubAssign for Saturating<i128>

1.74.0 · Source§

impl SubAssign for Saturating<isize>

1.74.0 · Source§

impl SubAssign for Saturating<u8>

1.74.0 · Source§

impl SubAssign for Saturating<u16>

1.74.0 · Source§

impl SubAssign for Saturating<u32>

1.74.0 · Source§

impl SubAssign for Saturating<u64>

1.74.0 · Source§

impl SubAssign for Saturating<u128>

1.74.0 · Source§

impl SubAssign for Saturating<usize>

1.8.0 · Source§

impl SubAssign for Wrapping<i8>

1.8.0 · Source§

impl SubAssign for Wrapping<i16>

1.8.0 · Source§

impl SubAssign for Wrapping<i32>

1.8.0 · Source§

impl SubAssign for Wrapping<i64>

1.8.0 · Source§

impl SubAssign for Wrapping<i128>

1.8.0 · Source§

impl SubAssign for Wrapping<isize>

1.8.0 · Source§

impl SubAssign for Wrapping<u8>

1.8.0 · Source§

impl SubAssign for Wrapping<u16>

1.8.0 · Source§

impl SubAssign for Wrapping<u32>

1.8.0 · Source§

impl SubAssign for Wrapping<u64>

1.8.0 · Source§

impl SubAssign for Wrapping<u128>

1.8.0 · Source§

impl SubAssign for Wrapping<usize>

1.9.0 · Source§

impl SubAssign for Duration

Source§

impl SubAssign for Effects

§Examples

let mut effects = anstyle::Effects::BOLD | anstyle::Effects::UNDERLINE;
effects -= anstyle::Effects::BOLD;
assert_eq!(format!("{:?}", effects), "Effects(UNDERLINE)");
Source§

impl SubAssign for EdwardsPoint

Source§

impl SubAssign for RistrettoPoint

Source§

impl SubAssign for Scalar

Source§

impl SubAssign for BigInt

Source§

impl SubAssign for BigUint

Source§

impl SubAssign for RefTypes

Source§

impl SubAssign for CreateFlags

Source§

impl SubAssign for ReadFlags

Source§

impl SubAssign for WatchFlags

Source§

impl SubAssign for Access

Source§

impl SubAssign for AtFlags

Source§

impl SubAssign for FallocateFlags

Source§

impl SubAssign for MemfdFlags

Source§

impl SubAssign for Mode

Source§

impl SubAssign for OFlags

Source§

impl SubAssign for RenameFlags

Source§

impl SubAssign for ResolveFlags

Source§

impl SubAssign for SealFlags

Source§

impl SubAssign for StatVfsMountFlags

Source§

impl SubAssign for DupFlags

Source§

impl SubAssign for FdFlags

Source§

impl SubAssign for ReadWriteFlags

Source§

impl SubAssign for IFlags

Source§

impl SubAssign for StatxAttributes

Source§

impl SubAssign for StatxFlags

Source§

impl SubAssign for XattrFlags

Source§

impl SubAssign for Timespec

1.22.0 · Source§

impl SubAssign<&f16> for f16

1.22.0 · Source§

impl SubAssign<&f32> for f32

1.22.0 · Source§

impl SubAssign<&f64> for f64

1.22.0 · Source§

impl SubAssign<&f128> for f128

1.22.0 · Source§

impl SubAssign<&i8> for i8

1.22.0 · Source§

impl SubAssign<&i8> for Saturating<i8>

1.22.0 · Source§

impl SubAssign<&i8> for Wrapping<i8>

1.22.0 · Source§

impl SubAssign<&i16> for i16

1.22.0 · Source§

impl SubAssign<&i16> for Saturating<i16>

1.22.0 · Source§

impl SubAssign<&i16> for Wrapping<i16>

1.22.0 · Source§

impl SubAssign<&i32> for i32

1.22.0 · Source§

impl SubAssign<&i32> for Saturating<i32>

1.22.0 · Source§

impl SubAssign<&i32> for Wrapping<i32>

1.22.0 · Source§

impl SubAssign<&i64> for i64

1.22.0 · Source§

impl SubAssign<&i64> for Saturating<i64>

1.22.0 · Source§

impl SubAssign<&i64> for Wrapping<i64>

1.22.0 · Source§

impl SubAssign<&i128> for i128

1.22.0 · Source§

impl SubAssign<&i128> for Saturating<i128>

1.22.0 · Source§

impl SubAssign<&i128> for Wrapping<i128>

1.22.0 · Source§

impl SubAssign<&isize> for isize

1.22.0 · Source§

impl SubAssign<&isize> for Saturating<isize>

1.22.0 · Source§

impl SubAssign<&isize> for Wrapping<isize>

1.22.0 · Source§

impl SubAssign<&u8> for u8

1.22.0 · Source§

impl SubAssign<&u8> for Saturating<u8>

1.22.0 · Source§

impl SubAssign<&u8> for Wrapping<u8>

1.22.0 · Source§

impl SubAssign<&u16> for u16

1.22.0 · Source§

impl SubAssign<&u16> for Saturating<u16>

1.22.0 · Source§

impl SubAssign<&u16> for Wrapping<u16>

1.22.0 · Source§

impl SubAssign<&u32> for u32

1.22.0 · Source§

impl SubAssign<&u32> for Saturating<u32>

1.22.0 · Source§

impl SubAssign<&u32> for Wrapping<u32>

1.22.0 · Source§

impl SubAssign<&u64> for u64

1.22.0 · Source§

impl SubAssign<&u64> for Saturating<u64>

1.22.0 · Source§

impl SubAssign<&u64> for Wrapping<u64>

1.22.0 · Source§

impl SubAssign<&u128> for u128

1.22.0 · Source§

impl SubAssign<&u128> for Saturating<u128>

1.22.0 · Source§

impl SubAssign<&u128> for Wrapping<u128>

1.22.0 · Source§

impl SubAssign<&usize> for usize

1.22.0 · Source§

impl SubAssign<&usize> for Saturating<usize>

1.22.0 · Source§

impl SubAssign<&usize> for Wrapping<usize>

Source§

impl SubAssign<&I192> for I192

Source§

impl SubAssign<&I256> for I256

Source§

impl SubAssign<&I320> for I320

Source§

impl SubAssign<&I384> for I384

Source§

impl SubAssign<&I448> for I448

Source§

impl SubAssign<&I512> for I512

Source§

impl SubAssign<&I768> for I768

Source§

impl SubAssign<&U192> for U192

Source§

impl SubAssign<&U256> for U256

Source§

impl SubAssign<&U320> for U320

Source§

impl SubAssign<&U384> for U384

Source§

impl SubAssign<&U448> for U448

Source§

impl SubAssign<&U512> for U512

Source§

impl SubAssign<&U768> for U768

1.22.0 · Source§

impl SubAssign<&Saturating<i8>> for Saturating<i8>

1.22.0 · Source§

impl SubAssign<&Saturating<i16>> for Saturating<i16>

1.22.0 · Source§

impl SubAssign<&Saturating<i32>> for Saturating<i32>

1.22.0 · Source§

impl SubAssign<&Saturating<i64>> for Saturating<i64>

1.22.0 · Source§

impl SubAssign<&Saturating<i128>> for Saturating<i128>

1.22.0 · Source§

impl SubAssign<&Saturating<isize>> for Saturating<isize>

1.22.0 · Source§

impl SubAssign<&Saturating<u8>> for Saturating<u8>

1.22.0 · Source§

impl SubAssign<&Saturating<u16>> for Saturating<u16>

1.22.0 · Source§

impl SubAssign<&Saturating<u32>> for Saturating<u32>

1.22.0 · Source§

impl SubAssign<&Saturating<u64>> for Saturating<u64>

1.22.0 · Source§

impl SubAssign<&Saturating<u128>> for Saturating<u128>

1.22.0 · Source§

impl SubAssign<&Saturating<usize>> for Saturating<usize>

1.22.0 · Source§

impl SubAssign<&Wrapping<i8>> for Wrapping<i8>

1.22.0 · Source§

impl SubAssign<&Wrapping<i16>> for Wrapping<i16>

1.22.0 · Source§

impl SubAssign<&Wrapping<i32>> for Wrapping<i32>

1.22.0 · Source§

impl SubAssign<&Wrapping<i64>> for Wrapping<i64>

1.22.0 · Source§

impl SubAssign<&Wrapping<i128>> for Wrapping<i128>

1.22.0 · Source§

impl SubAssign<&Wrapping<isize>> for Wrapping<isize>

1.22.0 · Source§

impl SubAssign<&Wrapping<u8>> for Wrapping<u8>

1.22.0 · Source§

impl SubAssign<&Wrapping<u16>> for Wrapping<u16>

1.22.0 · Source§

impl SubAssign<&Wrapping<u32>> for Wrapping<u32>

1.22.0 · Source§

impl SubAssign<&Wrapping<u64>> for Wrapping<u64>

1.22.0 · Source§

impl SubAssign<&Wrapping<u128>> for Wrapping<u128>

1.22.0 · Source§

impl SubAssign<&Wrapping<usize>> for Wrapping<usize>

Source§

impl SubAssign<&BigInt> for BigInt

Source§

impl SubAssign<&BigUint> for BigUint

Source§

impl SubAssign<i8> for Decimal

Source§

impl SubAssign<i8> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<i8> for Saturating<i8>

1.60.0 · Source§

impl SubAssign<i8> for Wrapping<i8>

Source§

impl SubAssign<i8> for BigInt

Source§

impl SubAssign<i16> for Decimal

Source§

impl SubAssign<i16> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<i16> for Saturating<i16>

1.60.0 · Source§

impl SubAssign<i16> for Wrapping<i16>

Source§

impl SubAssign<i16> for BigInt

Source§

impl SubAssign<i32> for Decimal

Source§

impl SubAssign<i32> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<i32> for Saturating<i32>

1.60.0 · Source§

impl SubAssign<i32> for Wrapping<i32>

Source§

impl SubAssign<i32> for BigInt

Source§

impl SubAssign<i64> for Decimal

Source§

impl SubAssign<i64> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<i64> for Saturating<i64>

1.60.0 · Source§

impl SubAssign<i64> for Wrapping<i64>

Source§

impl SubAssign<i64> for BigInt

Source§

impl SubAssign<i128> for Decimal

Source§

impl SubAssign<i128> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<i128> for Saturating<i128>

1.60.0 · Source§

impl SubAssign<i128> for Wrapping<i128>

Source§

impl SubAssign<i128> for BigInt

Source§

impl SubAssign<isize> for Decimal

Source§

impl SubAssign<isize> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<isize> for Saturating<isize>

1.60.0 · Source§

impl SubAssign<isize> for Wrapping<isize>

Source§

impl SubAssign<isize> for BigInt

Source§

impl SubAssign<u8> for Decimal

Source§

impl SubAssign<u8> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<u8> for Saturating<u8>

1.60.0 · Source§

impl SubAssign<u8> for Wrapping<u8>

Source§

impl SubAssign<u8> for BigInt

Source§

impl SubAssign<u8> for BigUint

Source§

impl SubAssign<u16> for Decimal

Source§

impl SubAssign<u16> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<u16> for Saturating<u16>

1.60.0 · Source§

impl SubAssign<u16> for Wrapping<u16>

Source§

impl SubAssign<u16> for BigInt

Source§

impl SubAssign<u16> for BigUint

Source§

impl SubAssign<u32> for Decimal

Source§

impl SubAssign<u32> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<u32> for Saturating<u32>

1.60.0 · Source§

impl SubAssign<u32> for Wrapping<u32>

Source§

impl SubAssign<u32> for BigInt

Source§

impl SubAssign<u32> for BigUint

Source§

impl SubAssign<u64> for Decimal

Source§

impl SubAssign<u64> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<u64> for Saturating<u64>

1.60.0 · Source§

impl SubAssign<u64> for Wrapping<u64>

Source§

impl SubAssign<u64> for BigInt

Source§

impl SubAssign<u64> for BigUint

Source§

impl SubAssign<u128> for Decimal

Source§

impl SubAssign<u128> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<u128> for Saturating<u128>

1.60.0 · Source§

impl SubAssign<u128> for Wrapping<u128>

Source§

impl SubAssign<u128> for BigInt

Source§

impl SubAssign<u128> for BigUint

Source§

impl SubAssign<usize> for Decimal

Source§

impl SubAssign<usize> for PreciseDecimal

1.74.0 · Source§

impl SubAssign<usize> for Saturating<usize>

1.60.0 · Source§

impl SubAssign<usize> for Wrapping<usize>

Source§

impl SubAssign<usize> for BigInt

Source§

impl SubAssign<usize> for BigUint

Source§

impl SubAssign<Decimal> for PreciseDecimal

Source§

impl SubAssign<I192> for Decimal

Source§

impl SubAssign<I192> for PreciseDecimal

Source§

impl SubAssign<I256> for Decimal

Source§

impl SubAssign<I256> for PreciseDecimal

Source§

impl SubAssign<I320> for Decimal

Source§

impl SubAssign<I320> for PreciseDecimal

Source§

impl SubAssign<I448> for Decimal

Source§

impl SubAssign<I448> for PreciseDecimal

Source§

impl SubAssign<I512> for Decimal

Source§

impl SubAssign<I512> for PreciseDecimal

Source§

impl SubAssign<U192> for Decimal

Source§

impl SubAssign<U192> for PreciseDecimal

Source§

impl SubAssign<U256> for Decimal

Source§

impl SubAssign<U256> for PreciseDecimal

Source§

impl SubAssign<U320> for Decimal

Source§

impl SubAssign<U320> for PreciseDecimal

Source§

impl SubAssign<U448> for Decimal

Source§

impl SubAssign<U448> for PreciseDecimal

Source§

impl SubAssign<U512> for Decimal

Source§

impl SubAssign<U512> for PreciseDecimal

1.9.0 · Source§

impl SubAssign<Duration> for Instant

1.9.0 · Source§

impl SubAssign<Duration> for SystemTime

Source§

impl SubAssign<Effects> for Style

§Examples

let mut style = anstyle::Style::new().bold().underline();
style -= anstyle::Effects::BOLD.into();
Source§

impl<'b> SubAssign<&'b EdwardsPoint> for EdwardsPoint

Source§

impl<'b> SubAssign<&'b RistrettoPoint> for RistrettoPoint

Source§

impl<'b> SubAssign<&'b Scalar> for Scalar

Source§

impl<T, S, A> SubAssign<&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> SubAssign<U> for Simd<T, N>
where Simd<T, N>: Sub<U, Output = Simd<T, N>>, T: SimdElement, LaneCount<N>: SupportedLaneCount,

Source§

impl<const N: usize> SubAssign for BInt<N>

Source§

impl<const N: usize> SubAssign for BIntD8<N>

Source§

impl<const N: usize> SubAssign for BIntD16<N>

Source§

impl<const N: usize> SubAssign for BIntD32<N>

Source§

impl<const N: usize> SubAssign for BUint<N>

Source§

impl<const N: usize> SubAssign for BUintD8<N>

Source§

impl<const N: usize> SubAssign for BUintD16<N>

Source§

impl<const N: usize> SubAssign for BUintD32<N>

Source§

impl<const N: usize> SubAssign<&BInt<N>> for BInt<N>

Source§

impl<const N: usize> SubAssign<&BIntD8<N>> for BIntD8<N>

Source§

impl<const N: usize> SubAssign<&BIntD16<N>> for BIntD16<N>

Source§

impl<const N: usize> SubAssign<&BIntD32<N>> for BIntD32<N>

Source§

impl<const N: usize> SubAssign<&BUint<N>> for BUint<N>

Source§

impl<const N: usize> SubAssign<&BUintD8<N>> for BUintD8<N>

Source§

impl<const N: usize> SubAssign<&BUintD16<N>> for BUintD16<N>

Source§

impl<const N: usize> SubAssign<&BUintD32<N>> for BUintD32<N>