Trait snarkvm_debug::prelude::string::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§

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 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 core::time::Duration

1.8.0 · source§

impl Sub for std::time::Instant

source§

impl Sub for Effects

Examples

let effects = (anstyle::Effects::BOLD | anstyle::Effects::UNDERLINE) - anstyle::Effects::BOLD;
assert_eq!(format!("{:?}", effects), "Effects(UNDERLINE)");
source§

impl Sub for BigInt

source§

impl Sub for BigUint

source§

impl Sub for CipherCtxFlags

source§

impl Sub for CMSOptions

source§

impl Sub for OcspFlag

source§

impl Sub for Pkcs7Flags

source§

impl Sub for ExtensionContext

source§

impl Sub for ShutdownState

source§

impl Sub for SslMode

source§

impl Sub for SslOptions

source§

impl Sub for SslSessionCacheMode

source§

impl Sub for SslVerifyMode

source§

impl Sub for X509CheckFlags

source§

impl Sub for X509VerifyFlags

source§

impl Sub for ATerm

source§

impl Sub for Z0

Z0 - Z0 = Z0

§

type Output = Z0

source§

impl Sub for UTerm

UTerm - UTerm = UTerm

§

impl Sub for Access

§

type Output = Access

§

impl Sub for AtFlags

§

type Output = AtFlags

§

impl Sub for ControlModes

§

type Output = ControlModes

§

impl Sub for CreateFlags

§

type Output = CreateFlags

§

impl Sub for Date

§

type Output = Duration

§

impl Sub for DupFlags

§

type Output = DupFlags

§

impl Sub for Duration

§

type Output = Duration

§

impl Sub for FallocateFlags

§

type Output = FallocateFlags

§

impl Sub for FdFlags

§

type Output = FdFlags

§

impl Sub for InputModes

§

type Output = InputModes

§

impl Sub for Instant

§

impl Sub for Instant

§

type Output = Duration

§

impl Sub for LocalModes

§

type Output = LocalModes

§

impl Sub for MemfdFlags

§

type Output = MemfdFlags

§

impl Sub for Mode

§

type Output = Mode

§

impl Sub for MountFlags

§

type Output = MountFlags

§

impl Sub for MountPropagationFlags

§

type Output = MountPropagationFlags

§

impl Sub for OFlags

§

type Output = OFlags

§

impl Sub for OffsetDateTime

§

type Output = Duration

§

impl Sub for OutputModes

§

type Output = OutputModes

§

impl Sub for PrimitiveDateTime

§

type Output = Duration

§

impl Sub for ReadWriteFlags

§

type Output = ReadWriteFlags

§

impl Sub for Ready

§

type Output = Ready

§

impl Sub for RenameFlags

§

type Output = RenameFlags

§

impl Sub for ResolveFlags

§

type Output = ResolveFlags

§

impl Sub for SealFlags

§

type Output = SealFlags

§

impl Sub for StatVfsMountFlags

§

type Output = StatVfsMountFlags

§

impl Sub for StatxFlags

§

type Output = StatxFlags

§

impl Sub for Time

§

type Output = Duration

§

impl Sub for UnmountFlags

§

type Output = UnmountFlags

§

impl Sub for WatchFlags

§

type Output = WatchFlags

§

impl Sub for XattrFlags

§

type Output = XattrFlags

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

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 BigInt

source§

impl Sub<i16> for &BigInt

source§

impl Sub<i16> for BigInt

source§

impl Sub<i32> for &BigInt

source§

impl Sub<i32> for BigInt

source§

impl Sub<i64> for &BigInt

source§

impl Sub<i64> for BigInt

source§

impl Sub<i128> for &BigInt

source§

impl Sub<i128> for BigInt

source§

impl Sub<isize> for &BigInt

source§

impl Sub<isize> for BigInt

source§

impl Sub<u8> for &BigInt

source§

impl Sub<u8> for &BigUint

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 BigInt

source§

impl Sub<u16> for BigUint

source§

impl Sub<u32> for &BigInt

source§

impl Sub<u32> for &BigUint

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 BigInt

source§

impl Sub<u64> for BigUint

source§

impl Sub<u128> for &BigInt

source§

impl Sub<u128> for &BigUint

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 BigInt

source§

impl Sub<usize> for BigUint

1.8.0 · source§

impl Sub<Duration> for std::time::Instant

1.8.0 · source§

impl Sub<Duration> for SystemTime

§

impl Sub<Duration> for Date

§

type Output = Date

§

impl Sub<Duration> for Duration

§

type Output = Duration

§

impl Sub<Duration> for Instant

§

type Output = Instant

§

impl Sub<Duration> for Instant

§

type Output = Instant

§

impl Sub<Duration> for OffsetDateTime

§

type Output = OffsetDateTime

§

impl Sub<Duration> for PrimitiveDateTime

§

type Output = PrimitiveDateTime

§

impl Sub<Duration> for Time

§

type Output = Time

§

impl Sub<Instant> for Instant

§

type Output = Duration

§

impl Sub<SystemTime> for OffsetDateTime

§

type Output = Duration

source§

impl Sub<Effects> for Style

Examples

let style = anstyle::Style::new().bold().underline() - anstyle::Effects::BOLD.into();
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

§

impl Sub<DateTime<Fixed>> for SystemTime

§

type Output = Duration

§

impl Sub<Duration> for core::time::Duration

§

type Output = Duration

§

impl Sub<Duration> for std::time::Instant

§

impl Sub<Duration> for SystemTime

§

impl Sub<Duration> for Date

§

type Output = Date

§

impl Sub<Duration> for Instant

§

type Output = Instant

§

impl Sub<Duration> for OffsetDateTime

§

type Output = OffsetDateTime

§

impl Sub<Duration> for PrimitiveDateTime

§

type Output = PrimitiveDateTime

§

impl Sub<Duration> for Time

§

type Output = Time

§

impl Sub<Instant> for std::time::Instant

§

type Output = Duration

§

impl Sub<OffsetDateTime> for SystemTime

§

type Output = Duration

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

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, 'b> Sub<&'b BigNum> for &'a BigNum

source§

impl<'a, 'b> Sub<&'b BigNum> for &'a BigNumRef

source§

impl<'a, 'b> Sub<&'b BigNumRef> for &'a BigNum

source§

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

§

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

§

type Output = DensePolynomial<F>

§

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

§

type Output = Evaluations<F>

§

impl<'a, F> Sub<&'a ConstraintVariable<F>> for ConstraintVariable<F>
where F: Field,

§

type Output = ConstraintVariable<F>

§

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

§

type Output = LinearCombination<F>

§

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

§

type Output = DensePolynomial<F>

§

impl<'a, F> Sub<(F, &'a ConstraintVariable<F>)> for ConstraintVariable<F>
where F: Field,

§

type Output = ConstraintVariable<F>

§

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

§

type Output = LinearCombination<F>

§

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

§

type Output = Fp2<P>

§

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

§

type Output = Fp6<P>

§

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

§

type Output = Fp12<P>

§

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

§

type Output = Fp256<P>

§

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

§

type Output = Fp384<P>

§

impl<'a, P> Sub<&'a Projective<P>> for Projective<P>

§

type Output = Projective<P>

§

impl<'a, P> Sub<&'a Projective<P>> for Projective<P>
where P: ShortWeierstrassParameters,

§

type Output = Projective<P>

§

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

§

type Output = Fp2<P>

§

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

§

type Output = Fp6<P>

§

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

§

type Output = Fp12<P>

§

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

§

type Output = Fp256<P>

§

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

§

type Output = Fp384<P>

§

impl<'a, P> Sub<&'a mut Projective<P>> for Projective<P>

§

type Output = Projective<P>

§

impl<'a, P> Sub<&'a mut Projective<P>> for Projective<P>
where P: ShortWeierstrassParameters,

§

type Output = Projective<P>

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>

§

impl<E> Sub for snarkvm_debug::prelude::group::Group<E>
where E: Environment,

§

type Output = Group<E>

§

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

§

type Output = Scalar<E>

§

impl<E> Sub for snarkvm_debug::prelude::string::Field<E>
where E: Environment,

§

type Output = Field<E>

§

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

§

type Output = Field<E>

§

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

§

type Output = Group<E>

§

impl<E> Sub<&Group<E>> for snarkvm_debug::prelude::group::Group<E>
where E: Environment,

§

type Output = Group<E>

§

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

§

type Output = Scalar<E>

§

impl<E> Sub<&Field<E>> for snarkvm_debug::prelude::string::Field<E>
where E: Environment,

§

type Output = Field<E>

§

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

§

type Output = Field<E>

§

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

§

type Output = Field<E>

§

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

§

type Output = Group<E>

§

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

§

type Output = Group<E>

§

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

§

type Output = Field<E>

§

impl<E, I> Sub for snarkvm_debug::prelude::string::Integer<E, I>
where E: Environment, I: IntegerType,

§

type Output = Integer<E, I>

§

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

§

type Output = Integer<E, I>

§

impl<E, I> Sub<&Integer<E, I>> for snarkvm_debug::prelude::string::Integer<E, I>
where E: Environment, I: IntegerType,

§

type Output = Integer<E, I>

§

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

§

type Output = Integer<E, I>

§

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

§

type Output = Integer<E, I>

§

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

§

type Output = Integer<E, I>

§

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

§

type Output = LinearCombination<F>

§

impl<F> Sub for LinearCombination<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub for Variable<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<&ConstraintVariable<F>> for &ConstraintVariable<F>
where F: Field,

§

type Output = ConstraintVariable<F>

§

impl<F> Sub<&LinearCombination<F>> for &LinearCombination<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<&LinearCombination<F>> for &LinearCombination<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<&LinearCombination<F>> for &Variable<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<&LinearCombination<F>> for LinearCombination<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<&LinearCombination<F>> for Variable<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<&Variable<F>> for &Variable<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<&Variable<F>> for LinearCombination<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<&Variable<F>> for Variable<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<(F, &LinearCombination<F>)> for &LinearCombination<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<(F, LinearCombination<F>)> for &LinearCombination<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<(F, LinearCombination<F>)> for LinearCombination<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<(F, Variable)> for ConstraintVariable<F>
where F: Field,

§

type Output = ConstraintVariable<F>

§

impl<F> Sub<(F, Variable)> for LinearCombination<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<LinearCombination<F>> for &ConstraintVariable<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<LinearCombination<F>> for &LinearCombination<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<LinearCombination<F>> for &LinearCombination<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<LinearCombination<F>> for &Variable<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<LinearCombination<F>> for ConstraintVariable<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<LinearCombination<F>> for Variable<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<Variable> for ConstraintVariable<F>
where F: Field,

§

type Output = ConstraintVariable<F>

§

impl<F> Sub<Variable> for LinearCombination<F>
where F: Field,

§

type Output = LinearCombination<F>

§

impl<F> Sub<Variable<F>> for &LinearCombination<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<Variable<F>> for &Variable<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

impl<F> Sub<Variable<F>> for LinearCombination<F>
where F: PrimeField,

§

type Output = LinearCombination<F>

§

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

§

type Output = Fp2<P>

§

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

§

type Output = Fp6<P>

§

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

§

type Output = Fp12<P>

§

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

§

type Output = Fp256<P>

§

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

§

type Output = Fp384<P>

§

impl<P> Sub for Projective<P>

§

type Output = Projective<P>

§

impl<P> Sub for Projective<P>
where P: ShortWeierstrassParameters,

§

type Output = Projective<P>

§

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

§

type Output = Fp2<P>

§

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

§

type Output = Fp6<P>

§

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

§

type Output = Fp12<P>

§

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

§

type Output = Fp256<P>

§

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

§

type Output = Fp384<P>

§

impl<P> Sub<&&Projective<P>> for Projective<P>

§

type Output = Projective<P>

§

impl<P> Sub<&&Projective<P>> for Projective<P>
where P: ShortWeierstrassParameters,

§

type Output = Projective<P>

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 &indexmap::set::IndexSet<T, S1>
where T: Eq + Hash + Clone, S1: BuildHasher + Default, S2: BuildHasher,

§

type Output = IndexSet<T, S1>

source§

impl<T, S1, S2> Sub<&IndexSet<T, S2>> for &indexmap::set::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 &std::collections::hash::set::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>

§

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>