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 DrawFlags

Source§

impl SubAssign for DrawListFlags

Source§

impl SubAssign for BackendFlags

Source§

impl SubAssign for ButtonFlags

Source§

impl SubAssign for ColorEditFlags

Source§

impl SubAssign for ComboBoxFlags

Source§

impl SubAssign for ConfigFlags

Source§

impl SubAssign for DMat2

Source§

impl SubAssign for DMat3

Source§

impl SubAssign for DMat4

Source§

impl SubAssign for DVec2

Source§

impl SubAssign for DVec3

Source§

impl SubAssign for DVec4

Source§

impl SubAssign for DragDropFlags

Source§

impl SubAssign for FontAtlasFlags

Source§

impl SubAssign for I16Vec2

Source§

impl SubAssign for I16Vec3

Source§

impl SubAssign for I16Vec4

Source§

impl SubAssign for I64Vec2

Source§

impl SubAssign for I64Vec3

Source§

impl SubAssign for I64Vec4

Source§

impl SubAssign for IVec2

Source§

impl SubAssign for IVec3

Source§

impl SubAssign for IVec4

Source§

impl SubAssign for InputTextCallback

Source§

impl SubAssign for InputTextFlags

Source§

impl SubAssign for InputTextMultilineCallback

Source§

impl SubAssign for ItemHoveredFlags

Source§

impl SubAssign for JoystickHats

Source§

impl SubAssign for Mat2

Source§

impl SubAssign for Mat3

Source§

impl SubAssign for Mat3A

Source§

impl SubAssign for Mat4

Source§

impl SubAssign for Modifiers

Source§

impl SubAssign for SelectableFlags

Source§

impl SubAssign for SliderFlags

Source§

impl SubAssign for TabBarFlags

Source§

impl SubAssign for TabItemFlags

Source§

impl SubAssign for TreeNodeFlags

Source§

impl SubAssign for U16Vec2

Source§

impl SubAssign for U16Vec3

Source§

impl SubAssign for U16Vec4

Source§

impl SubAssign for U64Vec2

Source§

impl SubAssign for U64Vec3

Source§

impl SubAssign for U64Vec4

Source§

impl SubAssign for UVec2

Source§

impl SubAssign for UVec3

Source§

impl SubAssign for UVec4

Source§

impl SubAssign for Vec2

Source§

impl SubAssign for Vec3

Source§

impl SubAssign for Vec3A

Source§

impl SubAssign for Vec4

Source§

impl SubAssign for WindowFlags

Source§

impl SubAssign for WindowFocusedFlags

Source§

impl SubAssign for WindowHoveredFlags

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 bf16

Source§

impl SubAssign for f16

Source§

impl SubAssign for BigInt

Source§

impl SubAssign for BigUint

Source§

impl SubAssign for Transformations

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>

Source§

impl SubAssign<&bf16> for bf16

Source§

impl SubAssign<&f16> for f16

Source§

impl SubAssign<&BigInt> for BigInt

Source§

impl SubAssign<&BigUint> for BigUint

Source§

impl SubAssign<f32> for Vec2

Source§

impl SubAssign<f32> for Vec3

Source§

impl SubAssign<f32> for Vec3A

Source§

impl SubAssign<f32> for Vec4

Source§

impl SubAssign<f64> for DVec2

Source§

impl SubAssign<f64> for DVec3

Source§

impl SubAssign<f64> for DVec4

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 I16Vec2

Source§

impl SubAssign<i16> for I16Vec3

Source§

impl SubAssign<i16> for I16Vec4

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 IVec2

Source§

impl SubAssign<i32> for IVec3

Source§

impl SubAssign<i32> for IVec4

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 I64Vec2

Source§

impl SubAssign<i64> for I64Vec3

Source§

impl SubAssign<i64> for I64Vec4

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

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

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

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 U16Vec2

Source§

impl SubAssign<u16> for U16Vec3

Source§

impl SubAssign<u16> for U16Vec4

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 UVec2

Source§

impl SubAssign<u32> for UVec3

Source§

impl SubAssign<u32> for UVec4

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 U64Vec2

Source§

impl SubAssign<u64> for U64Vec3

Source§

impl SubAssign<u64> for U64Vec4

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

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

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

1.9.0 · Source§

impl SubAssign<Duration> for Instant

1.9.0 · Source§

impl SubAssign<Duration> for SystemTime

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<O> SubAssign for Isize<O>
where O: ByteOrder,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<O> SubAssign for Usize<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<f32> for F32<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<f64> for F64<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<i16> for I16<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<i32> for I32<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<i64> for I64<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<i128> for I128<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<isize> for Isize<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<u16> for U16<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<u32> for U32<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<u64> for U64<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<u128> for U128<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<usize> for Usize<O>
where O: ByteOrder,

Source§

impl<O> SubAssign<F32<O>> for f32
where O: ByteOrder,

Source§

impl<O> SubAssign<F64<O>> for f64
where O: ByteOrder,

Source§

impl<O> SubAssign<I16<O>> for i16
where O: ByteOrder,

Source§

impl<O> SubAssign<I32<O>> for i32
where O: ByteOrder,

Source§

impl<O> SubAssign<I64<O>> for i64
where O: ByteOrder,

Source§

impl<O> SubAssign<I128<O>> for i128
where O: ByteOrder,

Source§

impl<O> SubAssign<Isize<O>> for isize
where O: ByteOrder,

Source§

impl<O> SubAssign<U16<O>> for u16
where O: ByteOrder,

Source§

impl<O> SubAssign<U32<O>> for u32
where O: ByteOrder,

Source§

impl<O> SubAssign<U64<O>> for u64
where O: ByteOrder,

Source§

impl<O> SubAssign<U128<O>> for u128
where O: ByteOrder,

Source§

impl<O> SubAssign<Usize<O>> for usize
where O: ByteOrder,

Source§

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

Source§

impl<T> SubAssign for Gray_v08<T>
where T: Sub<Output = T> + Copy,

px - px

Source§

impl<T> SubAssign for Grb<T>
where T: Sub<Output = T> + Copy,

px - px

Source§

impl<T> SubAssign for Rgb<T>
where T: Sub<Output = T> + Copy,

px - px

Source§

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

Source§

impl<T> SubAssign<T> for Argb<T>
where T: Copy + Sub<Output = T>,

px - 1

Source§

impl<T> SubAssign<T> for Gray_v08<T>
where T: Copy + Sub<Output = T>,

px - 1

Source§

impl<T> SubAssign<T> for GrayAlpha_v08<T>
where T: Copy + Sub<Output = T>,

px - 1

Source§

impl<T> SubAssign<T> for Grb<T>
where T: Copy + Sub<Output = T>,

px - 1

Source§

impl<T> SubAssign<T> for Rgb<T>
where T: Copy + Sub<Output = T>,

px - 1

Source§

impl<T> SubAssign<T> for Rgba<T>
where T: Copy + Sub<Output = T>,

px - 1

Source§

impl<T, A> SubAssign for Argb<T, A>
where T: Sub<Output = T> + Copy, A: Sub<Output = A> + Copy,

px - px

Source§

impl<T, A> SubAssign for GrayAlpha_v08<T, A>
where T: Sub<Output = T> + Copy, A: Sub<Output = A> + Copy,

px - px

Source§

impl<T, A> SubAssign for Rgba<T, A>
where T: Sub<Output = T> + Copy, A: Sub<Output = A> + Copy,

px - px

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,