tracing::stdlib::ops

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

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

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>

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>

1.74.0 · Source§

impl SubAssign<i8> for Saturating<i8>

1.60.0 · Source§

impl SubAssign<i8> for Wrapping<i8>

1.74.0 · Source§

impl SubAssign<i16> for Saturating<i16>

1.60.0 · Source§

impl SubAssign<i16> for Wrapping<i16>

1.74.0 · Source§

impl SubAssign<i32> for Saturating<i32>

1.60.0 · Source§

impl SubAssign<i32> for Wrapping<i32>

1.74.0 · Source§

impl SubAssign<i64> for Saturating<i64>

1.60.0 · Source§

impl SubAssign<i64> for Wrapping<i64>

1.74.0 · Source§

impl SubAssign<i128> for Saturating<i128>

1.60.0 · Source§

impl SubAssign<i128> for Wrapping<i128>

1.74.0 · Source§

impl SubAssign<isize> for Saturating<isize>

1.60.0 · Source§

impl SubAssign<isize> for Wrapping<isize>

1.74.0 · Source§

impl SubAssign<u8> for Saturating<u8>

1.60.0 · Source§

impl SubAssign<u8> for Wrapping<u8>

1.74.0 · Source§

impl SubAssign<u16> for Saturating<u16>

1.60.0 · Source§

impl SubAssign<u16> for Wrapping<u16>

1.74.0 · Source§

impl SubAssign<u32> for Saturating<u32>

1.60.0 · Source§

impl SubAssign<u32> for Wrapping<u32>

1.74.0 · Source§

impl SubAssign<u64> for Saturating<u64>

1.60.0 · Source§

impl SubAssign<u64> for Wrapping<u64>

1.74.0 · Source§

impl SubAssign<u128> for Saturating<u128>

1.60.0 · Source§

impl SubAssign<u128> for Wrapping<u128>

1.74.0 · Source§

impl SubAssign<usize> for Saturating<usize>

1.60.0 · Source§

impl SubAssign<usize> for Wrapping<usize>

1.9.0 · Source§

impl SubAssign<Duration> for Instant

1.9.0 · Source§

impl SubAssign<Duration> for SystemTime

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,

impl SubAssign for Point

impl SubAssign for Au

impl SubAssign for Flags

impl SubAssign<f64> for Moment

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

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

impl SubAssign for Sense

impl SubAssign for Vec2

impl SubAssign<Vec2> for Pos2

impl SubAssign<i8> for Margin

impl<T, U> SubAssign for SideOffsets2D<T, U>
where T: SubAssign<T>,

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 Ticks

impl SubAssign for Signed<u32>

impl SubAssign for Signed<u64>

impl SubAssign for Bytes

impl SubAssign for Other

impl SubAssign<i32> for Rank

impl SubAssign<u32> for Signed<u32>

impl SubAssign<u64> for Signed<u64>

impl SubAssign for GLAPI

impl SubAssign for bf16

impl SubAssign for f16

impl SubAssign<&bf16> for bf16

impl SubAssign<&f16> for f16

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

impl SubAssign<i8> for Weekday

impl SubAssign<Span> for Date

impl SubAssign<Span> for Time

impl SubAssign<Span> for Zoned

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri128<MIN1, MAX1>> for ri16<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri128<MIN1, MAX1>> for ri32<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri128<MIN1, MAX1>> for ri64<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri128<MIN1, MAX1>> for ri8<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri128<MIN2, MAX2>> for ri128<MIN1, MAX1>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri16<MIN1, MAX1>> for ri128<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri16<MIN1, MAX1>> for ri32<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri16<MIN1, MAX1>> for ri64<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri16<MIN1, MAX1>> for ri8<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri16<MIN2, MAX2>> for ri16<MIN1, MAX1>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri32<MIN1, MAX1>> for ri128<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri32<MIN1, MAX1>> for ri16<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri32<MIN1, MAX1>> for ri64<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri32<MIN1, MAX1>> for ri8<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri32<MIN2, MAX2>> for ri32<MIN1, MAX1>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri64<MIN1, MAX1>> for ri128<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri64<MIN1, MAX1>> for ri16<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri64<MIN1, MAX1>> for ri32<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri64<MIN1, MAX1>> for ri8<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri64<MIN2, MAX2>> for ri64<MIN1, MAX1>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri8<MIN1, MAX1>> for ri128<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri8<MIN1, MAX1>> for ri16<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri8<MIN1, MAX1>> for ri32<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri8<MIN1, MAX1>> for ri64<MIN2, MAX2>

impl<const MIN1: i128, const MAX1: i128, const MIN2: i128, const MAX2: i128> SubAssign<ri8<MIN2, MAX2>> for ri8<MIN1, MAX1>

impl<const MIN: i128, const MAX: i128> SubAssign<Constant> for ri128<MIN, MAX>

impl<const MIN: i128, const MAX: i128> SubAssign<Constant> for ri16<MIN, MAX>

impl<const MIN: i128, const MAX: i128> SubAssign<Constant> for ri32<MIN, MAX>

impl<const MIN: i128, const MAX: i128> SubAssign<Constant> for ri64<MIN, MAX>

impl<const MIN: i128, const MAX: i128> SubAssign<Constant> for ri8<MIN, MAX>

impl<T: SubAssign<T> + Copy> SubAssign for LogicalVec2<T>

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<'a, T: SubAssign<&'a T>> SubAssign<&'a OrderedFloat<T>> for OrderedFloat<T>

impl<T: SubAssign> SubAssign<T> for OrderedFloat<T>

impl<T: FloatCore + SubAssign> SubAssign<&NotNan<T>> for NotNan<T>

impl<T: FloatCore + SubAssign> SubAssign<T> for NotNan<T>

impl SubAssign for F32x2

impl SubAssign for F32x4

impl SubAssign for I32x2

impl SubAssign for I32x4

impl SubAssign for Access

impl SubAssign for IFlags

impl SubAssign for Mode

impl SubAssign for OFlags

impl SubAssign for Flags

impl SubAssign for Anchor

impl SubAssign for Point

impl SubAssign for Mode

impl SubAssign for Resize

impl SubAssign for State

impl SubAssign for Flags

impl SubAssign for Kind

impl SubAssign for Anchor

impl SubAssign for Flags

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>