pub trait Sub<Rhs = Self> {
    type Output;

    // Required method
    fn sub(self, rhs: Rhs) -> Self::Output;
}
Expand description

The subtraction operator -.

Note that Rhs is Self by default, but this is not mandatory. For example, std::time::SystemTime implements Sub<Duration>, which permits operations of the form SystemTime = SystemTime - Duration.

§Examples

§Subtractable points

use std::ops::Sub;

#[derive(Debug, Copy, Clone, PartialEq)]
struct Point {
    x: i32,
    y: i32,
}

impl Sub for Point {
    type Output = Self;

    fn sub(self, other: Self) -> Self::Output {
        Self {
            x: self.x - other.x,
            y: self.y - other.y,
        }
    }
}

assert_eq!(Point { x: 3, y: 3 } - Point { x: 2, y: 3 },
           Point { x: 1, y: 0 });

§Implementing Sub with generics

Here is an example of the same Point struct implementing the Sub trait using generics.

use std::ops::Sub;

#[derive(Debug, PartialEq)]
struct Point<T> {
    x: T,
    y: T,
}

// Notice that the implementation uses the associated type `Output`.
impl<T: Sub<Output = T>> Sub for Point<T> {
    type Output = Self;

    fn sub(self, other: Self) -> Self::Output {
        Point {
            x: self.x - other.x,
            y: self.y - other.y,
        }
    }
}

assert_eq!(Point { x: 2, y: 3 } - Point { x: 1, y: 0 },
           Point { x: 1, y: 3 });

Required Associated Types§

source

type Output

The resulting type after applying the - operator.

Required Methods§

source

fn sub(self, rhs: Rhs) -> Self::Output

Performs the - operation.

§Example
assert_eq!(12 - 1, 11);

Implementors§

source§

impl Sub for f32

§

type Output = f32

source§

impl Sub for f64

§

type Output = f64

source§

impl Sub for i8

§

type Output = i8

source§

impl Sub for i16

§

type Output = i16

source§

impl Sub for i32

§

type Output = i32

source§

impl Sub for i64

§

type Output = i64

source§

impl Sub for i128

§

type Output = i128

source§

impl Sub for isize

source§

impl Sub for u8

§

type Output = u8

source§

impl Sub for u16

§

type Output = u16

source§

impl Sub for u32

§

type Output = u32

source§

impl Sub for u64

§

type Output = u64

source§

impl Sub for u128

§

type Output = u128

source§

impl Sub for usize

source§

impl Sub for EventFlags

source§

impl Sub for LockFlags

source§

impl Sub for VaultFreezeFlags

source§

impl Sub for Decimal

source§

impl Sub for I192

§

type Output = I192

source§

impl Sub for I256

§

type Output = I256

source§

impl Sub for I320

§

type Output = I320

source§

impl Sub for I384

§

type Output = I384

source§

impl Sub for I448

§

type Output = I448

source§

impl Sub for I512

§

type Output = I512

source§

impl Sub for I768

§

type Output = I768

source§

impl Sub for PreciseDecimal

source§

impl Sub for U192

§

type Output = U192

source§

impl Sub for U256

§

type Output = U256

source§

impl Sub for U320

§

type Output = U320

source§

impl Sub for U384

§

type Output = U384

source§

impl Sub for U448

§

type Output = U448

source§

impl Sub for U512

§

type Output = U512

source§

impl Sub for U768

§

type Output = U768

§

impl Sub for RefTypes

source§

impl Sub for Assume

1.74.0 · source§

impl Sub for Saturating<i8>

1.74.0 · source§

impl Sub for Saturating<i16>

1.74.0 · source§

impl Sub for Saturating<i32>

1.74.0 · source§

impl Sub for Saturating<i64>

1.74.0 · source§

impl Sub for Saturating<i128>

1.74.0 · source§

impl Sub for Saturating<isize>

1.74.0 · source§

impl Sub for Saturating<u8>

1.74.0 · source§

impl Sub for Saturating<u16>

1.74.0 · source§

impl Sub for Saturating<u32>

1.74.0 · source§

impl Sub for Saturating<u64>

1.74.0 · source§

impl Sub for Saturating<u128>

1.74.0 · source§

impl Sub for Saturating<usize>

source§

impl Sub for Wrapping<i8>

source§

impl Sub for Wrapping<i16>

source§

impl Sub for Wrapping<i32>

source§

impl Sub for Wrapping<i64>

source§

impl Sub for Wrapping<i128>

source§

impl Sub for Wrapping<isize>

source§

impl Sub for Wrapping<u8>

source§

impl Sub for Wrapping<u16>

source§

impl Sub for Wrapping<u32>

source§

impl Sub for Wrapping<u64>

source§

impl Sub for Wrapping<u128>

source§

impl Sub for Wrapping<usize>

1.3.0 · source§

impl Sub for Duration

1.8.0 · source§

impl Sub for Instant

source§

impl Sub for EdwardsPoint

source§

impl Sub for RistrettoPoint

source§

impl Sub for Scalar

source§

impl Sub for BigInt

source§

impl Sub for BigUint

source§

impl Sub for ATerm

source§

impl Sub for Z0

Z0 - Z0 = Z0

§

type Output = Z0

source§

impl Sub for UTerm

UTerm - UTerm = UTerm

source§

impl Sub<&f32> for &f32

§

type Output = <f32 as Sub>::Output

source§

impl Sub<&f32> for f32

§

type Output = <f32 as Sub>::Output

source§

impl Sub<&f64> for &f64

§

type Output = <f64 as Sub>::Output

source§

impl Sub<&f64> for f64

§

type Output = <f64 as Sub>::Output

source§

impl Sub<&i8> for &i8

§

type Output = <i8 as Sub>::Output

source§

impl Sub<&i8> for &BigInt

source§

impl Sub<&i8> for i8

§

type Output = <i8 as Sub>::Output

source§

impl Sub<&i8> for BigInt

source§

impl Sub<&i16> for &i16

§

type Output = <i16 as Sub>::Output

source§

impl Sub<&i16> for &BigInt

source§

impl Sub<&i16> for i16

§

type Output = <i16 as Sub>::Output

source§

impl Sub<&i16> for BigInt

source§

impl Sub<&i32> for &i32

§

type Output = <i32 as Sub>::Output

source§

impl Sub<&i32> for &BigInt

source§

impl Sub<&i32> for i32

§

type Output = <i32 as Sub>::Output

source§

impl Sub<&i32> for BigInt

source§

impl Sub<&i64> for &i64

§

type Output = <i64 as Sub>::Output

source§

impl Sub<&i64> for &BigInt

source§

impl Sub<&i64> for i64

§

type Output = <i64 as Sub>::Output

source§

impl Sub<&i64> for BigInt

source§

impl Sub<&i128> for &i128

§

type Output = <i128 as Sub>::Output

source§

impl Sub<&i128> for &BigInt

source§

impl Sub<&i128> for i128

§

type Output = <i128 as Sub>::Output

source§

impl Sub<&i128> for BigInt

source§

impl Sub<&isize> for &isize

§

type Output = <isize as Sub>::Output

source§

impl Sub<&isize> for &BigInt

source§

impl Sub<&isize> for isize

§

type Output = <isize as Sub>::Output

source§

impl Sub<&isize> for BigInt

source§

impl Sub<&u8> for &u8

§

type Output = <u8 as Sub>::Output

source§

impl Sub<&u8> for &BigInt

source§

impl Sub<&u8> for &BigUint

source§

impl Sub<&u8> for u8

§

type Output = <u8 as Sub>::Output

source§

impl Sub<&u8> for BigInt

source§

impl Sub<&u8> for BigUint

source§

impl Sub<&u16> for &u16

§

type Output = <u16 as Sub>::Output

source§

impl Sub<&u16> for &BigInt

source§

impl Sub<&u16> for &BigUint

source§

impl Sub<&u16> for u16

§

type Output = <u16 as Sub>::Output

source§

impl Sub<&u16> for BigInt

source§

impl Sub<&u16> for BigUint

source§

impl Sub<&u32> for &u32

§

type Output = <u32 as Sub>::Output

source§

impl Sub<&u32> for &BigInt

source§

impl Sub<&u32> for &BigUint

source§

impl Sub<&u32> for u32

§

type Output = <u32 as Sub>::Output

source§

impl Sub<&u32> for BigInt

source§

impl Sub<&u32> for BigUint

source§

impl Sub<&u64> for &u64

§

type Output = <u64 as Sub>::Output

source§

impl Sub<&u64> for &BigInt

source§

impl Sub<&u64> for &BigUint

source§

impl Sub<&u64> for u64

§

type Output = <u64 as Sub>::Output

source§

impl Sub<&u64> for BigInt

source§

impl Sub<&u64> for BigUint

source§

impl Sub<&u128> for &u128

§

type Output = <u128 as Sub>::Output

source§

impl Sub<&u128> for &BigInt

source§

impl Sub<&u128> for &BigUint

source§

impl Sub<&u128> for u128

§

type Output = <u128 as Sub>::Output

source§

impl Sub<&u128> for BigInt

source§

impl Sub<&u128> for BigUint

source§

impl Sub<&usize> for &usize

§

type Output = <usize as Sub>::Output

source§

impl Sub<&usize> for &BigInt

source§

impl Sub<&usize> for &BigUint

source§

impl Sub<&usize> for usize

§

type Output = <usize as Sub>::Output

source§

impl Sub<&usize> for BigInt

source§

impl Sub<&usize> for BigUint

source§

impl Sub<&I192> for &I192

§

type Output = <I192 as Sub>::Output

source§

impl Sub<&I192> for I192

§

type Output = <I192 as Sub>::Output

source§

impl Sub<&I256> for &I256

§

type Output = <I256 as Sub>::Output

source§

impl Sub<&I256> for I256

§

type Output = <I256 as Sub>::Output

source§

impl Sub<&I320> for &I320

§

type Output = <I320 as Sub>::Output

source§

impl Sub<&I320> for I320

§

type Output = <I320 as Sub>::Output

source§

impl Sub<&I384> for &I384

§

type Output = <I384 as Sub>::Output

source§

impl Sub<&I384> for I384

§

type Output = <I384 as Sub>::Output

source§

impl Sub<&I448> for &I448

§

type Output = <I448 as Sub>::Output

source§

impl Sub<&I448> for I448

§

type Output = <I448 as Sub>::Output

source§

impl Sub<&I512> for &I512

§

type Output = <I512 as Sub>::Output

source§

impl Sub<&I512> for I512

§

type Output = <I512 as Sub>::Output

source§

impl Sub<&I768> for &I768

§

type Output = <I768 as Sub>::Output

source§

impl Sub<&I768> for I768

§

type Output = <I768 as Sub>::Output

source§

impl Sub<&U192> for &U192

§

type Output = <U192 as Sub>::Output

source§

impl Sub<&U192> for U192

§

type Output = <U192 as Sub>::Output

source§

impl Sub<&U256> for &U256

§

type Output = <U256 as Sub>::Output

source§

impl Sub<&U256> for U256

§

type Output = <U256 as Sub>::Output

source§

impl Sub<&U320> for &U320

§

type Output = <U320 as Sub>::Output

source§

impl Sub<&U320> for U320

§

type Output = <U320 as Sub>::Output

source§

impl Sub<&U384> for &U384

§

type Output = <U384 as Sub>::Output

source§

impl Sub<&U384> for U384

§

type Output = <U384 as Sub>::Output

source§

impl Sub<&U448> for &U448

§

type Output = <U448 as Sub>::Output

source§

impl Sub<&U448> for U448

§

type Output = <U448 as Sub>::Output

source§

impl Sub<&U512> for &U512

§

type Output = <U512 as Sub>::Output

source§

impl Sub<&U512> for U512

§

type Output = <U512 as Sub>::Output

source§

impl Sub<&U768> for &U768

§

type Output = <U768 as Sub>::Output

source§

impl Sub<&U768> for U768

§

type Output = <U768 as Sub>::Output

1.74.0 · source§

impl Sub<&Saturating<i8>> for &Saturating<i8>

1.74.0 · source§

impl Sub<&Saturating<i8>> for Saturating<i8>

1.74.0 · source§

impl Sub<&Saturating<i16>> for &Saturating<i16>

1.74.0 · source§

impl Sub<&Saturating<i16>> for Saturating<i16>

1.74.0 · source§

impl Sub<&Saturating<i32>> for &Saturating<i32>

1.74.0 · source§

impl Sub<&Saturating<i32>> for Saturating<i32>

1.74.0 · source§

impl Sub<&Saturating<i64>> for &Saturating<i64>

1.74.0 · source§

impl Sub<&Saturating<i64>> for Saturating<i64>

1.74.0 · source§

impl Sub<&Saturating<i128>> for &Saturating<i128>

1.74.0 · source§

impl Sub<&Saturating<i128>> for Saturating<i128>

1.74.0 · source§

impl Sub<&Saturating<isize>> for &Saturating<isize>

1.74.0 · source§

impl Sub<&Saturating<isize>> for Saturating<isize>

1.74.0 · source§

impl Sub<&Saturating<u8>> for &Saturating<u8>

1.74.0 · source§

impl Sub<&Saturating<u8>> for Saturating<u8>

1.74.0 · source§

impl Sub<&Saturating<u16>> for &Saturating<u16>

1.74.0 · source§

impl Sub<&Saturating<u16>> for Saturating<u16>

1.74.0 · source§

impl Sub<&Saturating<u32>> for &Saturating<u32>

1.74.0 · source§

impl Sub<&Saturating<u32>> for Saturating<u32>

1.74.0 · source§

impl Sub<&Saturating<u64>> for &Saturating<u64>

1.74.0 · source§

impl Sub<&Saturating<u64>> for Saturating<u64>

1.74.0 · source§

impl Sub<&Saturating<u128>> for &Saturating<u128>

1.74.0 · source§

impl Sub<&Saturating<u128>> for Saturating<u128>

1.74.0 · source§

impl Sub<&Saturating<usize>> for &Saturating<usize>

1.74.0 · source§

impl Sub<&Saturating<usize>> for Saturating<usize>

1.14.0 · source§

impl Sub<&Wrapping<i8>> for &Wrapping<i8>

§

type Output = <Wrapping<i8> as Sub>::Output

1.14.0 · source§

impl Sub<&Wrapping<i8>> for Wrapping<i8>

§

type Output = <Wrapping<i8> as Sub>::Output

1.14.0 · source§

impl Sub<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 · source§

impl Sub<&Wrapping<i16>> for Wrapping<i16>

1.14.0 · source§

impl Sub<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 · source§

impl Sub<&Wrapping<i32>> for Wrapping<i32>

1.14.0 · source§

impl Sub<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 · source§

impl Sub<&Wrapping<i64>> for Wrapping<i64>

1.14.0 · source§

impl Sub<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 · source§

impl Sub<&Wrapping<i128>> for Wrapping<i128>

1.14.0 · source§

impl Sub<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 · source§

impl Sub<&Wrapping<isize>> for Wrapping<isize>

1.14.0 · source§

impl Sub<&Wrapping<u8>> for &Wrapping<u8>

§

type Output = <Wrapping<u8> as Sub>::Output

1.14.0 · source§

impl Sub<&Wrapping<u8>> for Wrapping<u8>

§

type Output = <Wrapping<u8> as Sub>::Output

1.14.0 · source§

impl Sub<&Wrapping<u16>> for &Wrapping<u16>

1.14.0 · source§

impl Sub<&Wrapping<u16>> for Wrapping<u16>

1.14.0 · source§

impl Sub<&Wrapping<u32>> for &Wrapping<u32>

1.14.0 · source§

impl Sub<&Wrapping<u32>> for Wrapping<u32>

1.14.0 · source§

impl Sub<&Wrapping<u64>> for &Wrapping<u64>

1.14.0 · source§

impl Sub<&Wrapping<u64>> for Wrapping<u64>

1.14.0 · source§

impl Sub<&Wrapping<u128>> for &Wrapping<u128>

1.14.0 · source§

impl Sub<&Wrapping<u128>> for Wrapping<u128>

1.14.0 · source§

impl Sub<&Wrapping<usize>> for &Wrapping<usize>

1.14.0 · source§

impl Sub<&Wrapping<usize>> for Wrapping<usize>

source§

impl Sub<&BigInt> for &i8

source§

impl Sub<&BigInt> for &i16

source§

impl Sub<&BigInt> for &i32

source§

impl Sub<&BigInt> for &i64

source§

impl Sub<&BigInt> for &i128

source§

impl Sub<&BigInt> for &isize

source§

impl Sub<&BigInt> for &u8

source§

impl Sub<&BigInt> for &u16

source§

impl Sub<&BigInt> for &u32

source§

impl Sub<&BigInt> for &u64

source§

impl Sub<&BigInt> for &u128

source§

impl Sub<&BigInt> for &usize

source§

impl Sub<&BigInt> for &BigInt

source§

impl Sub<&BigInt> for i8

source§

impl Sub<&BigInt> for i16

source§

impl Sub<&BigInt> for i32

source§

impl Sub<&BigInt> for i64

source§

impl Sub<&BigInt> for i128

source§

impl Sub<&BigInt> for isize

source§

impl Sub<&BigInt> for u8

source§

impl Sub<&BigInt> for u16

source§

impl Sub<&BigInt> for u32

source§

impl Sub<&BigInt> for u64

source§

impl Sub<&BigInt> for u128

source§

impl Sub<&BigInt> for usize

source§

impl Sub<&BigInt> for BigInt

source§

impl Sub<&BigUint> for &u8

source§

impl Sub<&BigUint> for &u16

source§

impl Sub<&BigUint> for &u32

source§

impl Sub<&BigUint> for &u64

source§

impl Sub<&BigUint> for &u128

source§

impl Sub<&BigUint> for &usize

source§

impl Sub<&BigUint> for &BigUint

source§

impl Sub<&BigUint> for u8

source§

impl Sub<&BigUint> for u16

source§

impl Sub<&BigUint> for u32

source§

impl Sub<&BigUint> for u64

source§

impl Sub<&BigUint> for u128

source§

impl Sub<&BigUint> for usize

source§

impl Sub<&BigUint> for BigUint

source§

impl Sub<i8> for &BigInt

source§

impl Sub<i8> for Decimal

source§

impl Sub<i8> for PreciseDecimal

source§

impl Sub<i8> for BigInt

source§

impl Sub<i16> for &BigInt

source§

impl Sub<i16> for Decimal

source§

impl Sub<i16> for PreciseDecimal

source§

impl Sub<i16> for BigInt

source§

impl Sub<i32> for &BigInt

source§

impl Sub<i32> for Decimal

source§

impl Sub<i32> for PreciseDecimal

source§

impl Sub<i32> for BigInt

source§

impl Sub<i64> for &BigInt

source§

impl Sub<i64> for Decimal

source§

impl Sub<i64> for PreciseDecimal

source§

impl Sub<i64> for BigInt

source§

impl Sub<i128> for &BigInt

source§

impl Sub<i128> for Decimal

source§

impl Sub<i128> for PreciseDecimal

source§

impl Sub<i128> for BigInt

source§

impl Sub<isize> for &BigInt

source§

impl Sub<isize> for Decimal

source§

impl Sub<isize> for PreciseDecimal

source§

impl Sub<isize> for BigInt

source§

impl Sub<u8> for &BigInt

source§

impl Sub<u8> for &BigUint

source§

impl Sub<u8> for Decimal

source§

impl Sub<u8> for PreciseDecimal

source§

impl Sub<u8> for BigInt

source§

impl Sub<u8> for BigUint

source§

impl Sub<u16> for &BigInt

source§

impl Sub<u16> for &BigUint

source§

impl Sub<u16> for Decimal

source§

impl Sub<u16> for PreciseDecimal

source§

impl Sub<u16> for BigInt

source§

impl Sub<u16> for BigUint

source§

impl Sub<u32> for &BigInt

source§

impl Sub<u32> for &BigUint

source§

impl Sub<u32> for Decimal

source§

impl Sub<u32> for PreciseDecimal

source§

impl Sub<u32> for BigInt

source§

impl Sub<u32> for BigUint

source§

impl Sub<u64> for &BigInt

source§

impl Sub<u64> for &BigUint

source§

impl Sub<u64> for Decimal

source§

impl Sub<u64> for PreciseDecimal

source§

impl Sub<u64> for BigInt

source§

impl Sub<u64> for BigUint

source§

impl Sub<u128> for &BigInt

source§

impl Sub<u128> for &BigUint

source§

impl Sub<u128> for Decimal

source§

impl Sub<u128> for PreciseDecimal

source§

impl Sub<u128> for BigInt

source§

impl Sub<u128> for BigUint

source§

impl Sub<usize> for &BigInt

source§

impl Sub<usize> for &BigUint

source§

impl Sub<usize> for Decimal

source§

impl Sub<usize> for PreciseDecimal

source§

impl Sub<usize> for BigInt

source§

impl Sub<usize> for BigUint

source§

impl Sub<Decimal> for i8

source§

impl Sub<Decimal> for i16

source§

impl Sub<Decimal> for i32

source§

impl Sub<Decimal> for i64

source§

impl Sub<Decimal> for i128

source§

impl Sub<Decimal> for isize

source§

impl Sub<Decimal> for u8

source§

impl Sub<Decimal> for u16

source§

impl Sub<Decimal> for u32

source§

impl Sub<Decimal> for u64

source§

impl Sub<Decimal> for u128

source§

impl Sub<Decimal> for usize

source§

impl Sub<Decimal> for I192

source§

impl Sub<Decimal> for I256

source§

impl Sub<Decimal> for I320

source§

impl Sub<Decimal> for I448

source§

impl Sub<Decimal> for I512

source§

impl Sub<Decimal> for PreciseDecimal

source§

impl Sub<Decimal> for U192

source§

impl Sub<Decimal> for U256

source§

impl Sub<Decimal> for U320

source§

impl Sub<Decimal> for U448

source§

impl Sub<Decimal> for U512

source§

impl Sub<I192> for Decimal

source§

impl Sub<I192> for PreciseDecimal

source§

impl Sub<I256> for Decimal

source§

impl Sub<I256> for PreciseDecimal

source§

impl Sub<I320> for Decimal

source§

impl Sub<I320> for PreciseDecimal

source§

impl Sub<I448> for Decimal

source§

impl Sub<I448> for PreciseDecimal

source§

impl Sub<I512> for Decimal

source§

impl Sub<I512> for PreciseDecimal

source§

impl Sub<PreciseDecimal> for i8

source§

impl Sub<PreciseDecimal> for i16

source§

impl Sub<PreciseDecimal> for i32

source§

impl Sub<PreciseDecimal> for i64

source§

impl Sub<PreciseDecimal> for i128

source§

impl Sub<PreciseDecimal> for isize

source§

impl Sub<PreciseDecimal> for u8

source§

impl Sub<PreciseDecimal> for u16

source§

impl Sub<PreciseDecimal> for u32

source§

impl Sub<PreciseDecimal> for u64

source§

impl Sub<PreciseDecimal> for u128

source§

impl Sub<PreciseDecimal> for usize

source§

impl Sub<PreciseDecimal> for Decimal

source§

impl Sub<PreciseDecimal> for I192

source§

impl Sub<PreciseDecimal> for I256

source§

impl Sub<PreciseDecimal> for I320

source§

impl Sub<PreciseDecimal> for I448

source§

impl Sub<PreciseDecimal> for I512

source§

impl Sub<PreciseDecimal> for U192

source§

impl Sub<PreciseDecimal> for U256

source§

impl Sub<PreciseDecimal> for U320

source§

impl Sub<PreciseDecimal> for U448

source§

impl Sub<PreciseDecimal> for U512

source§

impl Sub<U192> for Decimal

source§

impl Sub<U192> for PreciseDecimal

source§

impl Sub<U256> for Decimal

source§

impl Sub<U256> for PreciseDecimal

source§

impl Sub<U320> for Decimal

source§

impl Sub<U320> for PreciseDecimal

source§

impl Sub<U448> for Decimal

source§

impl Sub<U448> for PreciseDecimal

source§

impl Sub<U512> for Decimal

source§

impl Sub<U512> for PreciseDecimal

1.8.0 · source§

impl Sub<Duration> for Instant

1.8.0 · source§

impl Sub<Duration> for SystemTime

source§

impl Sub<BigInt> for &i8

source§

impl Sub<BigInt> for &i16

source§

impl Sub<BigInt> for &i32

source§

impl Sub<BigInt> for &i64

source§

impl Sub<BigInt> for &i128

source§

impl Sub<BigInt> for &isize

source§

impl Sub<BigInt> for &u8

source§

impl Sub<BigInt> for &u16

source§

impl Sub<BigInt> for &u32

source§

impl Sub<BigInt> for &u64

source§

impl Sub<BigInt> for &u128

source§

impl Sub<BigInt> for &usize

source§

impl Sub<BigInt> for &BigInt

source§

impl Sub<BigInt> for i8

source§

impl Sub<BigInt> for i16

source§

impl Sub<BigInt> for i32

source§

impl Sub<BigInt> for i64

source§

impl Sub<BigInt> for i128

source§

impl Sub<BigInt> for isize

source§

impl Sub<BigInt> for u8

source§

impl Sub<BigInt> for u16

source§

impl Sub<BigInt> for u32

source§

impl Sub<BigInt> for u64

source§

impl Sub<BigInt> for u128

source§

impl Sub<BigInt> for usize

source§

impl Sub<BigUint> for &u8

source§

impl Sub<BigUint> for &u16

source§

impl Sub<BigUint> for &u32

source§

impl Sub<BigUint> for &u64

source§

impl Sub<BigUint> for &u128

source§

impl Sub<BigUint> for &usize

source§

impl Sub<BigUint> for &BigUint

source§

impl Sub<BigUint> for u8

source§

impl Sub<BigUint> for u16

source§

impl Sub<BigUint> for u32

source§

impl Sub<BigUint> for u64

source§

impl Sub<BigUint> for u128

source§

impl Sub<BigUint> for usize

source§

impl Sub<B0> for UTerm

UTerm - B0 = Term

source§

impl Sub<B1> for UInt<UTerm, B1>

UInt<UTerm, B1> - B1 = UTerm

source§

impl<'a> Sub<f32> for &'a f32

§

type Output = <f32 as Sub>::Output

source§

impl<'a> Sub<f64> for &'a f64

§

type Output = <f64 as Sub>::Output

source§

impl<'a> Sub<i8> for &'a i8

§

type Output = <i8 as Sub>::Output

source§

impl<'a> Sub<i16> for &'a i16

§

type Output = <i16 as Sub>::Output

source§

impl<'a> Sub<i32> for &'a i32

§

type Output = <i32 as Sub>::Output

source§

impl<'a> Sub<i64> for &'a i64

§

type Output = <i64 as Sub>::Output

source§

impl<'a> Sub<i128> for &'a i128

§

type Output = <i128 as Sub>::Output

source§

impl<'a> Sub<isize> for &'a isize

§

type Output = <isize as Sub>::Output

source§

impl<'a> Sub<u8> for &'a u8

§

type Output = <u8 as Sub>::Output

source§

impl<'a> Sub<u16> for &'a u16

§

type Output = <u16 as Sub>::Output

source§

impl<'a> Sub<u32> for &'a u32

§

type Output = <u32 as Sub>::Output

source§

impl<'a> Sub<u64> for &'a u64

§

type Output = <u64 as Sub>::Output

source§

impl<'a> Sub<u128> for &'a u128

§

type Output = <u128 as Sub>::Output

source§

impl<'a> Sub<usize> for &'a usize

§

type Output = <usize as Sub>::Output

source§

impl<'a> Sub<I192> for &'a I192

§

type Output = <I192 as Sub>::Output

source§

impl<'a> Sub<I256> for &'a I256

§

type Output = <I256 as Sub>::Output

source§

impl<'a> Sub<I320> for &'a I320

§

type Output = <I320 as Sub>::Output

source§

impl<'a> Sub<I384> for &'a I384

§

type Output = <I384 as Sub>::Output

source§

impl<'a> Sub<I448> for &'a I448

§

type Output = <I448 as Sub>::Output

source§

impl<'a> Sub<I512> for &'a I512

§

type Output = <I512 as Sub>::Output

source§

impl<'a> Sub<I768> for &'a I768

§

type Output = <I768 as Sub>::Output

source§

impl<'a> Sub<U192> for &'a U192

§

type Output = <U192 as Sub>::Output

source§

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

§

type Output = <U256 as Sub>::Output

source§

impl<'a> Sub<U320> for &'a U320

§

type Output = <U320 as Sub>::Output

source§

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

§

type Output = <U384 as Sub>::Output

source§

impl<'a> Sub<U448> for &'a U448

§

type Output = <U448 as Sub>::Output

source§

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

§

type Output = <U512 as Sub>::Output

source§

impl<'a> Sub<U768> for &'a U768

§

type Output = <U768 as Sub>::Output

1.74.0 · source§

impl<'a> Sub<Saturating<i8>> for &'a Saturating<i8>

1.74.0 · source§

impl<'a> Sub<Saturating<i16>> for &'a Saturating<i16>

1.74.0 · source§

impl<'a> Sub<Saturating<i32>> for &'a Saturating<i32>

1.74.0 · source§

impl<'a> Sub<Saturating<i64>> for &'a Saturating<i64>

1.74.0 · source§

impl<'a> Sub<Saturating<i128>> for &'a Saturating<i128>

1.74.0 · source§

impl<'a> Sub<Saturating<isize>> for &'a Saturating<isize>

1.74.0 · source§

impl<'a> Sub<Saturating<u8>> for &'a Saturating<u8>

1.74.0 · source§

impl<'a> Sub<Saturating<u16>> for &'a Saturating<u16>

1.74.0 · source§

impl<'a> Sub<Saturating<u32>> for &'a Saturating<u32>

1.74.0 · source§

impl<'a> Sub<Saturating<u64>> for &'a Saturating<u64>

1.74.0 · source§

impl<'a> Sub<Saturating<u128>> for &'a Saturating<u128>

1.74.0 · source§

impl<'a> Sub<Saturating<usize>> for &'a Saturating<usize>

1.14.0 · source§

impl<'a> Sub<Wrapping<i8>> for &'a Wrapping<i8>

§

type Output = <Wrapping<i8> as Sub>::Output

1.14.0 · source§

impl<'a> Sub<Wrapping<i16>> for &'a Wrapping<i16>

1.14.0 · source§

impl<'a> Sub<Wrapping<i32>> for &'a Wrapping<i32>

1.14.0 · source§

impl<'a> Sub<Wrapping<i64>> for &'a Wrapping<i64>

1.14.0 · source§

impl<'a> Sub<Wrapping<i128>> for &'a Wrapping<i128>

1.14.0 · source§

impl<'a> Sub<Wrapping<isize>> for &'a Wrapping<isize>

1.14.0 · source§

impl<'a> Sub<Wrapping<u8>> for &'a Wrapping<u8>

§

type Output = <Wrapping<u8> as Sub>::Output

1.14.0 · source§

impl<'a> Sub<Wrapping<u16>> for &'a Wrapping<u16>

1.14.0 · source§

impl<'a> Sub<Wrapping<u32>> for &'a Wrapping<u32>

1.14.0 · source§

impl<'a> Sub<Wrapping<u64>> for &'a Wrapping<u64>

1.14.0 · source§

impl<'a> Sub<Wrapping<u128>> for &'a Wrapping<u128>

1.14.0 · source§

impl<'a> Sub<Wrapping<usize>> for &'a Wrapping<usize>

source§

impl<'a> Sub<EdwardsPoint> for &'a EdwardsPoint

source§

impl<'a> Sub<RistrettoPoint> for &'a RistrettoPoint

source§

impl<'a> Sub<Scalar> for &'a Scalar

source§

impl<'a, 'b> Sub<&'b AffineNielsPoint> for &'a EdwardsPoint

source§

impl<'a, 'b> Sub<&'b ProjectiveNielsPoint> for &'a EdwardsPoint

source§

impl<'a, 'b> Sub<&'b EdwardsPoint> for &'a EdwardsPoint

source§

impl<'a, 'b> Sub<&'b RistrettoPoint> for &'a RistrettoPoint

source§

impl<'a, 'b> Sub<&'b Scalar> for &'a Scalar

source§

impl<'b> Sub<&'b EdwardsPoint> for EdwardsPoint

source§

impl<'b> Sub<&'b RistrettoPoint> for RistrettoPoint

source§

impl<'b> Sub<&'b Scalar> for Scalar

source§

impl<'lhs, 'rhs, T, const N: usize> Sub<&'rhs Simd<T, N>> for &'lhs Simd<T, N>
where T: SimdElement, Simd<T, N>: Sub<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

impl<T, A> Sub<&BTreeSet<T, A>> for &BTreeSet<T, A>
where T: Ord + Clone, A: Allocator + Clone,

§

type Output = BTreeSet<T, A>

source§

impl<T, S1, S2> Sub<&IndexSet<T, S2>> for &IndexSet<T, S1>
where T: Eq + Hash + Clone, S1: BuildHasher + Default, S2: BuildHasher,

§

type Output = IndexSet<T, S1>

source§

impl<T, S> Sub<&HashSet<T, S>> for &scrypto::prelude::radix_engine_common::prelude::hash_set::ext_HashSet<T, S>
where T: Eq + Hash + Clone, S: BuildHasher + Default,

§

type Output = HashSet<T, S>

§

impl<T, S> Sub<&HashSet<T, S>> for &HashSet<T, S>
where T: Eq + Hash + Clone, S: BuildHasher + Default,

§

type Output = HashSet<T, S>

source§

impl<T, const N: usize> Sub<&Simd<T, N>> for Simd<T, N>
where T: SimdElement, Simd<T, N>: Sub<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

impl<T, const N: usize> Sub<Simd<T, N>> for &Simd<T, N>
where T: SimdElement, Simd<T, N>: Sub<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

impl<U> Sub<B1> for UInt<U, B0>
where U: Unsigned + Sub<B1>, <U as Sub<B1>>::Output: Unsigned,

UInt<U, B0> - B1 = UInt<U - B1, B1>

§

type Output = UInt<<U as Sub<B1>>::Output, B1>

source§

impl<U> Sub<NInt<U>> for Z0
where U: Unsigned + NonZero,

Z0 - N = P

§

type Output = PInt<U>

source§

impl<U> Sub<PInt<U>> for Z0
where U: Unsigned + NonZero,

Z0 - P = N

§

type Output = NInt<U>

source§

impl<U> Sub<Z0> for NInt<U>
where U: Unsigned + NonZero,

NInt - Z0 = NInt

§

type Output = NInt<U>

source§

impl<U> Sub<Z0> for PInt<U>
where U: Unsigned + NonZero,

PInt - Z0 = PInt

§

type Output = PInt<U>

source§

impl<U, B> Sub<B0> for UInt<U, B>
where U: Unsigned, B: Bit,

UInt - B0 = UInt

§

type Output = UInt<U, B>

source§

impl<U, B> Sub<B1> for UInt<UInt<U, B>, B1>
where U: Unsigned, B: Bit,

UInt<U, B1> - B1 = UInt<U, B0>

§

type Output = UInt<UInt<U, B>, B0>

source§

impl<Ul, Bl, Ur> Sub<Ur> for UInt<Ul, Bl>
where Ul: Unsigned, Bl: Bit, Ur: Unsigned, UInt<Ul, Bl>: PrivateSub<Ur>, <UInt<Ul, Bl> as PrivateSub<Ur>>::Output: Trim,

Subtracting unsigned integers. We just do our PrivateSub and then Trim the output.

§

type Output = <<UInt<Ul, Bl> as PrivateSub<Ur>>::Output as Trim>::Output

source§

impl<Ul, Ur> Sub<NInt<Ur>> for NInt<Ul>
where Ul: Unsigned + NonZero, Ur: Unsigned + NonZero + Cmp<Ul> + PrivateIntegerAdd<<Ur as Cmp<Ul>>::Output, Ul>,

N(Ul) - N(Ur): We resolve this with our PrivateAdd

§

type Output = <Ur as PrivateIntegerAdd<<Ur as Cmp<Ul>>::Output, Ul>>::Output

source§

impl<Ul, Ur> Sub<NInt<Ur>> for PInt<Ul>
where Ul: Unsigned + NonZero + Add<Ur>, Ur: Unsigned + NonZero, <Ul as Add<Ur>>::Output: Unsigned + NonZero,

P(Ul) - N(Ur) = P(Ul + Ur)

§

type Output = PInt<<Ul as Add<Ur>>::Output>

source§

impl<Ul, Ur> Sub<PInt<Ur>> for NInt<Ul>
where Ul: Unsigned + NonZero + Add<Ur>, Ur: Unsigned + NonZero, <Ul as Add<Ur>>::Output: Unsigned + NonZero,

N(Ul) - P(Ur) = N(Ul + Ur)

§

type Output = NInt<<Ul as Add<Ur>>::Output>

source§

impl<Ul, Ur> Sub<PInt<Ur>> for PInt<Ul>
where Ul: Unsigned + NonZero + Cmp<Ur> + PrivateIntegerAdd<<Ul as Cmp<Ur>>::Output, Ur>, Ur: Unsigned + NonZero,

P(Ul) - P(Ur): We resolve this with our PrivateAdd

§

type Output = <Ul as PrivateIntegerAdd<<Ul as Cmp<Ur>>::Output, Ur>>::Output

source§

impl<Vl, Al, Vr, Ar> Sub<TArr<Vr, Ar>> for TArr<Vl, Al>
where Vl: Sub<Vr>, Al: Sub<Ar>,

§

type Output = TArr<<Vl as Sub<Vr>>::Output, <Al as Sub<Ar>>::Output>

source§

impl<const N: usize> Sub for Simd<f32, N>

§

type Output = Simd<f32, N>

source§

impl<const N: usize> Sub for Simd<f64, N>

§

type Output = Simd<f64, N>

source§

impl<const N: usize> Sub for Simd<i8, N>

§

type Output = Simd<i8, N>

source§

impl<const N: usize> Sub for Simd<i16, N>

§

type Output = Simd<i16, N>

source§

impl<const N: usize> Sub for Simd<i32, N>

§

type Output = Simd<i32, N>

source§

impl<const N: usize> Sub for Simd<i64, N>

§

type Output = Simd<i64, N>

source§

impl<const N: usize> Sub for Simd<isize, N>

§

type Output = Simd<isize, N>

source§

impl<const N: usize> Sub for Simd<u8, N>

§

type Output = Simd<u8, N>

source§

impl<const N: usize> Sub for Simd<u16, N>

§

type Output = Simd<u16, N>

source§

impl<const N: usize> Sub for Simd<u32, N>

§

type Output = Simd<u32, N>

source§

impl<const N: usize> Sub for Simd<u64, N>

§

type Output = Simd<u64, N>

source§

impl<const N: usize> Sub for Simd<usize, N>

§

type Output = Simd<usize, N>

§

impl<const N: usize> Sub for BInt<N>

§

type Output = BInt<N>

§

impl<const N: usize> Sub for BIntD8<N>

§

type Output = BIntD8<N>

§

impl<const N: usize> Sub for BIntD16<N>

§

type Output = BIntD16<N>

§

impl<const N: usize> Sub for BIntD32<N>

§

type Output = BIntD32<N>

§

impl<const N: usize> Sub for BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Sub for BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Sub for BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Sub for BUintD32<N>

§

type Output = BUintD32<N>

§

impl<const N: usize> Sub<&BInt<N>> for &BInt<N>

§

type Output = BInt<N>

§

impl<const N: usize> Sub<&BInt<N>> for BInt<N>

§

type Output = BInt<N>

§

impl<const N: usize> Sub<&BIntD8<N>> for &BIntD8<N>

§

type Output = BIntD8<N>

§

impl<const N: usize> Sub<&BIntD8<N>> for BIntD8<N>

§

type Output = BIntD8<N>

§

impl<const N: usize> Sub<&BIntD16<N>> for &BIntD16<N>

§

type Output = BIntD16<N>

§

impl<const N: usize> Sub<&BIntD16<N>> for BIntD16<N>

§

type Output = BIntD16<N>

§

impl<const N: usize> Sub<&BIntD32<N>> for &BIntD32<N>

§

type Output = BIntD32<N>

§

impl<const N: usize> Sub<&BIntD32<N>> for BIntD32<N>

§

type Output = BIntD32<N>

§

impl<const N: usize> Sub<&BUint<N>> for &BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Sub<&BUint<N>> for BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Sub<&BUintD8<N>> for &BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Sub<&BUintD8<N>> for BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Sub<&BUintD16<N>> for &BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Sub<&BUintD16<N>> for BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Sub<&BUintD32<N>> for &BUintD32<N>

§

type Output = BUintD32<N>

§

impl<const N: usize> Sub<&BUintD32<N>> for BUintD32<N>

§

type Output = BUintD32<N>

§

impl<const N: usize> Sub<BInt<N>> for &BInt<N>

§

type Output = BInt<N>

§

impl<const N: usize> Sub<BIntD8<N>> for &BIntD8<N>

§

type Output = BIntD8<N>

§

impl<const N: usize> Sub<BIntD16<N>> for &BIntD16<N>

§

type Output = BIntD16<N>

§

impl<const N: usize> Sub<BIntD32<N>> for &BIntD32<N>

§

type Output = BIntD32<N>

§

impl<const N: usize> Sub<BUint<N>> for &BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Sub<BUintD8<N>> for &BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Sub<BUintD16<N>> for &BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Sub<BUintD32<N>> for &BUintD32<N>

§

type Output = BUintD32<N>