pub trait SubAssign<Rhs = Self> {
// Required method
fn sub_assign(&mut self, rhs: Rhs);
}Expand description
⅀
core
The subtraction assignment operator -=.
📍code/ops re-exported from core::ops
📜
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 (const: unstable) · Sourcefn sub_assign(&mut self, rhs: Rhs)
fn sub_assign(&mut self, rhs: Rhs)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl SubAssign for AppControlSet
impl SubAssign for AsciiSet
impl SubAssign for Duration
impl SubAssign for EnumSetExample
doc or test only.impl SubAssign for EventButtons
event only.impl SubAssign for EventTagSet
event only.impl SubAssign for Float<f16>
impl SubAssign for Float<f32>
impl SubAssign for Float<f64>
impl SubAssign for Float<f128>
impl SubAssign for Int<i8>
int only.impl SubAssign for Int<i16>
int only.impl SubAssign for Int<i32>
int only.impl SubAssign for Int<i64>
int only.impl SubAssign for Int<i128>
int only.impl SubAssign for Int<isize>
int only.impl SubAssign for Int<u8>
int only.impl SubAssign for Int<u16>
int only.impl SubAssign for Int<u32>
int only.impl SubAssign for Int<u64>
int only.impl SubAssign for Int<u128>
int only.impl SubAssign for Int<usize>
int only.impl SubAssign for KeyMods
event only.impl SubAssign for Lane4_i32Example<i32>
_docs_examples only.impl SubAssign for LinuxSigactionFlags
linux only.impl SubAssign for LinuxSignalSet
linux only.impl SubAssign for LinuxTermiosControlFlags
linux only.impl SubAssign for LinuxTermiosInputFlags
linux only.impl SubAssign for LinuxTermiosLocalFlags
linux only.impl SubAssign for LinuxTermiosOutputFlags
linux only.impl SubAssign for RandQualities
impl SubAssign for RunCapInput
impl SubAssign for RunCapSystem
impl SubAssign for RunCapText
impl SubAssign for Saturating<i8>
impl SubAssign for Saturating<i16>
impl SubAssign for Saturating<i32>
impl SubAssign for Saturating<i64>
impl SubAssign for Saturating<i128>
impl SubAssign for Saturating<isize>
impl SubAssign for Saturating<u8>
impl SubAssign for Saturating<u16>
impl SubAssign for Saturating<u32>
impl SubAssign for Saturating<u64>
impl SubAssign for Saturating<u128>
impl SubAssign for Saturating<usize>
impl SubAssign for SignedDuration
impl SubAssign for TermMode
term only.impl SubAssign for TermStyle
term only.impl SubAssign for TermStyleExt
term only.impl SubAssign for TimeDelta
impl SubAssign for Wrapping<i8>
impl SubAssign for Wrapping<i16>
impl SubAssign for Wrapping<i32>
impl SubAssign for Wrapping<i64>
impl SubAssign for Wrapping<i128>
impl SubAssign for Wrapping<isize>
impl SubAssign for Wrapping<u8>
impl SubAssign for Wrapping<u16>
impl SubAssign for Wrapping<u32>
impl SubAssign for Wrapping<u64>
impl SubAssign for Wrapping<u128>
impl SubAssign for Wrapping<usize>
impl SubAssign for f16
impl SubAssign for f32
impl SubAssign for f64
impl SubAssign for f32x4
impl SubAssign for f32x8
impl SubAssign for f32x16
impl SubAssign for f64x2
impl SubAssign for f64x4
impl SubAssign for f64x8
impl SubAssign for f128
impl SubAssign for i8
impl SubAssign for i8x16
impl SubAssign for i8x32
impl SubAssign for i16
impl SubAssign for i32
impl SubAssign for i64
impl SubAssign for i16x8
impl SubAssign for i16x16
impl SubAssign for i16x32
impl SubAssign for i32x4
impl SubAssign for i32x8
impl SubAssign for i32x16
impl SubAssign for i64x2
impl SubAssign for i64x4
impl SubAssign for i64x8
impl SubAssign for i128
impl SubAssign for isize
impl SubAssign for m128
impl SubAssign for m256
impl SubAssign for m128d
impl SubAssign for m256d
impl SubAssign for u8
impl SubAssign for u8x16
impl SubAssign for u8x32
impl SubAssign for u16
impl SubAssign for u32
impl SubAssign for u64
impl SubAssign for u16x8
impl SubAssign for u16x16
impl SubAssign for u16x32
impl SubAssign for u32x4
impl SubAssign for u32x8
impl SubAssign for u32x16
impl SubAssign for u64x2
impl SubAssign for u64x4
impl SubAssign for u64x8
impl SubAssign for u128
impl SubAssign for usize
impl SubAssign<&Saturating<i8>> for Saturating<i8>
impl SubAssign<&Saturating<i16>> for Saturating<i16>
impl SubAssign<&Saturating<i32>> for Saturating<i32>
impl SubAssign<&Saturating<i64>> for Saturating<i64>
impl SubAssign<&Saturating<i128>> for Saturating<i128>
impl SubAssign<&Saturating<isize>> for Saturating<isize>
impl SubAssign<&Saturating<u8>> for Saturating<u8>
impl SubAssign<&Saturating<u16>> for Saturating<u16>
impl SubAssign<&Saturating<u32>> for Saturating<u32>
impl SubAssign<&Saturating<u64>> for Saturating<u64>
impl SubAssign<&Saturating<u128>> for Saturating<u128>
impl SubAssign<&Saturating<usize>> for Saturating<usize>
impl SubAssign<&Wrapping<i8>> for Wrapping<i8>
impl SubAssign<&Wrapping<i16>> for Wrapping<i16>
impl SubAssign<&Wrapping<i32>> for Wrapping<i32>
impl SubAssign<&Wrapping<i64>> for Wrapping<i64>
impl SubAssign<&Wrapping<i128>> for Wrapping<i128>
impl SubAssign<&Wrapping<isize>> for Wrapping<isize>
impl SubAssign<&Wrapping<u8>> for Wrapping<u8>
impl SubAssign<&Wrapping<u16>> for Wrapping<u16>
impl SubAssign<&Wrapping<u32>> for Wrapping<u32>
impl SubAssign<&Wrapping<u64>> for Wrapping<u64>
impl SubAssign<&Wrapping<u128>> for Wrapping<u128>
impl SubAssign<&Wrapping<usize>> for Wrapping<usize>
impl SubAssign<&f16> for f16
impl SubAssign<&f32> for f32
impl SubAssign<&f32x4> for f32x4
impl SubAssign<&f32x8> for f32x8
impl SubAssign<&f32x16> for f32x16
impl SubAssign<&f64> for f64
impl SubAssign<&f64x2> for f64x2
impl SubAssign<&f64x4> for f64x4
impl SubAssign<&f64x8> for f64x8
impl SubAssign<&f128> for f128
impl SubAssign<&i8> for Saturating<i8>
impl SubAssign<&i8> for Wrapping<i8>
impl SubAssign<&i8> for i8
impl SubAssign<&i8x16> for i8x16
impl SubAssign<&i8x32> for i8x32
impl SubAssign<&i16> for Saturating<i16>
impl SubAssign<&i16> for Wrapping<i16>
impl SubAssign<&i16> for i16
impl SubAssign<&i16x8> for i16x8
impl SubAssign<&i16x16> for i16x16
impl SubAssign<&i16x32> for i16x32
impl SubAssign<&i32> for Saturating<i32>
impl SubAssign<&i32> for Wrapping<i32>
impl SubAssign<&i32> for i32
impl SubAssign<&i32x4> for i32x4
impl SubAssign<&i32x8> for i32x8
impl SubAssign<&i32x16> for i32x16
impl SubAssign<&i64> for Saturating<i64>
impl SubAssign<&i64> for Wrapping<i64>
impl SubAssign<&i64> for i64
impl SubAssign<&i64x2> for i64x2
impl SubAssign<&i64x4> for i64x4
impl SubAssign<&i64x8> for i64x8
impl SubAssign<&i128> for Saturating<i128>
impl SubAssign<&i128> for Wrapping<i128>
impl SubAssign<&i128> for i128
impl SubAssign<&isize> for Saturating<isize>
impl SubAssign<&isize> for Wrapping<isize>
impl SubAssign<&isize> for isize
impl SubAssign<&u8> for Saturating<u8>
impl SubAssign<&u8> for Wrapping<u8>
impl SubAssign<&u8> for u8
impl SubAssign<&u8x16> for u8x16
impl SubAssign<&u8x32> for u8x32
impl SubAssign<&u16> for Saturating<u16>
impl SubAssign<&u16> for Wrapping<u16>
impl SubAssign<&u16> for u16
impl SubAssign<&u16x8> for u16x8
impl SubAssign<&u16x16> for u16x16
impl SubAssign<&u16x32> for u16x32
impl SubAssign<&u32> for Saturating<u32>
impl SubAssign<&u32> for Wrapping<u32>
impl SubAssign<&u32> for u32
impl SubAssign<&u32x4> for u32x4
impl SubAssign<&u32x8> for u32x8
impl SubAssign<&u32x16> for u32x16
impl SubAssign<&u64> for Saturating<u64>
impl SubAssign<&u64> for Wrapping<u64>
impl SubAssign<&u64> for u64
impl SubAssign<&u64x2> for u64x2
impl SubAssign<&u64x4> for u64x4
impl SubAssign<&u64x8> for u64x8
impl SubAssign<&u128> for Saturating<u128>
impl SubAssign<&u128> for Wrapping<u128>
impl SubAssign<&u128> for u128
impl SubAssign<&usize> for Saturating<usize>
impl SubAssign<&usize> for Wrapping<usize>
impl SubAssign<&usize> for usize
impl SubAssign<Duration> for Date
Subtracts an unsigned duration of time from a date in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Date::checked_sub.
impl SubAssign<Duration> for DateTime
Subtracts an unsigned duration of time from a datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use DateTime::checked_sub.
impl SubAssign<Duration> for Instant
impl SubAssign<Duration> for Offset
Subtracts an unsigned duration of time from an offset in place. This panics on overflow.
For checked arithmetic, see Offset::checked_sub.
impl SubAssign<Duration> for SystemTime
impl SubAssign<Duration> for Time
Subtracts an unsigned duration of time in place. This uses wrapping arithmetic.
For checked arithmetic, see Time::checked_sub.
impl SubAssign<Duration> for Timestamp
Subtracts an unsigned duration of time from a timestamp in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Timestamp::checked_sub.
impl SubAssign<Duration> for Zoned
Subtracts an unsigned duration of time from a zoned datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Zoned::checked_sub.
impl SubAssign<SignedDuration> for Date
Subtracts a signed duration of time from a date in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Date::checked_sub.
impl SubAssign<SignedDuration> for DateTime
Subtracts a signed duration of time from a datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use DateTime::checked_sub.
impl SubAssign<SignedDuration> for Offset
Subtracts a signed duration of time from an offset in place. This panics on overflow.
For checked arithmetic, see Offset::checked_sub.
impl SubAssign<SignedDuration> for Time
Subtracts a signed duration of time in place. This uses wrapping arithmetic.
For checked arithmetic, see Time::checked_sub.
impl SubAssign<SignedDuration> for Timestamp
Subtracts a signed duration of time from a timestamp in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Timestamp::checked_sub.
impl SubAssign<SignedDuration> for Zoned
Subtracts a signed duration of time from a zoned datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Zoned::checked_sub.
impl SubAssign<Span> for Date
Subtracts a span of time from a date in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Date::checked_sub.
impl SubAssign<Span> for DateTime
Subtracts a span of time from a datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use DateTime::checked_sub.
impl SubAssign<Span> for Offset
Subtracts a span of time from an offset in place. This panics on overflow.
For checked arithmetic, see Offset::checked_sub.
impl SubAssign<Span> for Time
Subtracts a span of time in place. This uses wrapping arithmetic.
For checked arithmetic, see Time::checked_sub.
impl SubAssign<Span> for Timestamp
Subtracts a span of time from a timestamp in place.
This uses checked arithmetic and panics when it fails. To handle arithmetic
without panics, use Timestamp::checked_sub. Note that the failure
condition includes overflow and using a Span with non-zero units greater
than hours.
impl SubAssign<Span> for Zoned
Subtracts a span of time from a zoned datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Zoned::checked_sub.
impl SubAssign<f16> for Float<f16>
impl SubAssign<f32> for Float<f32>
impl SubAssign<f64> for Float<f64>
impl SubAssign<f128> for Float<f128>
impl SubAssign<i8> for Int<i8>
int only.impl SubAssign<i8> for Saturating<i8>
impl SubAssign<i8> for Weekday
impl SubAssign<i8> for Wrapping<i8>
impl SubAssign<i16> for Int<i16>
int only.impl SubAssign<i16> for Saturating<i16>
impl SubAssign<i16> for Weekday
impl SubAssign<i16> for Wrapping<i16>
impl SubAssign<i32> for Int<i32>
int only.impl SubAssign<i32> for Lane4_i32Example<i32>
_docs_examples only.impl SubAssign<i32> for Saturating<i32>
impl SubAssign<i32> for Weekday
impl SubAssign<i32> for Wrapping<i32>
impl SubAssign<i64> for Int<i64>
int only.impl SubAssign<i64> for Saturating<i64>
impl SubAssign<i64> for Weekday
impl SubAssign<i64> for Wrapping<i64>
impl SubAssign<i128> for Int<i128>
int only.impl SubAssign<i128> for Saturating<i128>
impl SubAssign<i128> for Wrapping<i128>
impl SubAssign<isize> for Int<isize>
int only.impl SubAssign<isize> for Saturating<isize>
impl SubAssign<isize> for Wrapping<isize>
impl SubAssign<u8> for Int<u8>
int only.impl SubAssign<u8> for Saturating<u8>
impl SubAssign<u8> for Wrapping<u8>
impl SubAssign<u16> for Int<u16>
int only.impl SubAssign<u16> for Saturating<u16>
impl SubAssign<u16> for Wrapping<u16>
impl SubAssign<u32> for Int<u32>
int only.impl SubAssign<u32> for Saturating<u32>
impl SubAssign<u32> for Wrapping<u32>
impl SubAssign<u64> for Int<u64>
int only.impl SubAssign<u64> for Saturating<u64>
impl SubAssign<u64> for Wrapping<u64>
impl SubAssign<u128> for Int<u128>
int only.impl SubAssign<u128> for Saturating<u128>
impl SubAssign<u128> for Wrapping<u128>
impl SubAssign<usize> for Int<usize>
int only.impl SubAssign<usize> for Saturating<usize>
impl SubAssign<usize> for Wrapping<usize>
impl<'o> SubAssign<&'o Float<f16>> for Float<f16>
impl<'o> SubAssign<&'o Float<f32>> for Float<f32>
impl<'o> SubAssign<&'o Float<f64>> for Float<f64>
impl<'o> SubAssign<&'o Float<f128>> for Float<f128>
impl<'o> SubAssign<&'o Int<i8>> for Int<i8>
int only.impl<'o> SubAssign<&'o Int<i16>> for Int<i16>
int only.impl<'o> SubAssign<&'o Int<i32>> for Int<i32>
int only.impl<'o> SubAssign<&'o Int<i64>> for Int<i64>
int only.impl<'o> SubAssign<&'o Int<i128>> for Int<i128>
int only.impl<'o> SubAssign<&'o Int<isize>> for Int<isize>
int only.impl<'o> SubAssign<&'o Int<u8>> for Int<u8>
int only.impl<'o> SubAssign<&'o Int<u16>> for Int<u16>
int only.impl<'o> SubAssign<&'o Int<u32>> for Int<u32>
int only.impl<'o> SubAssign<&'o Int<u64>> for Int<u64>
int only.impl<'o> SubAssign<&'o Int<u128>> for Int<u128>
int only.impl<'o> SubAssign<&'o Int<usize>> for Int<usize>
int only.impl<'o> SubAssign<&'o f16> for Float<f16>
impl<'o> SubAssign<&'o f32> for Float<f32>
impl<'o> SubAssign<&'o f64> for Float<f64>
impl<'o> SubAssign<&'o f128> for Float<f128>
impl<'o> SubAssign<&'o i8> for Int<i8>
int only.impl<'o> SubAssign<&'o i16> for Int<i16>
int only.impl<'o> SubAssign<&'o i32> for Int<i32>
int only.impl<'o> SubAssign<&'o i64> for Int<i64>
int only.impl<'o> SubAssign<&'o i128> for Int<i128>
int only.impl<'o> SubAssign<&'o isize> for Int<isize>
int only.impl<'o> SubAssign<&'o u8> for Int<u8>
int only.impl<'o> SubAssign<&'o u16> for Int<u16>
int only.impl<'o> SubAssign<&'o u32> for Int<u32>
int only.impl<'o> SubAssign<&'o u64> for Int<u64>
int only.impl<'o> SubAssign<&'o u128> for Int<u128>
int only.impl<'o> SubAssign<&'o usize> for Int<usize>
int only.impl<T, S, A> SubAssign<&HashSet<T, S, A>> for HashSet<T, S, A>
impl<T, U, const N: usize> SubAssign<U> for Simd<T, N>
impl<T: Clone + Sub<Output = T>, const D: usize> SubAssign<&Vector<T, D>> for Vector<T, D>
lin only.