SubAssign

Trait SubAssign 

1.8.0 (const: unstable) · 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 (const: unstable) · Source§

impl SubAssign for f16

1.8.0 (const: unstable) · Source§

impl SubAssign for f32

1.8.0 (const: unstable) · Source§

impl SubAssign for f64

1.8.0 (const: unstable) · Source§

impl SubAssign for f128

1.8.0 (const: unstable) · Source§

impl SubAssign for i8

1.8.0 (const: unstable) · Source§

impl SubAssign for i16

1.8.0 (const: unstable) · Source§

impl SubAssign for i32

1.8.0 (const: unstable) · Source§

impl SubAssign for i64

1.8.0 (const: unstable) · Source§

impl SubAssign for i128

1.8.0 (const: unstable) · Source§

impl SubAssign for isize

1.8.0 (const: unstable) · Source§

impl SubAssign for u8

1.8.0 (const: unstable) · Source§

impl SubAssign for u16

1.8.0 (const: unstable) · Source§

impl SubAssign for u32

1.8.0 (const: unstable) · Source§

impl SubAssign for u64

1.8.0 (const: unstable) · Source§

impl SubAssign for u128

1.8.0 (const: unstable) · Source§

impl SubAssign for usize

Source§

impl SubAssign for PtraceAccessMode

Source§

impl SubAssign for SecureBits

Source§

impl SubAssign for Access

Source§

impl SubAssign for InotifyMask

Source§

impl SubAssign for IptIpFlagsV4

Source§

impl SubAssign for IptIpFlagsV6

Source§

impl SubAssign for IptIpInverseFlags

Source§

impl SubAssign for NfIpHooks

Source§

impl SubAssign for NfNatRangeFlags

Source§

impl SubAssign for XtTcpInverseFlags

Source§

impl SubAssign for XtUdpInverseFlags

Source§

impl SubAssign for MountFlags

Source§

impl SubAssign for starnix_uapi::open_flags::OpenFlags

Source§

impl SubAssign for PersonalityFlags

Source§

impl SubAssign for SealFlags

Source§

impl SubAssign for UnmountFlags

Source§

impl SubAssign for FdEvents

Source§

impl SubAssign for ResolveFlags

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<usize>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<i8>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<i16>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<i32>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<i64>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<i128>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<isize>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<u8>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<u16>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<u32>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<u64>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<u128>

1.8.0 (const: unstable) · Source§

impl SubAssign for Wrapping<usize>

1.9.0 (const: unstable) · Source§

impl SubAssign for starnix_uapi::arch32::__static_assertions::_core::time::Duration

Source§

impl SubAssign for TimeDelta

§

impl SubAssign for AddressTaggingFeatureFlags

§

impl SubAssign for AllocateMode

§

impl SubAssign for AtRestFlags

§

impl SubAssign for BlockIndex

§

impl SubAssign for BtiOptions

§

impl SubAssign for ClockOpts

§

impl SubAssign for ConfigMutability

§

impl SubAssign for ConfigMutability

§

impl SubAssign for CpuFeatureFlags

§

impl SubAssign for DebugLogOpts

§

impl SubAssign for DynamicFlags

§

impl SubAssign for ExceptionChannelOptions

§

impl SubAssign for FileSignal

§

impl SubAssign for Flags

§

impl SubAssign for IobAccess

§

impl SubAssign for JobCriticalOptions

§

impl SubAssign for MemoryStallKind

§

impl SubAssign for ModeType

§

impl SubAssign for NodeAttributeFlags

§

impl SubAssign for NodeAttributesQuery

§

impl SubAssign for NodeProtocolKinds

§

impl SubAssign for OpenFlags

§

impl SubAssign for Operations

§

impl SubAssign for PagerOptions

§

impl SubAssign for PagerWritebackBeginOptions

§

impl SubAssign for PortOptions

§

impl SubAssign for ProcessInfoFlags

§

impl SubAssign for ProcessOptions

§

impl SubAssign for RaiseExceptionOptions

§

impl SubAssign for ResourceFlag

§

impl SubAssign for ResourceKind

§

impl SubAssign for Rights

§

impl SubAssign for Signals

§

impl SubAssign for SocketOpts

§

impl SubAssign for SocketReadOpts

§

impl SubAssign for SocketWriteOpts

§

impl SubAssign for StreamOptions

§

impl SubAssign for StreamReadOptions

§

impl SubAssign for StreamWriteOptions

§

impl SubAssign for TaskRuntimeInfo

§

impl SubAssign for TransferDataOptions

§

impl SubAssign for UnlinkFlags

§

impl SubAssign for VirtualMemoryFeatureFlags

§

impl SubAssign for VmarFlags

§

impl SubAssign for VmarFlagsExtended

§

impl SubAssign for VmoChildOptions

§

impl SubAssign for VmoFlags

§

impl SubAssign for VmoInfoFlags

§

impl SubAssign for VmoOptions

§

impl SubAssign for WaitAsyncOpts

§

impl SubAssign for WatchMask

1.22.0 (const: unstable) · Source§

impl SubAssign<&f16> for f16

1.22.0 (const: unstable) · Source§

impl SubAssign<&f32> for f32

1.22.0 (const: unstable) · Source§

impl SubAssign<&f64> for f64

1.22.0 (const: unstable) · Source§

impl SubAssign<&f128> for f128

1.22.0 (const: unstable) · Source§

impl SubAssign<&i8> for i8

1.74.0 (const: unstable) · Source§

impl SubAssign<&i8> for Saturating<i8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i8> for Wrapping<i8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i16> for i16

1.74.0 (const: unstable) · Source§

impl SubAssign<&i16> for Saturating<i16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i16> for Wrapping<i16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i32> for i32

1.74.0 (const: unstable) · Source§

impl SubAssign<&i32> for Saturating<i32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i32> for Wrapping<i32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i64> for i64

1.74.0 (const: unstable) · Source§

impl SubAssign<&i64> for Saturating<i64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i64> for Wrapping<i64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i128> for i128

1.74.0 (const: unstable) · Source§

impl SubAssign<&i128> for Saturating<i128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i128> for Wrapping<i128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&isize> for isize

1.74.0 (const: unstable) · Source§

impl SubAssign<&isize> for Saturating<isize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&isize> for Wrapping<isize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u8> for u8

1.74.0 (const: unstable) · Source§

impl SubAssign<&u8> for Saturating<u8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u8> for Wrapping<u8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u16> for u16

1.74.0 (const: unstable) · Source§

impl SubAssign<&u16> for Saturating<u16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u16> for Wrapping<u16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u32> for u32

1.74.0 (const: unstable) · Source§

impl SubAssign<&u32> for Saturating<u32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u32> for Wrapping<u32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u64> for u64

1.74.0 (const: unstable) · Source§

impl SubAssign<&u64> for Saturating<u64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u64> for Wrapping<u64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u128> for u128

1.74.0 (const: unstable) · Source§

impl SubAssign<&u128> for Saturating<u128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u128> for Wrapping<u128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&usize> for usize

1.74.0 (const: unstable) · Source§

impl SubAssign<&usize> for Saturating<usize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&usize> for Wrapping<usize>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i8>> for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i16>> for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i32>> for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i64>> for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i128>> for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<isize>> for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u8>> for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u16>> for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u32>> for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u64>> for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u128>> for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<usize>> for Saturating<usize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i8>> for Wrapping<i8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i16>> for Wrapping<i16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i32>> for Wrapping<i32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i64>> for Wrapping<i64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i128>> for Wrapping<i128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<isize>> for Wrapping<isize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u8>> for Wrapping<u8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u16>> for Wrapping<u16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u32>> for Wrapping<u32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u64>> for Wrapping<u64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u128>> for Wrapping<u128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<usize>> for Wrapping<usize>

1.74.0 (const: unstable) · Source§

impl SubAssign<i8> for Saturating<i8>

1.60.0 (const: unstable) · Source§

impl SubAssign<i8> for Wrapping<i8>

1.74.0 (const: unstable) · Source§

impl SubAssign<i16> for Saturating<i16>

1.60.0 (const: unstable) · Source§

impl SubAssign<i16> for Wrapping<i16>

1.74.0 (const: unstable) · Source§

impl SubAssign<i32> for Saturating<i32>

1.60.0 (const: unstable) · Source§

impl SubAssign<i32> for Wrapping<i32>

1.74.0 (const: unstable) · Source§

impl SubAssign<i64> for Saturating<i64>

1.60.0 (const: unstable) · Source§

impl SubAssign<i64> for Wrapping<i64>

1.74.0 (const: unstable) · Source§

impl SubAssign<i128> for Saturating<i128>

1.60.0 (const: unstable) · Source§

impl SubAssign<i128> for Wrapping<i128>

1.74.0 (const: unstable) · Source§

impl SubAssign<isize> for Saturating<isize>

1.60.0 (const: unstable) · Source§

impl SubAssign<isize> for Wrapping<isize>

1.74.0 (const: unstable) · Source§

impl SubAssign<u8> for Saturating<u8>

1.60.0 (const: unstable) · Source§

impl SubAssign<u8> for Wrapping<u8>

1.74.0 (const: unstable) · Source§

impl SubAssign<u16> for Saturating<u16>

1.60.0 (const: unstable) · Source§

impl SubAssign<u16> for Wrapping<u16>

1.74.0 (const: unstable) · Source§

impl SubAssign<u32> for Saturating<u32>

1.60.0 (const: unstable) · Source§

impl SubAssign<u32> for Wrapping<u32>

§

impl SubAssign<u32> for BlockIndex

1.74.0 (const: unstable) · Source§

impl SubAssign<u64> for Saturating<u64>

1.60.0 (const: unstable) · Source§

impl SubAssign<u64> for Wrapping<u64>

1.74.0 (const: unstable) · Source§

impl SubAssign<u128> for Saturating<u128>

1.60.0 (const: unstable) · Source§

impl SubAssign<u128> for Wrapping<u128>

1.74.0 (const: unstable) · Source§

impl SubAssign<usize> for Saturating<usize>

1.60.0 (const: unstable) · Source§

impl SubAssign<usize> for Wrapping<usize>

1.9.0 · Source§

impl SubAssign<Duration> for std::time::Instant

1.9.0 · Source§

impl SubAssign<Duration> for SystemTime

Source§

impl SubAssign<Duration> for NaiveDateTime

Subtract-assign std::time::Duration from NaiveDateTime.

As a part of Chrono’s [leap second handling], the addition assumes that there is no leap second ever, except when the NaiveDateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

§Panics

Panics if the resulting date would be out of range. Consider using NaiveDateTime::checked_sub_signed to get an Option instead.

Source§

impl SubAssign<Duration> for NaiveTime

Subtract-assign std::time::Duration from NaiveTime.

This wraps around and never overflows or underflows. In particular the subtraction ignores integral number of days.

Source§

impl SubAssign<TimeDelta> for NaiveDate

Subtract-assign TimeDelta from NaiveDate.

This discards the fractional days in TimeDelta, rounding to the closest integral number of days towards TimeDelta::zero(). It is the same as the addition with a negated TimeDelta.

§Panics

Panics if the resulting date would be out of range. Consider using NaiveDate::checked_sub_signed to get an Option instead.

Source§

impl SubAssign<TimeDelta> for NaiveDateTime

Subtract-assign TimeDelta from NaiveDateTime.

This is the same as the addition with a negated TimeDelta.

As a part of Chrono’s [leap second handling], the addition assumes that there is no leap second ever, except when the NaiveDateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

§Panics

Panics if the resulting date would be out of range. Consider using NaiveDateTime::checked_sub_signed to get an Option instead.

Source§

impl SubAssign<TimeDelta> for NaiveTime

Subtract-assign TimeDelta from NaiveTime.

This wraps around and never overflows or underflows. In particular the subtraction ignores integral number of days.

§

impl SubAssign<Duration<BootTimeline>> for BootInstant

§

impl SubAssign<Duration<MonotonicTimeline>> for MonotonicInstant

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,

§

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

§

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

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<Tz> SubAssign<Duration> for DateTime<Tz>
where Tz: TimeZone,

Subtract-assign std::time::Duration from DateTime.

As a part of Chrono’s [leap second handling], the addition assumes that there is no leap second ever, except when the DateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

§Panics

Panics if the resulting date would be out of range. Consider using DateTime<Tz>::checked_sub_signed to get an Option instead.

Source§

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

Source§

impl<Tz> SubAssign<TimeDelta> for DateTime<Tz>
where Tz: TimeZone,

Subtract-assign TimeDelta from DateTime.

This is the same as the addition with a negated TimeDelta.

As a part of Chrono’s [leap second handling], the addition assumes that there is no leap second ever, except when the DateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

§Panics

Panics if the resulting date would be out of range. Consider using DateTime<Tz>::checked_sub_signed to get an Option instead.