Trait elliptic_curve::ops::Sub

1.0.0 · source ·
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§

1.0.0 · source

type Output

The resulting type after applying the - operator.

Required Methods§

1.0.0 · source

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

Performs the - operation.

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

Implementors§

1.0.0 · source§

impl Sub for f16

§

type Output = f16

1.0.0 · source§

impl Sub for f32

§

type Output = f32

1.0.0 · source§

impl Sub for f64

§

type Output = f64

1.0.0 · source§

impl Sub for f128

§

type Output = f128

1.0.0 · source§

impl Sub for i8

§

type Output = i8

1.0.0 · source§

impl Sub for i16

§

type Output = i16

1.0.0 · source§

impl Sub for i32

§

type Output = i32

1.0.0 · source§

impl Sub for i64

§

type Output = i64

1.0.0 · source§

impl Sub for i128

§

type Output = i128

1.0.0 · source§

impl Sub for isize

1.0.0 · source§

impl Sub for u8

§

type Output = u8

1.0.0 · source§

impl Sub for u16

§

type Output = u16

1.0.0 · source§

impl Sub for u32

§

type Output = u32

1.0.0 · source§

impl Sub for u64

§

type Output = u64

1.0.0 · source§

impl Sub for u128

§

type Output = u128

1.0.0 · source§

impl Sub for usize

source§

impl Sub for Checked<Limb>

source§

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

source§

impl Sub for Length

source§

impl Sub for ATerm

source§

impl Sub for UTerm

UTerm - UTerm = UTerm

source§

impl Sub for Z0

Z0 - Z0 = Z0

§

type Output = Z0

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>

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.0.0 · source§

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

1.3.0 · source§

impl Sub for Duration

1.8.0 · source§

impl Sub for Instant

1.0.0 · source§

impl Sub<&f16> for &f16

§

type Output = <f16 as Sub>::Output

1.0.0 · source§

impl Sub<&f16> for f16

§

type Output = <f16 as Sub>::Output

1.0.0 · source§

impl Sub<&f32> for &f32

§

type Output = <f32 as Sub>::Output

1.0.0 · source§

impl Sub<&f32> for f32

§

type Output = <f32 as Sub>::Output

1.0.0 · source§

impl Sub<&f64> for &f64

§

type Output = <f64 as Sub>::Output

1.0.0 · source§

impl Sub<&f64> for f64

§

type Output = <f64 as Sub>::Output

1.0.0 · source§

impl Sub<&f128> for &f128

§

type Output = <f128 as Sub>::Output

1.0.0 · source§

impl Sub<&f128> for f128

§

type Output = <f128 as Sub>::Output

1.0.0 · source§

impl Sub<&i8> for &i8

§

type Output = <i8 as Sub>::Output

1.0.0 · source§

impl Sub<&i8> for i8

§

type Output = <i8 as Sub>::Output

1.0.0 · source§

impl Sub<&i16> for &i16

§

type Output = <i16 as Sub>::Output

1.0.0 · source§

impl Sub<&i16> for i16

§

type Output = <i16 as Sub>::Output

1.0.0 · source§

impl Sub<&i32> for &i32

§

type Output = <i32 as Sub>::Output

1.0.0 · source§

impl Sub<&i32> for i32

§

type Output = <i32 as Sub>::Output

1.0.0 · source§

impl Sub<&i64> for &i64

§

type Output = <i64 as Sub>::Output

1.0.0 · source§

impl Sub<&i64> for i64

§

type Output = <i64 as Sub>::Output

1.0.0 · source§

impl Sub<&i128> for &i128

§

type Output = <i128 as Sub>::Output

1.0.0 · source§

impl Sub<&i128> for i128

§

type Output = <i128 as Sub>::Output

1.0.0 · source§

impl Sub<&isize> for &isize

§

type Output = <isize as Sub>::Output

1.0.0 · source§

impl Sub<&isize> for isize

§

type Output = <isize as Sub>::Output

1.0.0 · source§

impl Sub<&u8> for &u8

§

type Output = <u8 as Sub>::Output

1.0.0 · source§

impl Sub<&u8> for u8

§

type Output = <u8 as Sub>::Output

1.0.0 · source§

impl Sub<&u16> for &u16

§

type Output = <u16 as Sub>::Output

1.0.0 · source§

impl Sub<&u16> for u16

§

type Output = <u16 as Sub>::Output

1.0.0 · source§

impl Sub<&u32> for &u32

§

type Output = <u32 as Sub>::Output

1.0.0 · source§

impl Sub<&u32> for u32

§

type Output = <u32 as Sub>::Output

1.0.0 · source§

impl Sub<&u64> for &u64

§

type Output = <u64 as Sub>::Output

1.0.0 · source§

impl Sub<&u64> for u64

§

type Output = <u64 as Sub>::Output

1.0.0 · source§

impl Sub<&u128> for &u128

§

type Output = <u128 as Sub>::Output

1.0.0 · source§

impl Sub<&u128> for u128

§

type Output = <u128 as Sub>::Output

1.0.0 · source§

impl Sub<&usize> for &usize

§

type Output = <usize as Sub>::Output

1.0.0 · source§

impl Sub<&usize> for usize

§

type Output = <usize as Sub>::Output

source§

impl Sub<&Checked<Limb>> for &Checked<Limb>

source§

impl Sub<&Checked<Limb>> for Checked<Limb>

source§

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

source§

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

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 &core::num::wrapping::Wrapping<i8>

§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

source§

impl Sub<Checked<Limb>> for &Checked<Limb>

source§

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

source§

impl Sub<Length> for Result<Length, Error>

source§

impl Sub<B0> for UTerm

UTerm - B0 = Term

source§

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

UInt<UTerm, B1> - B1 = UTerm

1.8.0 · source§

impl Sub<Duration> for Instant

1.8.0 · source§

impl Sub<Duration> for SystemTime

1.0.0 · source§

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

§

type Output = <f16 as Sub>::Output

1.0.0 · source§

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

§

type Output = <f32 as Sub>::Output

1.0.0 · source§

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

§

type Output = <f64 as Sub>::Output

1.0.0 · source§

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

§

type Output = <f128 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i8 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i16 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i32 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i64 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i128 as Sub>::Output

1.0.0 · source§

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

§

type Output = <isize as Sub>::Output

1.0.0 · source§

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

§

type Output = <u8 as Sub>::Output

1.0.0 · source§

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

§

type Output = <u16 as Sub>::Output

1.0.0 · source§

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

§

type Output = <u32 as Sub>::Output

1.0.0 · source§

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

§

type Output = <u64 as Sub>::Output

1.0.0 · source§

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

§

type Output = <u128 as Sub>::Output

1.0.0 · source§

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

§

type Output = <usize 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 core::num::wrapping::Wrapping<i8>

§

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

1.14.0 · source§

impl<'a> Sub<Wrapping<i16>> for &'a core::num::wrapping::Wrapping<i16>

1.14.0 · source§

impl<'a> Sub<Wrapping<i32>> for &'a core::num::wrapping::Wrapping<i32>

1.14.0 · source§

impl<'a> Sub<Wrapping<i64>> for &'a core::num::wrapping::Wrapping<i64>

1.14.0 · source§

impl<'a> Sub<Wrapping<i128>> for &'a core::num::wrapping::Wrapping<i128>

1.14.0 · source§

impl<'a> Sub<Wrapping<isize>> for &'a core::num::wrapping::Wrapping<isize>

1.14.0 · source§

impl<'a> Sub<Wrapping<u8>> for &'a core::num::wrapping::Wrapping<u8>

§

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

1.14.0 · source§

impl<'a> Sub<Wrapping<u16>> for &'a core::num::wrapping::Wrapping<u16>

1.14.0 · source§

impl<'a> Sub<Wrapping<u32>> for &'a core::num::wrapping::Wrapping<u32>

1.14.0 · source§

impl<'a> Sub<Wrapping<u64>> for &'a core::num::wrapping::Wrapping<u64>

1.14.0 · source§

impl<'a> Sub<Wrapping<u128>> for &'a core::num::wrapping::Wrapping<u128>

1.14.0 · source§

impl<'a> Sub<Wrapping<usize>> for &'a core::num::wrapping::Wrapping<usize>

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<C> Sub for ScalarPrimitive<C>
where C: Curve,

source§

impl<C> Sub<&ScalarPrimitive<C>> for ScalarPrimitive<C>
where C: Curve,

source§

impl<MOD, const LIMBS: usize> Sub for Residue<MOD, LIMBS>
where MOD: ResidueParams<LIMBS>,

§

type Output = Residue<MOD, LIMBS>

source§

impl<MOD, const LIMBS: usize> Sub<&Residue<MOD, LIMBS>> for &Residue<MOD, LIMBS>
where MOD: ResidueParams<LIMBS>,

§

type Output = Residue<MOD, LIMBS>

source§

impl<MOD, const LIMBS: usize> Sub<&Residue<MOD, LIMBS>> for Residue<MOD, LIMBS>
where MOD: ResidueParams<LIMBS>,

§

type Output = Residue<MOD, LIMBS>

source§

impl<MOD, const LIMBS: usize> Sub<Residue<MOD, LIMBS>> for &Residue<MOD, LIMBS>
where MOD: ResidueParams<LIMBS>,

§

type Output = Residue<MOD, LIMBS>

1.0.0 · source§

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

§

type Output = BTreeSet<T, A>

1.0.0 · source§

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<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<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<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 LIMBS: usize> Sub for Checked<Uint<LIMBS>>

§

type Output = Checked<Uint<LIMBS>>

source§

impl<const LIMBS: usize> Sub for DynResidue<LIMBS>

§

type Output = DynResidue<LIMBS>

source§

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

§

type Output = Wrapping<Uint<LIMBS>>

source§

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

§

type Output = Checked<Uint<LIMBS>>

source§

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

§

type Output = Checked<Uint<LIMBS>>

source§

impl<const LIMBS: usize> Sub<&DynResidue<LIMBS>> for &DynResidue<LIMBS>

§

type Output = DynResidue<LIMBS>

source§

impl<const LIMBS: usize> Sub<&DynResidue<LIMBS>> for DynResidue<LIMBS>

§

type Output = DynResidue<LIMBS>

source§

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

§

type Output = Wrapping<Uint<LIMBS>>

source§

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

§

type Output = Wrapping<Uint<LIMBS>>

source§

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

§

type Output = Checked<Uint<LIMBS>>

source§

impl<const LIMBS: usize> Sub<DynResidue<LIMBS>> for &DynResidue<LIMBS>

§

type Output = DynResidue<LIMBS>

source§

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

§

type Output = Wrapping<Uint<LIMBS>>

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<T, S> Sub<&AHashSet<T, S>> for &AHashSet<T, S>
where T: Eq + Hash + Clone, S: BuildHasher + Default,

impl Sub for Effects

impl Sub<Effects> for Style

impl Sub for NaiveDate

impl Sub for NaiveTime

impl Sub for TimeDelta

impl Sub<Days> for NaiveDate

impl Sub<Months> for NaiveDate

impl<Tz: TimeZone> Sub for Date<Tz>

impl<Tz: TimeZone> Sub for DateTime<Tz>

impl<Tz: TimeZone> Sub<&DateTime<Tz>> for DateTime<Tz>

impl<Tz: TimeZone> Sub<FixedOffset> for DateTime<Tz>

impl<Tz: TimeZone> Sub<Days> for DateTime<Tz>

impl<Tz: TimeZone> Sub<Months> for DateTime<Tz>

impl<Tz: TimeZone> Sub<TimeDelta> for Date<Tz>

impl<Tz: TimeZone> Sub<TimeDelta> for DateTime<Tz>

impl<Tz: TimeZone> Sub<Duration> for DateTime<Tz>

impl Sub for Duration

impl Sub for Instant

impl Sub<Duration> for Instant

impl Sub for Ieee32

impl Sub for Ieee64

impl Sub for EdwardsPoint

impl Sub for Scalar

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

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

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

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

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

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

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

impl<'a, K, V: 'a, S: BuildHasher + Clone, Q> Sub<&Q> for &'a DashMap<K, V, S>
where K: Borrow<Q> + 'a + Eq + Hash, Q: Hash + Eq + ?Sized,

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

impl<'a, 'b, T, S> Sub<&'b LinkedHashSet<T, S>> for &'a LinkedHashSet<T, S>
where T: Eq + Hash + Clone, S: BuildHasher + Default,

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

impl Sub for BigInt

impl Sub for Number

impl Sub<&BigInt> for &BigInt

impl Sub<&BigInt> for BigInt

impl Sub<&Number> for &Number

impl Sub<&Number> for Number

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

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

impl Sub for Scalar

impl Sub<&Scalar> for &Scalar

impl Sub<&Scalar> for Scalar

impl<'a, 'b, T, S> Sub<&'b LinkedHashSet<T, S>> for &'a LinkedHashSet<T, S>
where T: Eq + Hash + Clone, S: BuildHasher + Default,

impl Sub for Events

impl Sub for NextHopFlags

impl Sub for RouteFlags

impl Sub for RuleFlags

impl Sub for AtFlags

impl Sub for FdFlag

impl Sub for OFlag

impl Sub for RenameFlags

impl Sub for SealFlag

impl Sub for MntFlags

impl Sub for MsFlags

impl Sub for CloneFlags

impl Sub for SaFlags

impl Sub for SfdFlags

impl Sub for Mode

impl Sub for SFlag

impl Sub for FsFlags

impl Sub for TimeSpec

impl Sub for TimeVal

impl Sub for WaitPidFlag

impl Sub for AccessFlags

impl Sub for Rgb

impl Sub<&Rgb> for &Rgb

impl Sub<&Rgb> for Rgb

impl Sub<Rgb> for &Rgb

impl Sub for BigInt

impl Sub for BigUint

impl Sub<&i128> for &BigInt

impl Sub<&i128> for BigInt

impl Sub<&i16> for &BigInt

impl Sub<&i16> for BigInt

impl Sub<&i32> for &BigInt

impl Sub<&i32> for BigInt

impl Sub<&i64> for &BigInt

impl Sub<&i64> for BigInt

impl Sub<&i8> for &BigInt

impl Sub<&i8> for BigInt

impl Sub<&isize> for &BigInt

impl Sub<&isize> for BigInt

impl Sub<&u128> for &BigInt

impl Sub<&u128> for &BigUint

impl Sub<&u128> for BigInt

impl Sub<&u128> for BigUint

impl Sub<&u16> for &BigInt

impl Sub<&u16> for &BigUint

impl Sub<&u16> for BigInt

impl Sub<&u16> for BigUint

impl Sub<&u32> for &BigInt

impl Sub<&u32> for &BigUint

impl Sub<&u32> for BigInt

impl Sub<&u32> for BigUint

impl Sub<&u64> for &BigInt

impl Sub<&u64> for &BigUint

impl Sub<&u64> for BigInt

impl Sub<&u64> for BigUint

impl Sub<&u8> for &BigInt

impl Sub<&u8> for &BigUint

impl Sub<&u8> for BigInt

impl Sub<&u8> for BigUint

impl Sub<&usize> for &BigInt

impl Sub<&usize> for &BigUint

impl Sub<&usize> for BigInt

impl Sub<&usize> for BigUint

impl Sub<&BigInt> for &i128

impl Sub<&BigInt> for &i16

impl Sub<&BigInt> for &i32

impl Sub<&BigInt> for &i64

impl Sub<&BigInt> for &i8

impl Sub<&BigInt> for &isize

impl Sub<&BigInt> for &u128

impl Sub<&BigInt> for &u16

impl Sub<&BigInt> for &u32

impl Sub<&BigInt> for &u64

impl Sub<&BigInt> for &u8

impl Sub<&BigInt> for &usize

impl Sub<&BigInt> for &BigInt

impl Sub<&BigInt> for i128

impl Sub<&BigInt> for i16

impl Sub<&BigInt> for i32

impl Sub<&BigInt> for i64

impl Sub<&BigInt> for i8

impl Sub<&BigInt> for isize

impl Sub<&BigInt> for u128

impl Sub<&BigInt> for u16

impl Sub<&BigInt> for u32

impl Sub<&BigInt> for u64

impl Sub<&BigInt> for u8

impl Sub<&BigInt> for usize

impl Sub<&BigInt> for BigInt

impl Sub<&BigUint> for &u128

impl Sub<&BigUint> for &u16

impl Sub<&BigUint> for &u32

impl Sub<&BigUint> for &u64

impl Sub<&BigUint> for &u8

impl Sub<&BigUint> for &usize

impl Sub<&BigUint> for &BigUint

impl Sub<&BigUint> for u128

impl Sub<&BigUint> for u16

impl Sub<&BigUint> for u32

impl Sub<&BigUint> for u64

impl Sub<&BigUint> for u8

impl Sub<&BigUint> for usize

impl Sub<&BigUint> for BigUint

impl Sub<i128> for &BigInt

impl Sub<i128> for BigInt

impl Sub<i16> for &BigInt

impl Sub<i16> for BigInt

impl Sub<i32> for &BigInt

impl Sub<i32> for BigInt

impl Sub<i64> for &BigInt

impl Sub<i64> for BigInt

impl Sub<i8> for &BigInt

impl Sub<i8> for BigInt

impl Sub<isize> for &BigInt

impl Sub<isize> for BigInt

impl Sub<u128> for &BigInt

impl Sub<u128> for &BigUint

impl Sub<u128> for BigInt

impl Sub<u128> for BigUint

impl Sub<u16> for &BigInt

impl Sub<u16> for &BigUint

impl Sub<u16> for BigInt

impl Sub<u16> for BigUint

impl Sub<u32> for &BigInt

impl Sub<u32> for &BigUint

impl Sub<u32> for BigInt

impl Sub<u32> for BigUint

impl Sub<u64> for &BigInt

impl Sub<u64> for &BigUint

impl Sub<u64> for BigInt

impl Sub<u64> for BigUint

impl Sub<u8> for &BigInt

impl Sub<u8> for &BigUint

impl Sub<u8> for BigInt

impl Sub<u8> for BigUint

impl Sub<usize> for &BigInt

impl Sub<usize> for &BigUint

impl Sub<usize> for BigInt

impl Sub<usize> for BigUint

impl Sub<BigInt> for &i128

impl Sub<BigInt> for &i16

impl Sub<BigInt> for &i32

impl Sub<BigInt> for &i64

impl Sub<BigInt> for &i8

impl Sub<BigInt> for &isize

impl Sub<BigInt> for &u128

impl Sub<BigInt> for &u16

impl Sub<BigInt> for &u32

impl Sub<BigInt> for &u64

impl Sub<BigInt> for &u8

impl Sub<BigInt> for &usize

impl Sub<BigInt> for &BigInt

impl Sub<BigInt> for i128

impl Sub<BigInt> for i16

impl Sub<BigInt> for i32

impl Sub<BigInt> for i64

impl Sub<BigInt> for i8

impl Sub<BigInt> for isize

impl Sub<BigInt> for u128

impl Sub<BigInt> for u16

impl Sub<BigInt> for u32

impl Sub<BigInt> for u64

impl Sub<BigInt> for u8

impl Sub<BigInt> for usize

impl Sub<BigUint> for &u128

impl Sub<BigUint> for &u16

impl Sub<BigUint> for &u32

impl Sub<BigUint> for &u64

impl Sub<BigUint> for &u8

impl Sub<BigUint> for &usize

impl Sub<BigUint> for &BigUint

impl Sub<BigUint> for u128

impl Sub<BigUint> for u16

impl Sub<BigUint> for u32

impl Sub<BigUint> for u64

impl Sub<BigUint> for u8

impl Sub<BigUint> for usize

impl<T: Float> Sub for NotNan<T>

impl<T: Float> Sub for OrderedFloat<T>

impl<T: Float> Sub<T> for NotNan<T>

impl Sub<u32> for Id

impl Sub<i32> for Reg

impl Sub<i32> for RegIndex

impl<'a, T> Sub<T> for &'a U128
where T: Into<U128>,

impl<'a, T> Sub<T> for &'a U256
where T: Into<U256>,

impl<'a, T> Sub<T> for &'a U512
where T: Into<U512>,

impl<T> Sub<T> for U128
where T: Into<U128>,

impl<T> Sub<T> for U256
where T: Into<U256>,

impl<T> Sub<T> for U512
where T: Into<U512>,

impl Sub for Instant

impl Sub<Duration> for Instant

impl Sub for CreateFlags

impl Sub for ReadFlags

impl Sub for WatchFlags

impl Sub for Access

impl Sub for AtFlags

impl Sub for IFlags

impl Sub for MemfdFlags

impl Sub for Mode

impl Sub for OFlags

impl Sub for RenameFlags

impl Sub for ResolveFlags

impl Sub for SealFlags

impl Sub for StatxFlags

impl Sub for XattrFlags

impl Sub for DupFlags

impl Sub for FdFlags

impl Sub for ControlModes

impl Sub for InputModes

impl Sub for LocalModes

impl Sub for OutputModes

impl Sub for Roles

impl Sub for PacketFlag

impl Sub for BigUint

impl Sub for FixedI128

impl Sub for FixedI64

impl Sub for FixedU128

impl Sub for FixedU64

impl Sub for PerU16

impl Sub for Perbill

impl Sub for Percent

impl Sub for Permill

impl Sub for Perquintill

impl Sub for Slot

impl Sub for Capabilities

impl<T: Sub<Output = T>, D: Get<T>> Sub for TypeWithDefault<T, D>

impl Sub for Weight

impl Sub for Phase

impl Sub for Date

impl Sub for Duration

impl Sub for Instant

impl Sub for Time

impl Sub<Duration> for Date

impl Sub<Duration> for Instant

impl Sub<Duration> for Time

impl Sub<Instant> for Instant

impl Sub<Duration> for Instant

impl Sub<Duration> for Date

impl Sub<Duration> for Instant

impl Sub<Duration> for Time

impl Sub<Instant> for Instant

impl Sub for Ready

impl Sub for Instant

impl Sub<Duration> for Instant

impl Sub for &JsValue

impl Sub for JsValue

impl Sub<&JsValue> for JsValue

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

impl Sub for ASN1Time

impl<O: ByteOrder> Sub for F32<O>

impl<O: ByteOrder> Sub for F64<O>

impl<O: ByteOrder> Sub for I128<O>

impl<O: ByteOrder> Sub for I16<O>

impl<O: ByteOrder> Sub for I32<O>

impl<O: ByteOrder> Sub for I64<O>

impl<O: ByteOrder> Sub for U128<O>

impl<O: ByteOrder> Sub for U16<O>

impl<O: ByteOrder> Sub for U32<O>

impl<O: ByteOrder> Sub for U64<O>