Trait nom::lib::std::ops::SubAssign1.8.0[][src]

pub trait SubAssign<Rhs = Self> {
    pub fn sub_assign(&mut self, rhs: Rhs);
}
[]

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

pub fn sub_assign(&mut self, rhs: Rhs)[src][]

Performs the -= operation.

Example

let mut x: u32 = 12;
x -= 1;
assert_eq!(x, 11);

Implementations on Foreign Types

impl SubAssign<Duration> for Instant[src]

impl SubAssign<Duration> for SystemTime[src]

impl<'_> SubAssign<&'_ usize> for usize[src]

impl SubAssign<Wrapping<i64>> for Wrapping<i64>[src]

impl SubAssign<Wrapping<i128>> for Wrapping<i128>[src]

impl<'_> SubAssign<&'_ i32> for i32[src]

impl<'_> SubAssign<&'_ Wrapping<i32>> for Wrapping<i32>[src]

impl<'_> SubAssign<&'_ Wrapping<u8>> for Wrapping<u8>[src]

impl<'_> SubAssign<&'_ Wrapping<i64>> for Wrapping<i64>[src]

impl<'_> SubAssign<&'_ isize> for isize[src]

impl<'_> SubAssign<&'_ Wrapping<u16>> for Wrapping<u16>[src]

impl SubAssign<u64> for u64[src]

impl SubAssign<Wrapping<u64>> for Wrapping<u64>[src]

impl SubAssign<i32> for i32[src]

impl SubAssign<i128> for i128[src]

impl SubAssign<Duration> for Duration[src]

impl SubAssign<f64> for f64[src]

impl SubAssign<usize> for usize[src]

impl SubAssign<Wrapping<u128>> for Wrapping<u128>[src]

impl SubAssign<Wrapping<isize>> for Wrapping<isize>[src]

impl SubAssign<Wrapping<i32>> for Wrapping<i32>[src]

impl<'_> SubAssign<&'_ i128> for i128[src]

impl SubAssign<i16> for i16[src]

impl SubAssign<isize> for isize[src]

impl<'_> SubAssign<&'_ Wrapping<usize>> for Wrapping<usize>[src]

impl<'_> SubAssign<&'_ u16> for u16[src]

impl<'_> SubAssign<&'_ u8> for u8[src]

impl SubAssign<Wrapping<i16>> for Wrapping<i16>[src]

impl SubAssign<Wrapping<u32>> for Wrapping<u32>[src]

impl SubAssign<i8> for i8[src]

impl<'_> SubAssign<&'_ Wrapping<i16>> for Wrapping<i16>[src]

impl<'_> SubAssign<&'_ f64> for f64[src]

impl<'_> SubAssign<&'_ Wrapping<u32>> for Wrapping<u32>[src]

impl SubAssign<f32> for f32[src]

impl<'_> SubAssign<&'_ u128> for u128[src]

impl<'_> SubAssign<&'_ u32> for u32[src]

impl SubAssign<u16> for u16[src]

impl<'_> SubAssign<&'_ Wrapping<u128>> for Wrapping<u128>[src]

impl SubAssign<Wrapping<i8>> for Wrapping<i8>[src]

impl<'_> SubAssign<&'_ Wrapping<i8>> for Wrapping<i8>[src]

impl<'_> SubAssign<&'_ Wrapping<i128>> for Wrapping<i128>[src]

impl<'_> SubAssign<&'_ i16> for i16[src]

impl<'_> SubAssign<&'_ u64> for u64[src]

impl<'_> SubAssign<&'_ f32> for f32[src]

impl<'_> SubAssign<&'_ Wrapping<isize>> for Wrapping<isize>[src]

impl SubAssign<u128> for u128[src]

impl SubAssign<Wrapping<usize>> for Wrapping<usize>[src]

impl SubAssign<u32> for u32[src]

impl<'_> SubAssign<&'_ Wrapping<u64>> for Wrapping<u64>[src]

impl SubAssign<i64> for i64[src]

impl<'_> SubAssign<&'_ i8> for i8[src]

impl<'_> SubAssign<&'_ i64> for i64[src]

impl SubAssign<Wrapping<u8>> for Wrapping<u8>[src]

impl SubAssign<u8> for u8[src]

impl SubAssign<Wrapping<u16>> for Wrapping<u16>[src]

Implementors

impl<N: SubAssign<N>> SubAssign<Deg<N>> for Deg<N>

impl<N: SubAssign<N>> SubAssign<Rad<N>> for Rad<N>

impl SubAssign<Duration> for NaiveDate

impl SubAssign<Duration> for NaiveDateTime

impl SubAssign<Duration> for NaiveTime

impl<T> SubAssign<Dual<T>> for Dual<T> where
    T: Sub<Output = T> + Copy

impl SubAssign<Modifiers> for Modifiers

impl SubAssign<JoystickHats> for JoystickHats

impl SubAssign<MapReadFlags> for MapReadFlags

impl SubAssign<MapWriteFlags> for MapWriteFlags

impl SubAssign<MapReadWriteFlags> for MapReadWriteFlags

impl SubAssign<FloatDuration> for FloatDuration

impl SubAssign<Duration> for FloatInstant

impl<'b, N, R1, C1, R2, C2, SA, SB> SubAssign<&'b Matrix<N, R2, C2, SB>> for Matrix<N, R1, C1, SA> where
    R1: Dim,
    C1: Dim,
    R2: Dim,
    C2: Dim,
    N: Scalar + ClosedSub,
    SA: StorageMut<N, R1, C1>,
    SB: Storage<N, R2, C2>,
    ShapeConstraint: SameNumberOfRows<R1, R2> + SameNumberOfColumns<C1, C2>, 

impl<N, R1, C1, R2, C2, SA, SB> SubAssign<Matrix<N, R2, C2, SB>> for Matrix<N, R1, C1, SA> where
    R1: Dim,
    C1: Dim,
    R2: Dim,
    C2: Dim,
    N: Scalar + ClosedSub,
    SA: StorageMut<N, R1, C1>,
    SB: Storage<N, R2, C2>,
    ShapeConstraint: SameNumberOfRows<R1, R2> + SameNumberOfColumns<C1, C2>, 

impl<'b, N, D1: DimName, D2: Dim, SB> SubAssign<&'b Matrix<N, D2, U1, SB>> for Point<N, D1> where
    N: Scalar + ClosedSub,
    SB: Storage<N, D2>,
    DefaultAllocator: Allocator<N, D1>,
    ShapeConstraint: SameNumberOfRows<D1, D2>, 

impl<N, D1: DimName, D2: Dim, SB> SubAssign<Matrix<N, D2, U1, SB>> for Point<N, D1> where
    N: Scalar + ClosedSub,
    SB: Storage<N, D2>,
    DefaultAllocator: Allocator<N, D1>,
    ShapeConstraint: SameNumberOfRows<D1, D2>, 

impl<'b, N: SimdRealField> SubAssign<&'b Quaternion<N>> for Quaternion<N> where
    N::Element: SimdRealField,
    DefaultAllocator: Allocator<N, U4, U1>, 

impl<N: SimdRealField> SubAssign<Quaternion<N>> for Quaternion<N> where
    N::Element: SimdRealField,
    DefaultAllocator: Allocator<N, U4, U1>, 

impl SubAssign<CollisionObjectUpdateFlags> for CollisionObjectUpdateFlags

impl SubAssign<HeightFieldCellStatus> for HeightFieldCellStatus

impl<T: Clone + NumAssign> SubAssign<Complex<T>> for Complex<T>

impl<T: Clone + NumAssign> SubAssign<T> for Complex<T>

impl<'a, T: Clone + NumAssign> SubAssign<&'a Complex<T>> for Complex<T>

impl<'a, T: Clone + NumAssign> SubAssign<&'a T> for Complex<T>

impl<T: Clone + Integer + NumAssign> SubAssign<Ratio<T>> for Ratio<T>

impl<T: Clone + Integer + NumAssign> SubAssign<T> for Ratio<T>

impl<'a, T: Clone + Integer + NumAssign> SubAssign<&'a Ratio<T>> for Ratio<T>

impl<'a, T: Clone + Integer + NumAssign> SubAssign<&'a T> for Ratio<T>

impl<Rhs> SubAssign<Rhs> for U128 where
    Rhs: Into<U128>, 

impl<'a> SubAssign<&'a U128> for U128

impl<Rhs> SubAssign<Rhs> for U160 where
    Rhs: Into<U160>, 

impl<'a> SubAssign<&'a U160> for U160

impl<Rhs> SubAssign<Rhs> for U224 where
    Rhs: Into<U224>, 

impl<'a> SubAssign<&'a U224> for U224

impl<Rhs> SubAssign<Rhs> for U256 where
    Rhs: Into<U256>, 

impl<'a> SubAssign<&'a U256> for U256

impl<Rhs> SubAssign<Rhs> for U384 where
    Rhs: Into<U384>, 

impl<'a> SubAssign<&'a U384> for U384

impl<Rhs> SubAssign<Rhs> for U512 where
    Rhs: Into<U512>, 

impl<'a> SubAssign<&'a U512> for U512

impl<Rhs> SubAssign<Rhs> for U520 where
    Rhs: Into<U520>, 

impl<'a> SubAssign<&'a U520> for U520

impl<Rhs> SubAssign<Rhs> for U1024 where
    Rhs: Into<U1024>, 

impl<'a> SubAssign<&'a U1024> for U1024

impl<Rhs> SubAssign<Rhs> for U2048 where
    Rhs: Into<U2048>, 

impl<'a> SubAssign<&'a U2048> for U2048

impl<Rhs> SubAssign<Rhs> for U4096 where
    Rhs: Into<U4096>, 

impl<'a> SubAssign<&'a U4096> for U4096

impl SubAssign<Transformations> for Transformations

impl SubAssign<RootMotionRemove> for RootMotionRemove

impl SubAssign<BoxFlags> for BoxFlags

impl SubAssign<TextureCreationFlags> for TextureCreationFlags

impl SubAssign<BoneFlags> for BoneFlags

impl SubAssign<KeyModifiers> for KeyModifiers

impl SubAssign<Flags> for Flags

impl SubAssign<Flags> for Flags

impl SubAssign<DriverTargetFlags> for DriverTargetFlags

impl SubAssign<DriverVarFlag> for DriverVarFlag

impl SubAssign<ArmatureDeformFlag> for ArmatureDeformFlag

impl SubAssign<Flag> for Flag

impl SubAssign<Flags> for Flags

impl SubAssign<BlockFlags> for BlockFlags

impl SubAssign<AutoSimd<[f32; 2]>> for AutoSimd<[f32; 2]>

impl SubAssign<AutoSimd<[f32; 4]>> for AutoSimd<[f32; 4]>

impl SubAssign<AutoSimd<[f32; 8]>> for AutoSimd<[f32; 8]>

impl SubAssign<AutoSimd<[f32; 16]>> for AutoSimd<[f32; 16]>

impl SubAssign<AutoSimd<[f64; 2]>> for AutoSimd<[f64; 2]>

impl SubAssign<AutoSimd<[f64; 4]>> for AutoSimd<[f64; 4]>

impl SubAssign<AutoSimd<[f64; 8]>> for AutoSimd<[f64; 8]>

impl SubAssign<AutoSimd<[i128; 1]>> for AutoSimd<[i128; 1]>

impl SubAssign<AutoSimd<[i128; 2]>> for AutoSimd<[i128; 2]>

impl SubAssign<AutoSimd<[i128; 4]>> for AutoSimd<[i128; 4]>

impl SubAssign<AutoSimd<[i16; 2]>> for AutoSimd<[i16; 2]>

impl SubAssign<AutoSimd<[i16; 4]>> for AutoSimd<[i16; 4]>

impl SubAssign<AutoSimd<[i16; 8]>> for AutoSimd<[i16; 8]>

impl SubAssign<AutoSimd<[i16; 16]>> for AutoSimd<[i16; 16]>

impl SubAssign<AutoSimd<[i16; 32]>> for AutoSimd<[i16; 32]>

impl SubAssign<AutoSimd<[i32; 2]>> for AutoSimd<[i32; 2]>

impl SubAssign<AutoSimd<[i32; 4]>> for AutoSimd<[i32; 4]>

impl SubAssign<AutoSimd<[i32; 8]>> for AutoSimd<[i32; 8]>

impl SubAssign<AutoSimd<[i32; 16]>> for AutoSimd<[i32; 16]>

impl SubAssign<AutoSimd<[i64; 2]>> for AutoSimd<[i64; 2]>

impl SubAssign<AutoSimd<[i64; 4]>> for AutoSimd<[i64; 4]>

impl SubAssign<AutoSimd<[i64; 8]>> for AutoSimd<[i64; 8]>

impl SubAssign<AutoSimd<[i8; 2]>> for AutoSimd<[i8; 2]>

impl SubAssign<AutoSimd<[i8; 4]>> for AutoSimd<[i8; 4]>

impl SubAssign<AutoSimd<[i8; 8]>> for AutoSimd<[i8; 8]>

impl SubAssign<AutoSimd<[i8; 16]>> for AutoSimd<[i8; 16]>

impl SubAssign<AutoSimd<[i8; 32]>> for AutoSimd<[i8; 32]>

impl SubAssign<AutoSimd<[isize; 2]>> for AutoSimd<[isize; 2]>

impl SubAssign<AutoSimd<[isize; 4]>> for AutoSimd<[isize; 4]>

impl SubAssign<AutoSimd<[isize; 8]>> for AutoSimd<[isize; 8]>

impl SubAssign<AutoSimd<[u128; 1]>> for AutoSimd<[u128; 1]>

impl SubAssign<AutoSimd<[u128; 2]>> for AutoSimd<[u128; 2]>

impl SubAssign<AutoSimd<[u128; 4]>> for AutoSimd<[u128; 4]>

impl SubAssign<AutoSimd<[u16; 2]>> for AutoSimd<[u16; 2]>

impl SubAssign<AutoSimd<[u16; 4]>> for AutoSimd<[u16; 4]>

impl SubAssign<AutoSimd<[u16; 8]>> for AutoSimd<[u16; 8]>

impl SubAssign<AutoSimd<[u16; 16]>> for AutoSimd<[u16; 16]>

impl SubAssign<AutoSimd<[u16; 32]>> for AutoSimd<[u16; 32]>

impl SubAssign<AutoSimd<[u32; 2]>> for AutoSimd<[u32; 2]>

impl SubAssign<AutoSimd<[u32; 4]>> for AutoSimd<[u32; 4]>

impl SubAssign<AutoSimd<[u32; 8]>> for AutoSimd<[u32; 8]>

impl SubAssign<AutoSimd<[u32; 16]>> for AutoSimd<[u32; 16]>

impl SubAssign<AutoSimd<[u64; 2]>> for AutoSimd<[u64; 2]>

impl SubAssign<AutoSimd<[u64; 4]>> for AutoSimd<[u64; 4]>

impl SubAssign<AutoSimd<[u64; 8]>> for AutoSimd<[u64; 8]>

impl SubAssign<AutoSimd<[u8; 2]>> for AutoSimd<[u8; 2]>

impl SubAssign<AutoSimd<[u8; 4]>> for AutoSimd<[u8; 4]>

impl SubAssign<AutoSimd<[u8; 8]>> for AutoSimd<[u8; 8]>

impl SubAssign<AutoSimd<[u8; 16]>> for AutoSimd<[u8; 16]>

impl SubAssign<AutoSimd<[u8; 32]>> for AutoSimd<[u8; 32]>

impl SubAssign<AutoSimd<[usize; 2]>> for AutoSimd<[usize; 2]>

impl SubAssign<AutoSimd<[usize; 4]>> for AutoSimd<[usize; 4]>

impl SubAssign<AutoSimd<[usize; 8]>> for AutoSimd<[usize; 8]>