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 BigInt

Source§

impl SubAssign for BigUint

Source§

impl SubAssign for CreateFlags

Source§

impl SubAssign for ReadFlags

Source§

impl SubAssign for WatchFlags

Source§

impl SubAssign for Access

Source§

impl SubAssign for AtFlags

Source§

impl SubAssign for FallocateFlags

Source§

impl SubAssign for MemfdFlags

Source§

impl SubAssign for Mode

Source§

impl SubAssign for OFlags

Source§

impl SubAssign for RenameFlags

Source§

impl SubAssign for ResolveFlags

Source§

impl SubAssign for SealFlags

Source§

impl SubAssign for StatVfsMountFlags

Source§

impl SubAssign for DupFlags

Source§

impl SubAssign for FdFlags

Source§

impl SubAssign for ReadWriteFlags

Source§

impl SubAssign for IFlags

Source§

impl SubAssign for StatxAttributes

Source§

impl SubAssign for StatxFlags

Source§

impl SubAssign for XattrFlags

Source§

impl SubAssign for Timespec

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 BigInt

Source§

impl SubAssign<&BigUint> for BigUint

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 BigInt

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 BigInt

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 BigInt

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 BigInt

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 BigInt

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 BigInt

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 BigInt

Source§

impl SubAssign<u8> for BigUint

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 BigInt

Source§

impl SubAssign<u16> for BigUint

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 BigInt

Source§

impl SubAssign<u32> for BigUint

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 BigInt

Source§

impl SubAssign<u64> for BigUint

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 BigInt

Source§

impl SubAssign<u128> for BigUint

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 BigInt

Source§

impl SubAssign<usize> for BigUint

1.9.0 · Source§

impl SubAssign<Duration> for Instant

1.9.0 · Source§

impl SubAssign<Duration> for SystemTime

Source§

impl<'a, F> SubAssign<&'a Evaluations<F>> for Evaluations<F>
where F: PrimeField,

Source§

impl<'a, F> SubAssign<&'a DensePolynomial<F>> for DensePolynomial<F>
where F: Field,

Source§

impl<'a, F> SubAssign<&'a LinearCombination<F>> for LinearCombination<F>
where F: Field,

Source§

impl<'a, F> SubAssign<(F, &'a LinearCombination<F>)> for LinearCombination<F>
where F: Field,

Source§

impl<'a, P> SubAssign<&'a Projective<P>> for snarkvm_curves::templates::short_weierstrass_jacobian::projective::Projective<P>

Source§

impl<'a, P> SubAssign<&'a Projective<P>> for snarkvm_curves::templates::twisted_edwards_extended::projective::Projective<P>

Source§

impl<'a, P> SubAssign<&'a mut Projective<P>> for snarkvm_curves::templates::short_weierstrass_jacobian::projective::Projective<P>

Source§

impl<'a, P> SubAssign<&'a mut Projective<P>> for snarkvm_curves::templates::twisted_edwards_extended::projective::Projective<P>

Source§

impl<'a, P> SubAssign<&'a mut Fp2<P>> for Fp2<P>
where P: Fp2Parameters,

Source§

impl<'a, P> SubAssign<&'a mut Fp6<P>> for Fp6<P>
where P: Fp6Parameters,

Source§

impl<'a, P> SubAssign<&'a mut Fp12<P>> for Fp12<P>
where P: Fp12Parameters,

Source§

impl<'a, P> SubAssign<&'a mut Fp256<P>> for Fp256<P>
where P: Fp256Parameters,

Source§

impl<'a, P> SubAssign<&'a mut Fp384<P>> for Fp384<P>
where P: Fp384Parameters,

Source§

impl<E> SubAssign for Field<E>
where E: Environment,

Source§

impl<E> SubAssign for Group<E>
where E: Environment,

Source§

impl<E> SubAssign for Scalar<E>
where E: Environment,

Source§

impl<E> SubAssign<&Field<E>> for Field<E>
where E: Environment,

Source§

impl<E> SubAssign<&Group<E>> for Group<E>
where E: Environment,

Source§

impl<E> SubAssign<&Scalar<E>> for Scalar<E>
where E: Environment,

Source§

impl<E, I> SubAssign for Integer<E, I>
where E: Environment, I: IntegerType,

Source§

impl<E, I> SubAssign<&Integer<E, I>> for Integer<E, I>
where E: Environment, I: IntegerType,

Source§

impl<F> SubAssign<F> for LinearCombination<F>
where F: Field,

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<P> SubAssign for snarkvm_curves::templates::short_weierstrass_jacobian::projective::Projective<P>

Source§

impl<P> SubAssign for snarkvm_curves::templates::twisted_edwards_extended::projective::Projective<P>

Source§

impl<P> SubAssign for Fp2<P>
where P: Fp2Parameters,

Source§

impl<P> SubAssign for Fp6<P>
where P: Fp6Parameters,

Source§

impl<P> SubAssign for Fp12<P>
where P: Fp12Parameters,

Source§

impl<P> SubAssign for Fp256<P>
where P: Fp256Parameters,

Source§

impl<P> SubAssign for Fp384<P>
where P: Fp384Parameters,

Source§

impl<P> SubAssign<&&Projective<P>> for snarkvm_curves::templates::short_weierstrass_jacobian::projective::Projective<P>

Source§

impl<P> SubAssign<&&Projective<P>> for snarkvm_curves::templates::twisted_edwards_extended::projective::Projective<P>

Source§

impl<P> SubAssign<&&Fp2<P>> for Fp2<P>
where P: Fp2Parameters,

Source§

impl<P> SubAssign<&&Fp6<P>> for Fp6<P>
where P: Fp6Parameters,

Source§

impl<P> SubAssign<&&Fp12<P>> for Fp12<P>
where P: Fp12Parameters,

Source§

impl<P> SubAssign<&&Fp256<P>> for Fp256<P>
where P: Fp256Parameters,

Source§

impl<P> SubAssign<&&Fp384<P>> for Fp384<P>
where P: Fp384Parameters,

Source§

impl<P> SubAssign<&Fp2<P>> for Fp2<P>
where P: Fp2Parameters,

Source§

impl<P> SubAssign<&Fp6<P>> for Fp6<P>
where P: Fp6Parameters,

Source§

impl<P> SubAssign<&Fp12<P>> for Fp12<P>
where P: Fp12Parameters,

Source§

impl<P> SubAssign<&Fp256<P>> for Fp256<P>
where P: Fp256Parameters,

Source§

impl<P> SubAssign<&Fp384<P>> for Fp384<P>
where P: Fp384Parameters,

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,