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 · Sourcefn sub_assign(&mut self, rhs: Rhs)
fn sub_assign(&mut self, rhs: Rhs)
Implementors§
impl SubAssign for f16
impl SubAssign for f32
impl SubAssign for f64
impl SubAssign for f128
impl SubAssign for i8
impl SubAssign for i16
impl SubAssign for i32
impl SubAssign for i64
impl SubAssign for i128
impl SubAssign for isize
impl SubAssign for u8
impl SubAssign for u16
impl SubAssign for u32
impl SubAssign for u64
impl SubAssign for u128
impl SubAssign for usize
impl SubAssign for ShutdownState
impl SubAssign for SslMode
impl SubAssign for SslOptions
impl SubAssign for SslSessionCacheMode
impl SubAssign for SslVerifyMode
impl SubAssign for X509CheckFlags
impl SubAssign for X509VerifyFlags
impl SubAssign for BigInt
impl SubAssign for BigUint
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 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 core::time::Duration
impl SubAssign for Access
impl SubAssign for AtFlags
impl SubAssign for CreateFlags
impl SubAssign for DupFlags
impl SubAssign for Duration
impl SubAssign for FallocateFlags
impl SubAssign for FdFlags
impl SubAssign for IFlags
impl SubAssign for MemfdFlags
impl SubAssign for Mode
impl SubAssign for OFlags
impl SubAssign for ReadFlags
impl SubAssign for ReadWriteFlags
impl SubAssign for RenameFlags
impl SubAssign for ResolveFlags
impl SubAssign for SealFlags
impl SubAssign for SignedDuration
impl SubAssign for StatVfsMountFlags
impl SubAssign for StatxAttributes
impl SubAssign for StatxFlags
impl SubAssign for Timespec
impl SubAssign for WatchFlags
impl SubAssign for XattrFlags
impl SubAssign<&f16> for f16
impl SubAssign<&f32> for f32
impl SubAssign<&f64> for f64
impl SubAssign<&f128> for f128
impl SubAssign<&i8> for i8
impl SubAssign<&i8> for Saturating<i8>
impl SubAssign<&i8> for Wrapping<i8>
impl SubAssign<&i16> for i16
impl SubAssign<&i16> for Saturating<i16>
impl SubAssign<&i16> for Wrapping<i16>
impl SubAssign<&i32> for i32
impl SubAssign<&i32> for Saturating<i32>
impl SubAssign<&i32> for Wrapping<i32>
impl SubAssign<&i64> for i64
impl SubAssign<&i64> for Saturating<i64>
impl SubAssign<&i64> for Wrapping<i64>
impl SubAssign<&i128> for i128
impl SubAssign<&i128> for Saturating<i128>
impl SubAssign<&i128> for Wrapping<i128>
impl SubAssign<&isize> for isize
impl SubAssign<&isize> for Saturating<isize>
impl SubAssign<&isize> for Wrapping<isize>
impl SubAssign<&u8> for u8
impl SubAssign<&u8> for Saturating<u8>
impl SubAssign<&u8> for Wrapping<u8>
impl SubAssign<&u16> for u16
impl SubAssign<&u16> for Saturating<u16>
impl SubAssign<&u16> for Wrapping<u16>
impl SubAssign<&u32> for u32
impl SubAssign<&u32> for Saturating<u32>
impl SubAssign<&u32> for Wrapping<u32>
impl SubAssign<&u64> for u64
impl SubAssign<&u64> for Saturating<u64>
impl SubAssign<&u64> for Wrapping<u64>
impl SubAssign<&u128> for u128
impl SubAssign<&u128> for Saturating<u128>
impl SubAssign<&u128> for Wrapping<u128>
impl SubAssign<&usize> for usize
impl SubAssign<&usize> for Saturating<usize>
impl SubAssign<&usize> for Wrapping<usize>
impl SubAssign<&BigInt> for BigInt
impl SubAssign<&BigUint> for BigUint
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<i8> for BigInt
impl SubAssign<i8> for Saturating<i8>
impl SubAssign<i8> for Wrapping<i8>
impl SubAssign<i8> for Weekday
impl SubAssign<i16> for BigInt
impl SubAssign<i16> for Saturating<i16>
impl SubAssign<i16> for Wrapping<i16>
impl SubAssign<i16> for Weekday
impl SubAssign<i32> for BigInt
impl SubAssign<i32> for Saturating<i32>
impl SubAssign<i32> for Wrapping<i32>
impl SubAssign<i32> for Weekday
impl SubAssign<i64> for BigInt
impl SubAssign<i64> for Saturating<i64>
impl SubAssign<i64> for Wrapping<i64>
impl SubAssign<i64> for Weekday
impl SubAssign<i128> for BigInt
impl SubAssign<i128> for Saturating<i128>
impl SubAssign<i128> for Wrapping<i128>
impl SubAssign<isize> for BigInt
impl SubAssign<isize> for Saturating<isize>
impl SubAssign<isize> for Wrapping<isize>
impl SubAssign<u8> for BigInt
impl SubAssign<u8> for BigUint
impl SubAssign<u8> for Saturating<u8>
impl SubAssign<u8> for Wrapping<u8>
impl SubAssign<u16> for BigInt
impl SubAssign<u16> for BigUint
impl SubAssign<u16> for Saturating<u16>
impl SubAssign<u16> for Wrapping<u16>
impl SubAssign<u32> for BigInt
impl SubAssign<u32> for BigUint
impl SubAssign<u32> for Saturating<u32>
impl SubAssign<u32> for Wrapping<u32>
impl SubAssign<u64> for BigInt
impl SubAssign<u64> for BigUint
impl SubAssign<u64> for Saturating<u64>
impl SubAssign<u64> for Wrapping<u64>
impl SubAssign<u128> for BigInt
impl SubAssign<u128> for BigUint
impl SubAssign<u128> for Saturating<u128>
impl SubAssign<u128> for Wrapping<u128>
impl SubAssign<usize> for BigInt
impl SubAssign<usize> for BigUint
impl SubAssign<usize> for Saturating<usize>
impl SubAssign<usize> for Wrapping<usize>
impl SubAssign<Duration> for std::time::Instant
impl SubAssign<Duration> for SystemTime
impl SubAssign<Duration> for Date
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 Duration
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 OffsetDateTime
impl SubAssign<Duration> for PrimitiveDateTime
impl SubAssign<Duration> for Time
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 UtcDateTime
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<Duration> for core::time::Duration
impl SubAssign<Duration> for std::time::Instant
impl SubAssign<Duration> for SystemTime
std only.impl SubAssign<Duration> for Date
impl SubAssign<Duration> for OffsetDateTime
impl SubAssign<Duration> for PrimitiveDateTime
impl SubAssign<Duration> for Time
impl SubAssign<Duration> for UtcDateTime
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].