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

Source§

impl SubAssign for Effects

§Examples

let mut effects = anstyle::Effects::BOLD | anstyle::Effects::UNDERLINE;
effects -= anstyle::Effects::BOLD;
assert_eq!(format!("{:?}", effects), "Effects(UNDERLINE)");
Source§

impl SubAssign for Fe32

Source§

impl SubAssign for EdwardsPoint

Source§

impl SubAssign for RistrettoPoint

Source§

impl SubAssign for Scalar

Source§

impl SubAssign for SignedDuration

Source§

impl SubAssign for StaticVarApiFlags

Source§

impl SubAssign for CipherCtxFlags

Source§

impl SubAssign for CMSOptions

Source§

impl SubAssign for OcspFlag

Source§

impl SubAssign for Pkcs7Flags

Source§

impl SubAssign for ExtensionContext

Source§

impl SubAssign for ShutdownState

Source§

impl SubAssign for SslMode

Source§

impl SubAssign for SslOptions

Source§

impl SubAssign for SslSessionCacheMode

Source§

impl SubAssign for SslVerifyMode

Source§

impl SubAssign for X509CheckFlags

Source§

impl SubAssign for X509VerifyFlags

Source§

impl SubAssign for WasmFeatures

Source§

impl SubAssign for SegmentFlags

Source§

impl SubAssign for SymbolFlags

Source§

impl SubAssign for CodeMetadata

Source§

impl SubAssign for EsdtLocalRoleFlags

Source§

impl SubAssign for multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign for multiversx_sc_snippets::imports::RustBigUint

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<&BigInt> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<&BigUint> for multiversx_sc_snippets::imports::RustBigUint

Source§

impl SubAssign<i8> for Weekday

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<i16> for Weekday

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<i32> for Weekday

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<i64> for Weekday

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 multiversx_sc_snippets::imports::RustBigInt

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 multiversx_sc_snippets::imports::RustBigInt

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 multiversx_sc_snippets::imports::RustBigInt

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<u8> for multiversx_sc_snippets::imports::RustBigUint

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<u16> for multiversx_sc_snippets::imports::RustBigUint

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<u32> for multiversx_sc_snippets::imports::RustBigUint

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<u64> for multiversx_sc_snippets::imports::RustBigUint

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<u128> for multiversx_sc_snippets::imports::RustBigUint

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 multiversx_sc_snippets::imports::RustBigInt

Source§

impl SubAssign<usize> for multiversx_sc_snippets::imports::RustBigUint

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 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.

Source§

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.

Source§

impl SubAssign<Duration> for Time

Subtracts an unsigned duration of time in place. This uses wrapping arithmetic.

For checked arithmetic, see Time::checked_sub.

Source§

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.

Source§

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.

Source§

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.

Source§

impl SubAssign<Duration> for tokio::time::instant::Instant

Source§

impl SubAssign<Effects> for Style

§Examples

let mut style = anstyle::Style::new().bold().underline();
style -= anstyle::Effects::BOLD.into();
Source§

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.

Source§

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.

Source§

impl SubAssign<SignedDuration> for Time

Subtracts a signed duration of time in place. This uses wrapping arithmetic.

For checked arithmetic, see Time::checked_sub.

Source§

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.

Source§

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.

Source§

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.

Source§

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.

Source§

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.

Source§

impl SubAssign<Span> for Time

Subtracts a span of time in place. This uses wrapping arithmetic.

For checked arithmetic, see Time::checked_sub.

Source§

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.

Source§

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.

Source§

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.

Source§

impl<'b> SubAssign<&'b EdwardsPoint> for EdwardsPoint

Source§

impl<'b> SubAssign<&'b RistrettoPoint> for RistrettoPoint

Source§

impl<'b> SubAssign<&'b Scalar> for Scalar

Source§

impl<M> SubAssign for BigFloat<M>
where M: ManagedTypeApi,

Source§

impl<M> SubAssign for multiversx_sc_snippets::imports::BigInt<M>
where M: ManagedTypeApi,

Source§

impl<M> SubAssign for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<M> SubAssign<&BigFloat<M>> for BigFloat<M>
where M: ManagedTypeApi,

Source§

impl<M> SubAssign<&BigInt<M>> for multiversx_sc_snippets::imports::BigInt<M>
where M: ManagedTypeApi,

Source§

impl<M> SubAssign<&BigUint<M>> for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<M> SubAssign<u32> for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<M> SubAssign<u64> for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<M, D1, D2> SubAssign<&ManagedDecimal<M, D2>> for ManagedDecimal<M, D1>
where M: ManagedTypeApi, D1: Decimals, D2: Decimals,

Source§

impl<M, D1, D2> SubAssign<&ManagedDecimalSigned<M, D2>> for ManagedDecimalSigned<M, D1>
where M: ManagedTypeApi, D1: Decimals, D2: Decimals,

Source§

impl<M, D1, D2> SubAssign<ManagedDecimal<M, D2>> for ManagedDecimal<M, D1>
where M: ManagedTypeApi, D1: Decimals, D2: Decimals,

Source§

impl<M, D1, D2> SubAssign<ManagedDecimalSigned<M, D2>> for ManagedDecimalSigned<M, D1>
where M: ManagedTypeApi, D1: Decimals, D2: Decimals,

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, S, A> SubAssign<&HashSet<T, S, A>> for HashSet<T, S, A>
where T: Eq + Hash + Clone, S: BuildHasher, A: Allocator,

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,