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 Checked<Limb>

Source§

impl SubAssign for crypto_bigint::wrapping::Wrapping<Limb>

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 core::num::wrapping::Wrapping<i8>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<i16>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<i32>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<i64>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<i128>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<isize>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<u8>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<u16>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<u32>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<u64>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<u128>

1.8.0 · Source§

impl SubAssign for core::num::wrapping::Wrapping<usize>

1.9.0 · Source§

impl SubAssign for Duration

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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::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 core::num::wrapping::Wrapping<usize>

Source§

impl SubAssign<&Checked<Limb>> for Checked<Limb>

Source§

impl SubAssign<&Wrapping<Limb>> for crypto_bigint::wrapping::Wrapping<Limb>

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 core::num::wrapping::Wrapping<i8>

1.22.0 · Source§

impl SubAssign<&Wrapping<i16>> for core::num::wrapping::Wrapping<i16>

1.22.0 · Source§

impl SubAssign<&Wrapping<i32>> for core::num::wrapping::Wrapping<i32>

1.22.0 · Source§

impl SubAssign<&Wrapping<i64>> for core::num::wrapping::Wrapping<i64>

1.22.0 · Source§

impl SubAssign<&Wrapping<i128>> for core::num::wrapping::Wrapping<i128>

1.22.0 · Source§

impl SubAssign<&Wrapping<isize>> for core::num::wrapping::Wrapping<isize>

1.22.0 · Source§

impl SubAssign<&Wrapping<u8>> for core::num::wrapping::Wrapping<u8>

1.22.0 · Source§

impl SubAssign<&Wrapping<u16>> for core::num::wrapping::Wrapping<u16>

1.22.0 · Source§

impl SubAssign<&Wrapping<u32>> for core::num::wrapping::Wrapping<u32>

1.22.0 · Source§

impl SubAssign<&Wrapping<u64>> for core::num::wrapping::Wrapping<u64>

1.22.0 · Source§

impl SubAssign<&Wrapping<u128>> for core::num::wrapping::Wrapping<u128>

1.22.0 · Source§

impl SubAssign<&Wrapping<usize>> for core::num::wrapping::Wrapping<usize>

1.74.0 · Source§

impl SubAssign<i8> for Saturating<i8>

1.60.0 · Source§

impl SubAssign<i8> for core::num::wrapping::Wrapping<i8>

1.74.0 · Source§

impl SubAssign<i16> for Saturating<i16>

1.60.0 · Source§

impl SubAssign<i16> for core::num::wrapping::Wrapping<i16>

1.74.0 · Source§

impl SubAssign<i32> for Saturating<i32>

1.60.0 · Source§

impl SubAssign<i32> for core::num::wrapping::Wrapping<i32>

1.74.0 · Source§

impl SubAssign<i64> for Saturating<i64>

1.60.0 · Source§

impl SubAssign<i64> for core::num::wrapping::Wrapping<i64>

1.74.0 · Source§

impl SubAssign<i128> for Saturating<i128>

1.60.0 · Source§

impl SubAssign<i128> for core::num::wrapping::Wrapping<i128>

1.74.0 · Source§

impl SubAssign<isize> for Saturating<isize>

1.60.0 · Source§

impl SubAssign<isize> for core::num::wrapping::Wrapping<isize>

1.74.0 · Source§

impl SubAssign<u8> for Saturating<u8>

1.60.0 · Source§

impl SubAssign<u8> for core::num::wrapping::Wrapping<u8>

1.74.0 · Source§

impl SubAssign<u16> for Saturating<u16>

1.60.0 · Source§

impl SubAssign<u16> for core::num::wrapping::Wrapping<u16>

1.74.0 · Source§

impl SubAssign<u32> for Saturating<u32>

1.60.0 · Source§

impl SubAssign<u32> for core::num::wrapping::Wrapping<u32>

1.74.0 · Source§

impl SubAssign<u64> for Saturating<u64>

1.60.0 · Source§

impl SubAssign<u64> for core::num::wrapping::Wrapping<u64>

1.74.0 · Source§

impl SubAssign<u128> for Saturating<u128>

1.60.0 · Source§

impl SubAssign<u128> for core::num::wrapping::Wrapping<u128>

1.74.0 · Source§

impl SubAssign<usize> for Saturating<usize>

1.60.0 · Source§

impl SubAssign<usize> for core::num::wrapping::Wrapping<usize>

1.9.0 · Source§

impl SubAssign<Duration> for Instant

1.9.0 · Source§

impl SubAssign<Duration> for SystemTime

Source§

impl<C> SubAssign for ScalarCore<C>
where C: Curve,

Source§

impl<C> SubAssign<&ScalarCore<C>> for ScalarCore<C>
where C: Curve,

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 LIMBS: usize> SubAssign for Checked<UInt<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign for crypto_bigint::wrapping::Wrapping<UInt<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign<&Checked<UInt<LIMBS>>> for Checked<UInt<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign<&Wrapping<UInt<LIMBS>>> for crypto_bigint::wrapping::Wrapping<UInt<LIMBS>>

impl<Tz: TimeZone> SubAssign<TimeDelta> for Date<Tz>

impl<Tz: TimeZone> SubAssign<Duration> for DateTime<Tz>

impl<T: Copy + Sub<T, Output = T>, U> SubAssign for Vector2D<T, U>

impl<T: Copy + Sub<T, Output = T>, U> SubAssign for Vector3D<T, U>

impl<T: Copy + Sub<T, Output = T>, U> SubAssign<Vector2D<T, U>> for Point2D<T, U>

impl<T: Copy + Sub<T, Output = T>, U> SubAssign<Vector3D<T, U>> for Point3D<T, U>

impl<T: SubAssign<T>> SubAssign for Angle<T>

impl<T: SubAssign, Src, Dst> SubAssign<Translation2D<T, Dst, Dst>> for Translation2D<T, Src, Dst>

impl<T: SubAssign, Src, Dst> SubAssign<Translation3D<T, Dst, Dst>> for Translation3D<T, Src, Dst>

impl<T: SubAssign, U> SubAssign for Length<T, U>

impl<T: SubAssign, U> SubAssign for Size2D<T, U>

impl<T: SubAssign, U> SubAssign for Size3D<T, U>

impl<T: SubAssign, U> SubAssign<Size2D<T, U>> for Point2D<T, U>

impl<T: SubAssign, U> SubAssign<Size3D<T, U>> for Point3D<T, U>

impl SubAssign for Flags

impl SubAssign for Bits

impl SubAssign for U8Bits

impl SubAssign for Flag

impl SubAssign for Status

impl SubAssign for Flags

impl SubAssign for Media

impl SubAssign for Error

impl SubAssign<&f32> for WireF32

impl SubAssign<&f64> for WireF64

impl SubAssign<&i16> for WireI16

impl SubAssign<&i32> for WireI32

impl SubAssign<&i64> for WireI64

impl SubAssign<&u16> for WireU16

impl SubAssign<&u32> for WireU32

impl SubAssign<&u64> for WireU64

impl SubAssign for Flags

impl SubAssign for Rights

impl<F: Flags, R: Into<FlagSet<F>>> SubAssign<R> for FlagSet<F>

impl SubAssign for bf16

impl SubAssign for f16

impl SubAssign<&bf16> for bf16

impl SubAssign<&f16> for f16

impl SubAssign for Size

impl<'min, L, R> SubAssign<MaybeOwned<'min, R>> for MaybeOwned<'min, L>
where L: Clone + SubAssign<R> + SubAssign<&'min R>,

impl<'min, L, R> SubAssign<MaybeOwnedMut<'min, R>> for MaybeOwnedMut<'min, L>
where L: SubAssign<R> + SubAssign<&'min R>,

impl SubAssign for FdFlag

impl SubAssign for OFlag

impl SubAssign for Mode

impl SubAssign for SFlag

impl SubAssign for BigInt

impl SubAssign<i16> for BigInt

impl SubAssign<i32> for BigInt

impl SubAssign<i64> for BigInt

impl SubAssign<i8> for BigInt

impl SubAssign<u16> for BigInt

impl SubAssign<u32> for BigInt

impl SubAssign<u64> for BigInt

impl SubAssign<u8> for BigInt

impl SubAssign<u8> for BigUint

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

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

impl SubAssign for BigInt

impl SubAssign<i16> for BigInt

impl SubAssign<i32> for BigInt

impl SubAssign<i64> for BigInt

impl SubAssign<i8> for BigInt

impl SubAssign<u16> for BigInt

impl SubAssign<u32> for BigInt

impl SubAssign<u64> for BigInt

impl SubAssign<u8> for BigInt

impl SubAssign<u8> for BigUint

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

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

impl<'a, T: Clone + NumAssign> SubAssign<&'a Complex<T>> for Complex<T>

impl<'a, T: Clone + NumAssign> SubAssign<&'a T> for Complex<T>

impl<T: Clone + NumAssign> SubAssign for Complex<T>

impl<T: Clone + NumAssign> SubAssign<T> for Complex<T>

impl<'a, T: Clone + Integer + NumAssign> SubAssign<&'a Ratio<T>> for Ratio<T>

impl<'a, T: Clone + Integer + NumAssign> SubAssign<&'a T> for Ratio<T>

impl<T: Clone + Integer + NumAssign> SubAssign for Ratio<T>

impl<T: Clone + Integer + NumAssign> SubAssign<T> for Ratio<T>

impl SubAssign for Vec

impl SubAssign for Usage

impl SubAssign for Column

impl SubAssign for Line

impl SubAssign for Linear

impl SubAssign for Flags

impl SubAssign<usize> for Line

impl SubAssign for Mode

impl SubAssign for Resize

impl SubAssign for Mode

impl SubAssign for Resize

impl<O: ByteOrder> SubAssign for F32<O>

impl<O: ByteOrder> SubAssign for F64<O>

impl<O: ByteOrder> SubAssign for I128<O>

impl<O: ByteOrder> SubAssign for I16<O>

impl<O: ByteOrder> SubAssign for I32<O>

impl<O: ByteOrder> SubAssign for I64<O>

impl<O: ByteOrder> SubAssign for U128<O>

impl<O: ByteOrder> SubAssign for U16<O>

impl<O: ByteOrder> SubAssign for U32<O>

impl<O: ByteOrder> SubAssign for U64<O>

impl SubAssign for Rights

impl<T: Timeline, U: TimeUnit> SubAssign for Duration<T, U>

impl<T: Timeline, U: TimeUnit> SubAssign<Duration<T, U>> for Instant<T, U>