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 TimeDelta
impl AddAssign for comfy_wgpu::egui::Vec2
impl AddAssign for AllocInfo
impl AddAssign for Frame
impl AddAssign for Duration
impl AddAssign for comfy_wgpu::IVec2
impl AddAssign for comfy_wgpu::Mat3
impl AddAssign for comfy_wgpu::Mat4
impl AddAssign for comfy_wgpu::UVec2
impl AddAssign for comfy_wgpu::Vec2
impl AddAssign for comfy_wgpu::Vec3
impl AddAssign for comfy_wgpu::Vec4
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 Point
impl AddAssign for MilliBel
impl AddAssign for glam::f32::mat3::Mat3
impl AddAssign for glam::f32::sse2::mat2::Mat2
impl AddAssign for glam::f32::sse2::mat2::Mat2
impl AddAssign for glam::f32::sse2::mat3a::Mat3A
impl AddAssign for glam::f32::sse2::mat3a::Mat3A
impl AddAssign for glam::f32::sse2::mat4::Mat4
impl AddAssign for glam::f32::sse2::vec3a::Vec3A
impl AddAssign for glam::f32::sse2::vec3a::Vec3A
impl AddAssign for glam::f32::sse2::vec4::Vec4
impl AddAssign for glam::f32::vec2::Vec2
impl AddAssign for glam::f32::vec3::Vec3
impl AddAssign for glam::f64::dmat2::DMat2
impl AddAssign for glam::f64::dmat2::DMat2
impl AddAssign for glam::f64::dmat3::DMat3
impl AddAssign for glam::f64::dmat3::DMat3
impl AddAssign for glam::f64::dmat4::DMat4
impl AddAssign for glam::f64::dmat4::DMat4
impl AddAssign for glam::f64::dvec2::DVec2
impl AddAssign for glam::f64::dvec2::DVec2
impl AddAssign for glam::f64::dvec3::DVec3
impl AddAssign for glam::f64::dvec3::DVec3
impl AddAssign for glam::f64::dvec4::DVec4
impl AddAssign for glam::f64::dvec4::DVec4
impl AddAssign for I16Vec2
impl AddAssign for I16Vec3
impl AddAssign for I16Vec4
impl AddAssign for glam::i32::ivec2::IVec2
impl AddAssign for glam::i32::ivec3::IVec3
impl AddAssign for glam::i32::ivec3::IVec3
impl AddAssign for glam::i32::ivec4::IVec4
impl AddAssign for glam::i32::ivec4::IVec4
impl AddAssign for glam::i64::i64vec2::I64Vec2
impl AddAssign for glam::i64::i64vec2::I64Vec2
impl AddAssign for glam::i64::i64vec3::I64Vec3
impl AddAssign for glam::i64::i64vec3::I64Vec3
impl AddAssign for glam::i64::i64vec4::I64Vec4
impl AddAssign for glam::i64::i64vec4::I64Vec4
impl AddAssign for U16Vec2
impl AddAssign for U16Vec3
impl AddAssign for U16Vec4
impl AddAssign for glam::u32::uvec2::UVec2
impl AddAssign for glam::u32::uvec3::UVec3
impl AddAssign for glam::u32::uvec3::UVec3
impl AddAssign for glam::u32::uvec4::UVec4
impl AddAssign for glam::u32::uvec4::UVec4
impl AddAssign for glam::u64::u64vec2::U64Vec2
impl AddAssign for glam::u64::u64vec2::U64Vec2
impl AddAssign for glam::u64::u64vec3::U64Vec3
impl AddAssign for glam::u64::u64vec3::U64Vec3
impl AddAssign for glam::u64::u64vec4::U64Vec4
impl AddAssign for glam::u64::u64vec4::U64Vec4
impl AddAssign for bf16
impl AddAssign for f16
impl AddAssign for Timespec
impl AddAssign for symphonia_core::dsp::complex::Complex
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<&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<&bf16> for bf16
impl AddAssign<&f16> for f16
impl AddAssign<f32> for comfy_wgpu::Vec2
impl AddAssign<f32> for comfy_wgpu::Vec3
impl AddAssign<f32> for comfy_wgpu::Vec4
impl AddAssign<f32> for glam::f32::sse2::vec3a::Vec3A
impl AddAssign<f32> for glam::f32::sse2::vec3a::Vec3A
impl AddAssign<f32> for glam::f32::sse2::vec4::Vec4
impl AddAssign<f32> for glam::f32::vec2::Vec2
impl AddAssign<f32> for glam::f32::vec3::Vec3
impl AddAssign<f64> for glam::f64::dvec2::DVec2
impl AddAssign<f64> for glam::f64::dvec2::DVec2
impl AddAssign<f64> for glam::f64::dvec3::DVec3
impl AddAssign<f64> for glam::f64::dvec3::DVec3
impl AddAssign<f64> for glam::f64::dvec4::DVec4
impl AddAssign<f64> for glam::f64::dvec4::DVec4
impl AddAssign<i8> for Saturating<i8>
impl AddAssign<i8> for Wrapping<i8>
impl AddAssign<i16> for Saturating<i16>
impl AddAssign<i16> for Wrapping<i16>
impl AddAssign<i16> for I16Vec2
impl AddAssign<i16> for I16Vec3
impl AddAssign<i16> for I16Vec4
impl AddAssign<i32> for comfy_wgpu::IVec2
impl AddAssign<i32> for Saturating<i32>
impl AddAssign<i32> for Wrapping<i32>
impl AddAssign<i32> for glam::i32::ivec2::IVec2
impl AddAssign<i32> for glam::i32::ivec3::IVec3
impl AddAssign<i32> for glam::i32::ivec3::IVec3
impl AddAssign<i32> for glam::i32::ivec4::IVec4
impl AddAssign<i32> for glam::i32::ivec4::IVec4
impl AddAssign<i64> for Saturating<i64>
impl AddAssign<i64> for Wrapping<i64>
impl AddAssign<i64> for glam::i64::i64vec2::I64Vec2
impl AddAssign<i64> for glam::i64::i64vec2::I64Vec2
impl AddAssign<i64> for glam::i64::i64vec3::I64Vec3
impl AddAssign<i64> for glam::i64::i64vec3::I64Vec3
impl AddAssign<i64> for glam::i64::i64vec4::I64Vec4
impl AddAssign<i64> for glam::i64::i64vec4::I64Vec4
impl AddAssign<i128> for Saturating<i128>
impl AddAssign<i128> for Wrapping<i128>
impl AddAssign<isize> for Saturating<isize>
impl AddAssign<isize> for Wrapping<isize>
impl AddAssign<u8> for Saturating<u8>
impl AddAssign<u8> for Wrapping<u8>
impl AddAssign<u16> for Saturating<u16>
impl AddAssign<u16> for Wrapping<u16>
impl AddAssign<u16> for U16Vec2
impl AddAssign<u16> for U16Vec3
impl AddAssign<u16> for U16Vec4
impl AddAssign<u32> for comfy_wgpu::UVec2
impl AddAssign<u32> for Saturating<u32>
impl AddAssign<u32> for Wrapping<u32>
impl AddAssign<u32> for glam::u32::uvec2::UVec2
impl AddAssign<u32> for glam::u32::uvec3::UVec3
impl AddAssign<u32> for glam::u32::uvec3::UVec3
impl AddAssign<u32> for glam::u32::uvec4::UVec4
impl AddAssign<u32> for glam::u32::uvec4::UVec4
impl AddAssign<u64> for ClockTime
impl AddAssign<u64> for Saturating<u64>
impl AddAssign<u64> for Wrapping<u64>
impl AddAssign<u64> for glam::u64::u64vec2::U64Vec2
impl AddAssign<u64> for glam::u64::u64vec2::U64Vec2
impl AddAssign<u64> for glam::u64::u64vec3::U64Vec3
impl AddAssign<u64> for glam::u64::u64vec3::U64Vec3
impl AddAssign<u64> for glam::u64::u64vec4::U64Vec4
impl AddAssign<u64> for glam::u64::u64vec4::U64Vec4
impl AddAssign<u128> for Saturating<u128>
impl AddAssign<u128> for Wrapping<u128>
impl AddAssign<usize> for CCursor
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<Vec2> for Pos2
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 Instant
impl AddAssign<Duration> for SystemTime
impl<'a> AddAssign for Cow<'a, str>
impl<'a> AddAssign<&'a str> for Cow<'a, str>
impl<'a, T> AddAssign<&'a Complex<T>> for comfy_wgpu::Complex<T>
impl<'a, T> AddAssign<&'a OrderedFloat<T>> for OrderedFloat<T>
impl<'a, T> AddAssign<&'a T> for comfy_wgpu::Complex<T>
impl<'a, T> AddAssign<&'a T> for OrderedFloat<T>
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 Angle<T>where
T: AddAssign,
impl<T> AddAssign for comfy_wgpu::Complex<T>
impl<T> AddAssign for OrderedFloat<T>where
T: AddAssign,
impl<T> AddAssign for NotNan<T>
impl<T> AddAssign<&NotNan<T>> for NotNan<T>
impl<T> AddAssign<&T> for NotNan<T>
impl<T> AddAssign<T> for comfy_wgpu::Complex<T>
impl<T> AddAssign<T> for OrderedFloat<T>where
T: AddAssign,
impl<T> AddAssign<T> for NotNan<T>
impl<T, Src, Dst> AddAssign<Translation2D<T, Dst, Dst>> for Translation2D<T, Src, Dst>where
T: AddAssign,
impl<T, Src, Dst> AddAssign<Translation3D<T, Dst, Dst>> for Translation3D<T, Src, Dst>where
T: AddAssign,
impl<T, U> AddAssign for Length<T, U>where
T: AddAssign,
impl<T, U> AddAssign for SideOffsets2D<T, U>where
T: AddAssign,
impl<T, U> AddAssign for Size2D<T, U>where
T: AddAssign,
impl<T, U> AddAssign for Size3D<T, U>where
T: AddAssign,
impl<T, U> AddAssign for Vector2D<T, U>
impl<T, U> AddAssign for Vector3D<T, U>
impl<T, U> AddAssign<Size2D<T, U>> for Point2D<T, U>where
T: AddAssign,
impl<T, U> AddAssign<Size3D<T, U>> for Point3D<T, U>where
T: AddAssign,
impl<T, U> AddAssign<Vector2D<T, U>> for Point2D<T, U>
impl<T, U> AddAssign<Vector3D<T, U>> for Point3D<T, U>
impl<T, U, const N: usize> AddAssign<U> for Simd<T, N>
impl<Tz> AddAssign<TimeDelta> for 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.
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.