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 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 LengthHint
impl AddAssign for TimeDelta
impl AddAssign for SignedDuration
impl AddAssign for BigInt
impl AddAssign for BigUint
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 Wrapping<i8>
impl AddAssign for Wrapping<i16>
impl AddAssign for Wrapping<i32>
impl AddAssign for Wrapping<i64>
impl AddAssign for Wrapping<i128>
impl AddAssign for Wrapping<isize>
impl AddAssign for Wrapping<u8>
impl AddAssign for Wrapping<u16>
impl AddAssign for Wrapping<u32>
impl AddAssign for Wrapping<u64>
impl AddAssign for Wrapping<u128>
impl AddAssign for Wrapping<usize>
impl AddAssign for Duration
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 Wrapping<i8>
impl AddAssign<&i16> for i16
impl AddAssign<&i16> for Saturating<i16>
impl AddAssign<&i16> for Wrapping<i16>
impl AddAssign<&i32> for i32
impl AddAssign<&i32> for Saturating<i32>
impl AddAssign<&i32> for Wrapping<i32>
impl AddAssign<&i64> for i64
impl AddAssign<&i64> for Saturating<i64>
impl AddAssign<&i64> for Wrapping<i64>
impl AddAssign<&i128> for i128
impl AddAssign<&i128> for Saturating<i128>
impl AddAssign<&i128> for Wrapping<i128>
impl AddAssign<&isize> for isize
impl AddAssign<&isize> for Saturating<isize>
impl AddAssign<&isize> for 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 Wrapping<u8>
impl AddAssign<&u16> for u16
impl AddAssign<&u16> for Saturating<u16>
impl AddAssign<&u16> for Wrapping<u16>
impl AddAssign<&u32> for u32
impl AddAssign<&u32> for Saturating<u32>
impl AddAssign<&u32> for Wrapping<u32>
impl AddAssign<&u64> for u64
impl AddAssign<&u64> for Saturating<u64>
impl AddAssign<&u64> for Wrapping<u64>
impl AddAssign<&u128> for u128
impl AddAssign<&u128> for Saturating<u128>
impl AddAssign<&u128> for Wrapping<u128>
impl AddAssign<&usize> for usize
impl AddAssign<&usize> for Saturating<usize>
impl AddAssign<&usize> for Wrapping<usize>
impl AddAssign<&BigInt> for BigInt
impl AddAssign<&BigUint> for BigUint
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 Wrapping<i8>
impl AddAssign<&Wrapping<i16>> for Wrapping<i16>
impl AddAssign<&Wrapping<i32>> for Wrapping<i32>
impl AddAssign<&Wrapping<i64>> for Wrapping<i64>
impl AddAssign<&Wrapping<i128>> for Wrapping<i128>
impl AddAssign<&Wrapping<isize>> for Wrapping<isize>
impl AddAssign<&Wrapping<u8>> for Wrapping<u8>
impl AddAssign<&Wrapping<u16>> for Wrapping<u16>
impl AddAssign<&Wrapping<u32>> for Wrapping<u32>
impl AddAssign<&Wrapping<u64>> for Wrapping<u64>
impl AddAssign<&Wrapping<u128>> for Wrapping<u128>
impl AddAssign<&Wrapping<usize>> for Wrapping<usize>
impl AddAssign<i8> for Weekday
impl AddAssign<i8> for BigInt
impl AddAssign<i8> for Saturating<i8>
impl AddAssign<i8> for Wrapping<i8>
impl AddAssign<i16> for Weekday
impl AddAssign<i16> for BigInt
impl AddAssign<i16> for Saturating<i16>
impl AddAssign<i16> for Wrapping<i16>
impl AddAssign<i32> for Weekday
impl AddAssign<i32> for BigInt
impl AddAssign<i32> for Saturating<i32>
impl AddAssign<i32> for Wrapping<i32>
impl AddAssign<i64> for Weekday
impl AddAssign<i64> for BigInt
impl AddAssign<i64> for Saturating<i64>
impl AddAssign<i64> for Wrapping<i64>
impl AddAssign<i128> for BigInt
impl AddAssign<i128> for Saturating<i128>
impl AddAssign<i128> for Wrapping<i128>
impl AddAssign<isize> for BigInt
impl AddAssign<isize> for Saturating<isize>
impl AddAssign<isize> for Wrapping<isize>
impl AddAssign<u8> for BigInt
impl AddAssign<u8> for BigUint
impl AddAssign<u8> for Saturating<u8>
impl AddAssign<u8> for Wrapping<u8>
impl AddAssign<u16> for BigInt
impl AddAssign<u16> for BigUint
impl AddAssign<u16> for Saturating<u16>
impl AddAssign<u16> for Wrapping<u16>
impl AddAssign<u32> for BigInt
impl AddAssign<u32> for BigUint
impl AddAssign<u32> for Saturating<u32>
impl AddAssign<u32> for Wrapping<u32>
impl AddAssign<u64> for BigInt
impl AddAssign<u64> for BigUint
impl AddAssign<u64> for Saturating<u64>
impl AddAssign<u64> for Wrapping<u64>
impl AddAssign<u128> for BigInt
impl AddAssign<u128> for BigUint
impl AddAssign<u128> for Saturating<u128>
impl AddAssign<u128> for Wrapping<u128>
impl AddAssign<usize> for LengthHint
impl AddAssign<usize> for BigInt
impl AddAssign<usize> for BigUint
impl AddAssign<usize> for Saturating<usize>
impl AddAssign<usize> for Wrapping<usize>
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<SignedDuration> for rustmax::jiff::civil::Date
Adds a signed duration of time to a date in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Date::checked_add
.
impl AddAssign<SignedDuration> for rustmax::jiff::civil::DateTime
Adds a signed duration of time to a datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use DateTime::checked_add
.
impl AddAssign<SignedDuration> for Time
Adds a signed duration of time in place. This uses wrapping arithmetic.
For checked arithmetic, see Time::checked_add
.
impl AddAssign<SignedDuration> for Timestamp
Adds a signed duration of time to a timestamp in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Timestamp::checked_add
.
impl AddAssign<SignedDuration> for Zoned
Adds a signed duration of time to a zoned datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Zoned::checked_add
.
impl AddAssign<SignedDuration> for Offset
Adds a signed duration of time to an offset in place. This panics on overflow.
For checked arithmetic, see Offset::checked_add
.
impl AddAssign<Span> for rustmax::jiff::civil::Date
Adds a span of time to a date in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Date::checked_add
.
impl AddAssign<Span> for rustmax::jiff::civil::DateTime
Adds a span of time to a datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use DateTime::checked_add
.
impl AddAssign<Span> for Time
Adds a span of time in place. This uses wrapping arithmetic.
For checked arithmetic, see Time::checked_add
.
impl AddAssign<Span> for Timestamp
Adds a span of time to a timestamp in place.
This uses checked arithmetic and panics when it fails. To handle arithmetic
without panics, use Timestamp::checked_add
. Note that the failure
condition includes overflow and using a Span
with non-zero units greater
than hours.
impl AddAssign<Span> for Zoned
Adds a span of time to a zoned datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Zoned::checked_add
.
impl AddAssign<Span> for Offset
Adds a span of time to an offset in place. This panics on overflow.
For checked arithmetic, see Offset::checked_add
.
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 rustmax::jiff::civil::Date
Adds an unsigned duration of time to a date in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Date::checked_add
.
impl AddAssign<Duration> for rustmax::jiff::civil::DateTime
Adds an unsigned duration of time to a datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use DateTime::checked_add
.
impl AddAssign<Duration> for Time
Adds an unsigned duration of time in place. This uses wrapping arithmetic.
For checked arithmetic, see Time::checked_add
.
impl AddAssign<Duration> for Timestamp
Adds an unsigned duration of time to a timestamp in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Timestamp::checked_add
.
impl AddAssign<Duration> for Zoned
Adds an unsigned duration of time to a zoned datetime in place.
This uses checked arithmetic and panics on overflow. To handle overflow
without panics, use Zoned::checked_add
.
impl AddAssign<Duration> for Offset
Adds an unsigned duration of time to an offset in place. This panics on overflow.
For checked arithmetic, see Offset::checked_add
.
impl AddAssign<Duration> for rustmax::std::time::Instant
impl AddAssign<Duration> for SystemTime
impl AddAssign<Duration> for rustmax::tokio::time::Instant
impl<'a> AddAssign for Cow<'a, str>
impl<'a> AddAssign<&'a EvalResult> for EvalResult
impl<'a> AddAssign<&'a str> for Cow<'a, str>
impl<'a, T> AddAssign<&'a Histogram<T>> for Histogram<T>where
T: Counter,
impl<O> AddAssign for zerocopy::byteorder::F32<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::F32<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::F64<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::F64<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::I16<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::I16<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::I32<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::I32<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::I64<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::I64<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::I128<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::I128<O>where
O: ByteOrder,
impl<O> AddAssign for Isize<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::U16<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::U16<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::U32<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::U32<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::U64<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::U64<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::U128<O>where
O: ByteOrder,
impl<O> AddAssign for zerocopy::byteorder::U128<O>where
O: ByteOrder,
impl<O> AddAssign for Usize<O>where
O: ByteOrder,
impl<O> AddAssign<f32> for zerocopy::byteorder::F32<O>where
O: ByteOrder,
impl<O> AddAssign<f64> for zerocopy::byteorder::F64<O>where
O: ByteOrder,
impl<O> AddAssign<i16> for zerocopy::byteorder::I16<O>where
O: ByteOrder,
impl<O> AddAssign<i32> for zerocopy::byteorder::I32<O>where
O: ByteOrder,
impl<O> AddAssign<i64> for zerocopy::byteorder::I64<O>where
O: ByteOrder,
impl<O> AddAssign<i128> for zerocopy::byteorder::I128<O>where
O: ByteOrder,
impl<O> AddAssign<isize> for Isize<O>where
O: ByteOrder,
impl<O> AddAssign<u16> for zerocopy::byteorder::U16<O>where
O: ByteOrder,
impl<O> AddAssign<u32> for zerocopy::byteorder::U32<O>where
O: ByteOrder,
impl<O> AddAssign<u64> for zerocopy::byteorder::U64<O>where
O: ByteOrder,
impl<O> AddAssign<u128> for zerocopy::byteorder::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 Histogram<T>where
T: Counter,
impl<T> AddAssign<u64> for Histogram<T>where
T: Counter,
impl<T, U, const N: usize> AddAssign<U> for Simd<T, N>
impl<Tz> AddAssign<TimeDelta> for rustmax::chrono::Date<Tz>where
Tz: TimeZone,
impl<Tz> AddAssign<TimeDelta> for rustmax::chrono::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.
impl<Tz> AddAssign<Duration> for rustmax::chrono::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.