Skip to main content

SubAssign

Trait SubAssign 

1.8.0 (const: unstable) · 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 (const: unstable) · Source

fn sub_assign(&mut self, rhs: Rhs)

Performs the -= operation.

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

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl SubAssign for BigInt

Source§

impl SubAssign for BigUint

Source§

impl SubAssign for Checked<Limb>

1.9.0 (const: unstable) · Source§

impl SubAssign for Duration

Source§

impl SubAssign for Fe32

Source§

impl SubAssign for Limb

Source§

impl SubAssign for ProjectivePoint

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl SubAssign for Saturating<usize>

Source§

impl SubAssign for k256::arithmetic::scalar::Scalar

Source§

impl SubAssign for crypto_bigint::wrapping::Wrapping<Limb>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<i8>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<i16>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<i32>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<i64>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<i128>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<isize>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<u8>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<u16>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<u32>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<u64>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<u128>

1.8.0 (const: unstable) · Source§

impl SubAssign for core::num::wrapping::Wrapping<usize>

1.8.0 (const: unstable) · Source§

impl SubAssign for f16

1.8.0 (const: unstable) · Source§

impl SubAssign for f32

1.8.0 (const: unstable) · Source§

impl SubAssign for f64

1.8.0 (const: unstable) · Source§

impl SubAssign for f128

1.8.0 (const: unstable) · Source§

impl SubAssign for i8

1.8.0 (const: unstable) · Source§

impl SubAssign for i16

1.8.0 (const: unstable) · Source§

impl SubAssign for i32

1.8.0 (const: unstable) · Source§

impl SubAssign for i64

1.8.0 (const: unstable) · Source§

impl SubAssign for i128

1.8.0 (const: unstable) · Source§

impl SubAssign for isize

1.8.0 (const: unstable) · Source§

impl SubAssign for u8

1.8.0 (const: unstable) · Source§

impl SubAssign for u16

1.8.0 (const: unstable) · Source§

impl SubAssign for u32

1.8.0 (const: unstable) · Source§

impl SubAssign for u64

1.8.0 (const: unstable) · Source§

impl SubAssign for u128

1.8.0 (const: unstable) · Source§

impl SubAssign for usize

Source§

impl SubAssign<&AffinePoint> for ProjectivePoint

Source§

impl SubAssign<&BigInt> for BigInt

Source§

impl SubAssign<&BigUint> for BigUint

Source§

impl SubAssign<&Checked<Limb>> for Checked<Limb>

Source§

impl SubAssign<&Limb> for Limb

Source§

impl SubAssign<&ProjectivePoint> for ProjectivePoint

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i8>> for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i16>> for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i32>> for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i64>> for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<i128>> for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<isize>> for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u8>> for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u16>> for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u32>> for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u64>> for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<u128>> for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl SubAssign<&Saturating<usize>> for Saturating<usize>

Source§

impl SubAssign<&Scalar> for k256::arithmetic::scalar::Scalar

Source§

impl SubAssign<&Wrapping<Limb>> for crypto_bigint::wrapping::Wrapping<Limb>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i8>> for core::num::wrapping::Wrapping<i8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i16>> for core::num::wrapping::Wrapping<i16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i32>> for core::num::wrapping::Wrapping<i32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i64>> for core::num::wrapping::Wrapping<i64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<i128>> for core::num::wrapping::Wrapping<i128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<isize>> for core::num::wrapping::Wrapping<isize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u8>> for core::num::wrapping::Wrapping<u8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u16>> for core::num::wrapping::Wrapping<u16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u32>> for core::num::wrapping::Wrapping<u32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u64>> for core::num::wrapping::Wrapping<u64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<u128>> for core::num::wrapping::Wrapping<u128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&Wrapping<usize>> for core::num::wrapping::Wrapping<usize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&f16> for f16

1.22.0 (const: unstable) · Source§

impl SubAssign<&f32> for f32

1.22.0 (const: unstable) · Source§

impl SubAssign<&f64> for f64

1.22.0 (const: unstable) · Source§

impl SubAssign<&f128> for f128

1.74.0 (const: unstable) · Source§

impl SubAssign<&i8> for Saturating<i8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i8> for core::num::wrapping::Wrapping<i8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i8> for i8

1.74.0 (const: unstable) · Source§

impl SubAssign<&i16> for Saturating<i16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i16> for core::num::wrapping::Wrapping<i16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i16> for i16

1.74.0 (const: unstable) · Source§

impl SubAssign<&i32> for Saturating<i32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i32> for core::num::wrapping::Wrapping<i32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i32> for i32

1.74.0 (const: unstable) · Source§

impl SubAssign<&i64> for Saturating<i64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i64> for core::num::wrapping::Wrapping<i64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i64> for i64

1.74.0 (const: unstable) · Source§

impl SubAssign<&i128> for Saturating<i128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i128> for core::num::wrapping::Wrapping<i128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&i128> for i128

1.74.0 (const: unstable) · Source§

impl SubAssign<&isize> for Saturating<isize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&isize> for core::num::wrapping::Wrapping<isize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&isize> for isize

1.74.0 (const: unstable) · Source§

impl SubAssign<&u8> for Saturating<u8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u8> for core::num::wrapping::Wrapping<u8>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u8> for u8

1.74.0 (const: unstable) · Source§

impl SubAssign<&u16> for Saturating<u16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u16> for core::num::wrapping::Wrapping<u16>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u16> for u16

1.74.0 (const: unstable) · Source§

impl SubAssign<&u32> for Saturating<u32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u32> for core::num::wrapping::Wrapping<u32>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u32> for u32

1.74.0 (const: unstable) · Source§

impl SubAssign<&u64> for Saturating<u64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u64> for core::num::wrapping::Wrapping<u64>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u64> for u64

1.74.0 (const: unstable) · Source§

impl SubAssign<&u128> for Saturating<u128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u128> for core::num::wrapping::Wrapping<u128>

1.22.0 (const: unstable) · Source§

impl SubAssign<&u128> for u128

1.74.0 (const: unstable) · Source§

impl SubAssign<&usize> for Saturating<usize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&usize> for core::num::wrapping::Wrapping<usize>

1.22.0 (const: unstable) · Source§

impl SubAssign<&usize> for usize

Source§

impl SubAssign<AffinePoint> for ProjectivePoint

1.9.0 · Source§

impl SubAssign<Duration> for Instant

1.9.0 · Source§

impl SubAssign<Duration> for SystemTime

Source§

impl SubAssign<i8> for BigInt

1.74.0 (const: unstable) · Source§

impl SubAssign<i8> for Saturating<i8>

1.60.0 (const: unstable) · Source§

impl SubAssign<i8> for core::num::wrapping::Wrapping<i8>

Source§

impl SubAssign<i16> for BigInt

1.74.0 (const: unstable) · Source§

impl SubAssign<i16> for Saturating<i16>

1.60.0 (const: unstable) · Source§

impl SubAssign<i16> for core::num::wrapping::Wrapping<i16>

Source§

impl SubAssign<i32> for BigInt

1.74.0 (const: unstable) · Source§

impl SubAssign<i32> for Saturating<i32>

1.60.0 (const: unstable) · Source§

impl SubAssign<i32> for core::num::wrapping::Wrapping<i32>

Source§

impl SubAssign<i64> for BigInt

1.74.0 (const: unstable) · Source§

impl SubAssign<i64> for Saturating<i64>

1.60.0 (const: unstable) · Source§

impl SubAssign<i64> for core::num::wrapping::Wrapping<i64>

Source§

impl SubAssign<i128> for BigInt

1.74.0 (const: unstable) · Source§

impl SubAssign<i128> for Saturating<i128>

1.60.0 (const: unstable) · Source§

impl SubAssign<i128> for core::num::wrapping::Wrapping<i128>

Source§

impl SubAssign<isize> for BigInt

1.74.0 (const: unstable) · Source§

impl SubAssign<isize> for Saturating<isize>

1.60.0 (const: unstable) · Source§

impl SubAssign<isize> for core::num::wrapping::Wrapping<isize>

Source§

impl SubAssign<u8> for BigInt

Source§

impl SubAssign<u8> for BigUint

1.74.0 (const: unstable) · Source§

impl SubAssign<u8> for Saturating<u8>

1.60.0 (const: unstable) · Source§

impl SubAssign<u8> for core::num::wrapping::Wrapping<u8>

Source§

impl SubAssign<u16> for BigInt

Source§

impl SubAssign<u16> for BigUint

1.74.0 (const: unstable) · Source§

impl SubAssign<u16> for Saturating<u16>

1.60.0 (const: unstable) · Source§

impl SubAssign<u16> for core::num::wrapping::Wrapping<u16>

Source§

impl SubAssign<u32> for BigInt

Source§

impl SubAssign<u32> for BigUint

1.74.0 (const: unstable) · Source§

impl SubAssign<u32> for Saturating<u32>

1.60.0 (const: unstable) · Source§

impl SubAssign<u32> for core::num::wrapping::Wrapping<u32>

Source§

impl SubAssign<u64> for BigInt

Source§

impl SubAssign<u64> for BigUint

1.74.0 (const: unstable) · Source§

impl SubAssign<u64> for Saturating<u64>

1.60.0 (const: unstable) · Source§

impl SubAssign<u64> for core::num::wrapping::Wrapping<u64>

Source§

impl SubAssign<u128> for BigInt

Source§

impl SubAssign<u128> for BigUint

1.74.0 (const: unstable) · Source§

impl SubAssign<u128> for Saturating<u128>

1.60.0 (const: unstable) · Source§

impl SubAssign<u128> for core::num::wrapping::Wrapping<u128>

Source§

impl SubAssign<usize> for BigInt

Source§

impl SubAssign<usize> for BigUint

1.74.0 (const: unstable) · Source§

impl SubAssign<usize> for Saturating<usize>

1.60.0 (const: unstable) · Source§

impl SubAssign<usize> for core::num::wrapping::Wrapping<usize>

Source§

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

Source§

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

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 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<'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<C> SubAssign for ScalarValue<C>
where C: Curve,

Source§

impl<C> SubAssign<&ScalarValue<C>> for ScalarValue<C>
where C: Curve,

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<E> SubAssign for Field<E>
where E: Environment,

Source§

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

Source§

impl<E> SubAssign for snarkvm_console_types_scalar::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 snarkvm_console_types_scalar::Scalar<E>
where E: Environment,

Source§

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

Source§

impl<MOD, const LIMBS: usize> SubAssign for ConstMontyForm<MOD, LIMBS>
where MOD: ConstMontyParams<LIMBS>,

Source§

impl<MOD, const LIMBS: usize> SubAssign<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>
where MOD: ConstMontyParams<LIMBS>,

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 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<&&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<&&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<T, S, A> SubAssign<&HashSet<T, S, A>> for hashbrown::set::HashSet<T, S, A>
where T: Eq + Hash + Clone, S: BuildHasher, A: Allocator,

Source§

impl<T, S, A> SubAssign<&HashSet<T, S, A>> for hashbrown::set::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,

Source§

impl<const LIMBS: usize> SubAssign for Checked<Int<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign for Checked<Uint<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign for FixedMontyForm<LIMBS>

Source§

impl<const LIMBS: usize> SubAssign for Int<LIMBS>

Source§

impl<const LIMBS: usize> SubAssign for Uint<LIMBS>

Source§

impl<const LIMBS: usize> SubAssign for crypto_bigint::wrapping::Wrapping<Int<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign for crypto_bigint::wrapping::Wrapping<Uint<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign<&Checked<Int<LIMBS>>> for Checked<Int<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign<&Checked<Uint<LIMBS>>> for Checked<Uint<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign<&FixedMontyForm<LIMBS>> for FixedMontyForm<LIMBS>

Source§

impl<const LIMBS: usize> SubAssign<&Int<LIMBS>> for Int<LIMBS>

Source§

impl<const LIMBS: usize> SubAssign<&Uint<LIMBS>> for Uint<LIMBS>

Source§

impl<const LIMBS: usize> SubAssign<&Wrapping<Int<LIMBS>>> for crypto_bigint::wrapping::Wrapping<Int<LIMBS>>

Source§

impl<const LIMBS: usize> SubAssign<&Wrapping<Uint<LIMBS>>> for crypto_bigint::wrapping::Wrapping<Uint<LIMBS>>