pub trait AddAssign<Rhs = Self> {
// Required method
fn add_assign(&mut self, rhs: Rhs);
}Expand description
The addition assignment operator +=.
§Examples
This example creates a Point struct that implements the AddAssign
trait, and then demonstrates add-assigning to a mutable Point.
use std::ops::AddAssign;
#[derive(Debug, Copy, Clone, PartialEq)]
struct Point {
x: i32,
y: i32,
}
impl AddAssign for Point {
fn add_assign(&mut self, other: Self) {
*self = Self {
x: self.x + other.x,
y: self.y + other.y,
};
}
}
let mut point = Point { x: 1, y: 0 };
point += Point { x: 2, y: 3 };
assert_eq!(point, Point { x: 3, y: 3 });Required Methods§
1.8.0 · Sourcefn add_assign(&mut self, rhs: Rhs)
fn add_assign(&mut self, rhs: Rhs)
Implementors§
impl AddAssign for CoreValue
impl AddAssign for TypedDecimal
impl AddAssign for TypedInteger
impl AddAssign for f16
impl AddAssign for f32
impl AddAssign for f64
impl AddAssign for f128
impl AddAssign for i8
impl AddAssign for i16
impl AddAssign for i32
impl AddAssign for i64
impl AddAssign for i128
impl AddAssign for isize
impl AddAssign for u8
impl AddAssign for u16
impl AddAssign for u32
impl AddAssign for u64
impl AddAssign for u128
impl AddAssign for usize
impl AddAssign for Text
Allow TypedDatexValue
impl AddAssign for Saturating<i8>
impl AddAssign for Saturating<i16>
impl AddAssign for Saturating<i32>
impl AddAssign for Saturating<i64>
impl AddAssign for Saturating<i128>
impl AddAssign for Saturating<isize>
impl AddAssign for Saturating<u8>
impl AddAssign for Saturating<u16>
impl AddAssign for Saturating<u32>
impl AddAssign for Saturating<u64>
impl AddAssign for Saturating<u128>
impl AddAssign for Saturating<usize>
impl AddAssign for datex_core::without_std::num::Wrapping<i8>
impl AddAssign for datex_core::without_std::num::Wrapping<i16>
impl AddAssign for datex_core::without_std::num::Wrapping<i32>
impl AddAssign for datex_core::without_std::num::Wrapping<i64>
impl AddAssign for datex_core::without_std::num::Wrapping<i128>
impl AddAssign for datex_core::without_std::num::Wrapping<isize>
impl AddAssign for datex_core::without_std::num::Wrapping<u8>
impl AddAssign for datex_core::without_std::num::Wrapping<u16>
impl AddAssign for datex_core::without_std::num::Wrapping<u32>
impl AddAssign for datex_core::without_std::num::Wrapping<u64>
impl AddAssign for datex_core::without_std::num::Wrapping<u128>
impl AddAssign for datex_core::without_std::num::Wrapping<usize>
impl AddAssign for datex_core::without_std::time::Duration
impl AddAssign for BigDecimal
impl AddAssign for TimeDelta
impl AddAssign for Checked<Limb>
impl AddAssign for crypto_bigint::wrapping::Wrapping<Limb>
impl AddAssign for EdwardsPoint
impl AddAssign for RistrettoPoint
impl AddAssign for curve25519_dalek::scalar::Scalar
impl AddAssign for BigInt
impl AddAssign for BigUint
impl AddAssign for p256::arithmetic::scalar::Scalar
impl AddAssign for p384::arithmetic::scalar::Scalar
impl AddAssign for time::duration::Duration
impl AddAssign for LengthHint
impl AddAssign<&f16> for f16
impl AddAssign<&f32> for f32
impl AddAssign<&f64> for f64
impl AddAssign<&f128> for f128
impl AddAssign<&i8> for i8
impl AddAssign<&i8> for Saturating<i8>
impl AddAssign<&i8> for datex_core::without_std::num::Wrapping<i8>
impl AddAssign<&i8> for BigDecimal
impl AddAssign<&i16> for i16
impl AddAssign<&i16> for Saturating<i16>
impl AddAssign<&i16> for datex_core::without_std::num::Wrapping<i16>
impl AddAssign<&i16> for BigDecimal
impl AddAssign<&i32> for i32
impl AddAssign<&i32> for Saturating<i32>
impl AddAssign<&i32> for datex_core::without_std::num::Wrapping<i32>
impl AddAssign<&i32> for BigDecimal
impl AddAssign<&i64> for i64
impl AddAssign<&i64> for Saturating<i64>
impl AddAssign<&i64> for datex_core::without_std::num::Wrapping<i64>
impl AddAssign<&i64> for BigDecimal
impl AddAssign<&i128> for i128
impl AddAssign<&i128> for Saturating<i128>
impl AddAssign<&i128> for datex_core::without_std::num::Wrapping<i128>
impl AddAssign<&i128> for BigDecimal
impl AddAssign<&isize> for isize
impl AddAssign<&isize> for Saturating<isize>
impl AddAssign<&isize> for datex_core::without_std::num::Wrapping<isize>
impl AddAssign<&str> for String
Implements the += operator for appending to a String.
This has the same behavior as the push_str method.
impl AddAssign<&u8> for u8
impl AddAssign<&u8> for Saturating<u8>
impl AddAssign<&u8> for datex_core::without_std::num::Wrapping<u8>
impl AddAssign<&u8> for BigDecimal
impl AddAssign<&u16> for u16
impl AddAssign<&u16> for Saturating<u16>
impl AddAssign<&u16> for datex_core::without_std::num::Wrapping<u16>
impl AddAssign<&u16> for BigDecimal
impl AddAssign<&u32> for u32
impl AddAssign<&u32> for Saturating<u32>
impl AddAssign<&u32> for datex_core::without_std::num::Wrapping<u32>
impl AddAssign<&u32> for BigDecimal
impl AddAssign<&u64> for u64
impl AddAssign<&u64> for Saturating<u64>
impl AddAssign<&u64> for datex_core::without_std::num::Wrapping<u64>
impl AddAssign<&u64> for BigDecimal
impl AddAssign<&u128> for u128
impl AddAssign<&u128> for Saturating<u128>
impl AddAssign<&u128> for datex_core::without_std::num::Wrapping<u128>
impl AddAssign<&u128> for BigDecimal
impl AddAssign<&usize> for usize
impl AddAssign<&usize> for Saturating<usize>
impl AddAssign<&usize> for datex_core::without_std::num::Wrapping<usize>
impl AddAssign<&Saturating<i8>> for Saturating<i8>
impl AddAssign<&Saturating<i16>> for Saturating<i16>
impl AddAssign<&Saturating<i32>> for Saturating<i32>
impl AddAssign<&Saturating<i64>> for Saturating<i64>
impl AddAssign<&Saturating<i128>> for Saturating<i128>
impl AddAssign<&Saturating<isize>> for Saturating<isize>
impl AddAssign<&Saturating<u8>> for Saturating<u8>
impl AddAssign<&Saturating<u16>> for Saturating<u16>
impl AddAssign<&Saturating<u32>> for Saturating<u32>
impl AddAssign<&Saturating<u64>> for Saturating<u64>
impl AddAssign<&Saturating<u128>> for Saturating<u128>
impl AddAssign<&Saturating<usize>> for Saturating<usize>
impl AddAssign<&Wrapping<i8>> for datex_core::without_std::num::Wrapping<i8>
impl AddAssign<&Wrapping<i16>> for datex_core::without_std::num::Wrapping<i16>
impl AddAssign<&Wrapping<i32>> for datex_core::without_std::num::Wrapping<i32>
impl AddAssign<&Wrapping<i64>> for datex_core::without_std::num::Wrapping<i64>
impl AddAssign<&Wrapping<i128>> for datex_core::without_std::num::Wrapping<i128>
impl AddAssign<&Wrapping<isize>> for datex_core::without_std::num::Wrapping<isize>
impl AddAssign<&Wrapping<u8>> for datex_core::without_std::num::Wrapping<u8>
impl AddAssign<&Wrapping<u16>> for datex_core::without_std::num::Wrapping<u16>
impl AddAssign<&Wrapping<u32>> for datex_core::without_std::num::Wrapping<u32>
impl AddAssign<&Wrapping<u64>> for datex_core::without_std::num::Wrapping<u64>
impl AddAssign<&Wrapping<u128>> for datex_core::without_std::num::Wrapping<u128>
impl AddAssign<&Wrapping<usize>> for datex_core::without_std::num::Wrapping<usize>
impl AddAssign<&Checked<Limb>> for Checked<Limb>
impl AddAssign<&Wrapping<Limb>> for crypto_bigint::wrapping::Wrapping<Limb>
impl AddAssign<&BigInt> for BigInt
impl AddAssign<&BigUint> for BigUint
impl AddAssign<&Scalar> for p256::arithmetic::scalar::Scalar
impl AddAssign<&Scalar> for p384::arithmetic::scalar::Scalar
impl AddAssign<i8> for Saturating<i8>
impl AddAssign<i8> for datex_core::without_std::num::Wrapping<i8>
impl AddAssign<i8> for BigDecimal
impl AddAssign<i8> for BigInt
impl AddAssign<i16> for Saturating<i16>
impl AddAssign<i16> for datex_core::without_std::num::Wrapping<i16>
impl AddAssign<i16> for BigDecimal
impl AddAssign<i16> for BigInt
impl AddAssign<i32> for Saturating<i32>
impl AddAssign<i32> for datex_core::without_std::num::Wrapping<i32>
impl AddAssign<i32> for BigDecimal
impl AddAssign<i32> for BigInt
impl AddAssign<i64> for Saturating<i64>
impl AddAssign<i64> for datex_core::without_std::num::Wrapping<i64>
impl AddAssign<i64> for BigDecimal
impl AddAssign<i64> for BigInt
impl AddAssign<i128> for Saturating<i128>
impl AddAssign<i128> for datex_core::without_std::num::Wrapping<i128>
impl AddAssign<i128> for BigDecimal
impl AddAssign<i128> for BigInt
impl AddAssign<isize> for Saturating<isize>
impl AddAssign<isize> for datex_core::without_std::num::Wrapping<isize>
impl AddAssign<isize> for BigInt
impl AddAssign<u8> for Saturating<u8>
impl AddAssign<u8> for datex_core::without_std::num::Wrapping<u8>
impl AddAssign<u8> for BigDecimal
impl AddAssign<u8> for BigInt
impl AddAssign<u8> for BigUint
impl AddAssign<u16> for Saturating<u16>
impl AddAssign<u16> for datex_core::without_std::num::Wrapping<u16>
impl AddAssign<u16> for BigDecimal
impl AddAssign<u16> for BigInt
impl AddAssign<u16> for BigUint
impl AddAssign<u32> for Saturating<u32>
impl AddAssign<u32> for datex_core::without_std::num::Wrapping<u32>
impl AddAssign<u32> for BigDecimal
impl AddAssign<u32> for BigInt
impl AddAssign<u32> for BigUint
impl AddAssign<u64> for Saturating<u64>
impl AddAssign<u64> for datex_core::without_std::num::Wrapping<u64>
impl AddAssign<u64> for BigDecimal
impl AddAssign<u64> for BigInt
impl AddAssign<u64> for BigUint
impl AddAssign<u128> for Saturating<u128>
impl AddAssign<u128> for datex_core::without_std::num::Wrapping<u128>
impl AddAssign<u128> for BigDecimal
impl AddAssign<u128> for BigInt
impl AddAssign<u128> for BigUint
impl AddAssign<usize> for Length
impl AddAssign<usize> for Saturating<usize>
impl AddAssign<usize> for datex_core::without_std::num::Wrapping<usize>
impl AddAssign<usize> for BigInt
impl AddAssign<usize> for BigUint
impl AddAssign<usize> for LengthHint
impl AddAssign<Duration> for std::time::Instant
impl AddAssign<Duration> for SystemTime
impl AddAssign<Duration> for NaiveDateTime
Add-assign std::time::Duration to 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_add_signed to get an Option instead.
impl AddAssign<Duration> for NaiveTime
Add-assign std::time::Duration to NaiveTime.
This wraps around and never overflows or underflows. In particular the addition ignores integral number of days.
impl AddAssign<Duration> for time::date::Date
impl AddAssign<Duration> for time::duration::Duration
impl AddAssign<Duration> for OffsetDateTime
impl AddAssign<Duration> for PrimitiveDateTime
impl AddAssign<Duration> for Time
impl AddAssign<Duration> for UtcDateTime
impl AddAssign<Duration> for tokio::time::instant::Instant
impl AddAssign<TimeDelta> for NaiveDate
Add-assign of TimeDelta to NaiveDate.
This discards the fractional days in TimeDelta, rounding to the closest integral number of days
towards TimeDelta::zero().
§Panics
Panics if the resulting date would be out of range.
Consider using NaiveDate::checked_add_signed to get an Option instead.
impl AddAssign<TimeDelta> for NaiveDateTime
Add-assign TimeDelta to 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_add_signed to get an Option instead.
impl AddAssign<TimeDelta> for NaiveTime
Add-assign TimeDelta to NaiveTime.
This wraps around and never overflows or underflows. In particular the addition ignores integral number of days.
impl AddAssign<BigInt> for BigDecimal
impl AddAssign<Duration> for datex_core::without_std::time::Duration
impl AddAssign<Duration> for std::time::Instant
impl AddAssign<Duration> for SystemTime
impl AddAssign<Duration> for time::date::Date
impl AddAssign<Duration> for OffsetDateTime
impl AddAssign<Duration> for PrimitiveDateTime
impl AddAssign<Duration> for Time
impl AddAssign<Duration> for UtcDateTime
impl<'a> AddAssign for Cow<'a, str>
impl<'a> AddAssign<&'a str> for Cow<'a, str>
impl<'a, N> AddAssign<N> for BigDecimalwhere
N: Into<BigDecimalRef<'a>>,
impl<'a, T> AddAssign<&'a Complex<T>> for Complex<T>
impl<'a, T> AddAssign<&'a Ratio<T>> for Ratio<T>
impl<'a, T> AddAssign<&'a OrderedFloat<T>> for OrderedFloat<T>
impl<'a, T> AddAssign<&'a T> for Complex<T>
impl<'a, T> AddAssign<&'a T> for Ratio<T>
impl<'a, T> AddAssign<&'a T> for OrderedFloat<T>
impl<'b> AddAssign<&'b EdwardsPoint> for EdwardsPoint
impl<'b> AddAssign<&'b RistrettoPoint> for RistrettoPoint
impl<'b> AddAssign<&'b Scalar> for curve25519_dalek::scalar::Scalar
impl<C> AddAssign for ScalarPrimitive<C>where
C: Curve,
impl<C> AddAssign for ProjectivePoint<C>where
C: PrimeCurveParams,
impl<C> AddAssign<&ScalarPrimitive<C>> for ScalarPrimitive<C>where
C: Curve,
impl<C> AddAssign<&AffinePoint<C>> for ProjectivePoint<C>where
C: PrimeCurveParams,
impl<C> AddAssign<&ProjectivePoint<C>> for ProjectivePoint<C>where
C: PrimeCurveParams,
impl<C> AddAssign<AffinePoint<C>> for ProjectivePoint<C>where
C: PrimeCurveParams,
impl<MOD, const LIMBS: usize> AddAssign for Residue<MOD, LIMBS>where
MOD: ResidueParams<LIMBS>,
impl<MOD, const LIMBS: usize> AddAssign<&Residue<MOD, LIMBS>> for Residue<MOD, LIMBS>where
MOD: ResidueParams<LIMBS>,
impl<O> AddAssign for F32<O>where
O: ByteOrder,
impl<O> AddAssign for F64<O>where
O: ByteOrder,
impl<O> AddAssign for I16<O>where
O: ByteOrder,
impl<O> AddAssign for I32<O>where
O: ByteOrder,
impl<O> AddAssign for I64<O>where
O: ByteOrder,
impl<O> AddAssign for I128<O>where
O: ByteOrder,
impl<O> AddAssign for Isize<O>where
O: ByteOrder,
impl<O> AddAssign for U16<O>where
O: ByteOrder,
impl<O> AddAssign for U32<O>where
O: ByteOrder,
impl<O> AddAssign for U64<O>where
O: ByteOrder,
impl<O> AddAssign for U128<O>where
O: ByteOrder,
impl<O> AddAssign for Usize<O>where
O: ByteOrder,
impl<O> AddAssign<f32> for F32<O>where
O: ByteOrder,
impl<O> AddAssign<f64> for F64<O>where
O: ByteOrder,
impl<O> AddAssign<i16> for I16<O>where
O: ByteOrder,
impl<O> AddAssign<i32> for I32<O>where
O: ByteOrder,
impl<O> AddAssign<i64> for I64<O>where
O: ByteOrder,
impl<O> AddAssign<i128> for I128<O>where
O: ByteOrder,
impl<O> AddAssign<isize> for Isize<O>where
O: ByteOrder,
impl<O> AddAssign<u16> for U16<O>where
O: ByteOrder,
impl<O> AddAssign<u32> for U32<O>where
O: ByteOrder,
impl<O> AddAssign<u64> for U64<O>where
O: ByteOrder,
impl<O> AddAssign<u128> for U128<O>where
O: ByteOrder,
impl<O> AddAssign<usize> for Usize<O>where
O: ByteOrder,
impl<O> AddAssign<F32<O>> for f32where
O: ByteOrder,
impl<O> AddAssign<F64<O>> for f64where
O: ByteOrder,
impl<O> AddAssign<I16<O>> for i16where
O: ByteOrder,
impl<O> AddAssign<I32<O>> for i32where
O: ByteOrder,
impl<O> AddAssign<I64<O>> for i64where
O: ByteOrder,
impl<O> AddAssign<I128<O>> for i128where
O: ByteOrder,
impl<O> AddAssign<Isize<O>> for isizewhere
O: ByteOrder,
impl<O> AddAssign<U16<O>> for u16where
O: ByteOrder,
impl<O> AddAssign<U32<O>> for u32where
O: ByteOrder,
impl<O> AddAssign<U64<O>> for u64where
O: ByteOrder,
impl<O> AddAssign<U128<O>> for u128where
O: ByteOrder,
impl<O> AddAssign<Usize<O>> for usizewhere
O: ByteOrder,
impl<T> AddAssign for Complex<T>
impl<T> AddAssign for Ratio<T>
impl<T> AddAssign for NotNan<T>
impl<T> AddAssign for OrderedFloat<T>where
T: AddAssign,
impl<T> AddAssign<&NotNan<T>> for NotNan<T>
impl<T> AddAssign<T> for Value
impl<T> AddAssign<T> for Complex<T>
impl<T> AddAssign<T> for Ratio<T>
impl<T> AddAssign<T> for OrderedFloat<T>where
T: AddAssign,
impl<T, U, const N: usize> AddAssign<U> for Simd<T, N>
impl<Tz> AddAssign<Duration> for DateTime<Tz>where
Tz: TimeZone,
Add-assign std::time::Duration to DateTime.
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 DateTime<Tz>::checked_add_signed to get an Option instead.
impl<Tz> AddAssign<TimeDelta> for chrono::date::Date<Tz>where
Tz: TimeZone,
impl<Tz> AddAssign<TimeDelta> for DateTime<Tz>where
Tz: TimeZone,
Add-assign chrono::Duration to DateTime.
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 DateTime<Tz>::checked_add_signed to get an Option instead.