Trait cairo_vm::with_std::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 Relocatable

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 cairo_vm::with_std::num::Wrapping<i8>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<i16>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<i32>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<i64>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<i128>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<isize>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<u8>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<u16>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<u32>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<u64>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<u128>

1.0.0 · source§

impl Sub for cairo_vm::with_std::num::Wrapping<usize>

1.3.0 · source§

impl Sub for Duration

1.8.0 · source§

impl Sub for Instant

source§

impl Sub for Felt252

source§

impl Sub for Checked<Limb>

source§

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

source§

impl Sub for BigInt

source§

impl Sub for BigUint

source§

impl Sub for udouble

source§

impl Sub for Decimal

source§

impl Sub for FieldElement

source§

impl Sub for ATerm

source§

impl Sub for Z0

Z0 - Z0 = Z0

§

type Output = Z0

source§

impl Sub for UTerm

UTerm - UTerm = UTerm

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

source§

impl Sub<&i8> for &BigInt

1.0.0 · source§

impl Sub<&i8> for i8

§

type Output = <i8 as Sub>::Output

source§

impl Sub<&i8> for BigInt

1.0.0 · source§

impl Sub<&i16> for &i16

§

type Output = <i16 as Sub>::Output

source§

impl Sub<&i16> for &BigInt

1.0.0 · source§

impl Sub<&i16> for i16

§

type Output = <i16 as Sub>::Output

source§

impl Sub<&i16> for BigInt

1.0.0 · source§

impl Sub<&i32> for &i32

§

type Output = <i32 as Sub>::Output

source§

impl Sub<&i32> for &BigInt

1.0.0 · source§

impl Sub<&i32> for i32

§

type Output = <i32 as Sub>::Output

source§

impl Sub<&i32> for BigInt

1.0.0 · source§

impl Sub<&i64> for &i64

§

type Output = <i64 as Sub>::Output

source§

impl Sub<&i64> for &BigInt

1.0.0 · source§

impl Sub<&i64> for i64

§

type Output = <i64 as Sub>::Output

source§

impl Sub<&i64> for BigInt

1.0.0 · source§

impl Sub<&i128> for &i128

§

type Output = <i128 as Sub>::Output

source§

impl Sub<&i128> for &BigInt

1.0.0 · source§

impl Sub<&i128> for i128

§

type Output = <i128 as Sub>::Output

source§

impl Sub<&i128> for BigInt

1.0.0 · source§

impl Sub<&isize> for &isize

§

type Output = <isize as Sub>::Output

source§

impl Sub<&isize> for &BigInt

1.0.0 · source§

impl Sub<&isize> for isize

§

type Output = <isize as Sub>::Output

source§

impl Sub<&isize> for BigInt

1.0.0 · source§

impl Sub<&u8> for &u8

§

type Output = <u8 as Sub>::Output

source§

impl Sub<&u8> for &BigInt

source§

impl Sub<&u8> for &BigUint

1.0.0 · source§

impl Sub<&u8> for u8

§

type Output = <u8 as Sub>::Output

source§

impl Sub<&u8> for BigInt

source§

impl Sub<&u8> for BigUint

1.0.0 · source§

impl Sub<&u16> for &u16

§

type Output = <u16 as Sub>::Output

source§

impl Sub<&u16> for &BigInt

source§

impl Sub<&u16> for &BigUint

1.0.0 · source§

impl Sub<&u16> for u16

§

type Output = <u16 as Sub>::Output

source§

impl Sub<&u16> for BigInt

source§

impl Sub<&u16> for BigUint

1.0.0 · source§

impl Sub<&u32> for &u32

§

type Output = <u32 as Sub>::Output

source§

impl Sub<&u32> for &BigInt

source§

impl Sub<&u32> for &BigUint

1.0.0 · source§

impl Sub<&u32> for u32

§

type Output = <u32 as Sub>::Output

source§

impl Sub<&u32> for BigInt

source§

impl Sub<&u32> for BigUint

1.0.0 · source§

impl Sub<&u64> for &u64

§

type Output = <u64 as Sub>::Output

source§

impl Sub<&u64> for &BigInt

source§

impl Sub<&u64> for &BigUint

1.0.0 · source§

impl Sub<&u64> for u64

§

type Output = <u64 as Sub>::Output

source§

impl Sub<&u64> for BigInt

source§

impl Sub<&u64> for BigUint

1.0.0 · source§

impl Sub<&u128> for &u128

§

type Output = <u128 as Sub>::Output

source§

impl Sub<&u128> for &BigInt

source§

impl Sub<&u128> for &BigUint

1.0.0 · source§

impl Sub<&u128> for u128

§

type Output = <u128 as Sub>::Output

source§

impl Sub<&u128> for BigInt

source§

impl Sub<&u128> for BigUint

1.0.0 · 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.0.0 · 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<&ExecutionResources> for &ExecutionResources

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 &cairo_vm::with_std::num::Wrapping<i8>

§

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

1.14.0 · source§

impl Sub<&Wrapping<i8>> for cairo_vm::with_std::num::Wrapping<i8>

§

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

1.14.0 · source§

impl Sub<&Wrapping<i16>> for &cairo_vm::with_std::num::Wrapping<i16>

1.14.0 · source§

impl Sub<&Wrapping<i16>> for cairo_vm::with_std::num::Wrapping<i16>

1.14.0 · source§

impl Sub<&Wrapping<i32>> for &cairo_vm::with_std::num::Wrapping<i32>

1.14.0 · source§

impl Sub<&Wrapping<i32>> for cairo_vm::with_std::num::Wrapping<i32>

1.14.0 · source§

impl Sub<&Wrapping<i64>> for &cairo_vm::with_std::num::Wrapping<i64>

1.14.0 · source§

impl Sub<&Wrapping<i64>> for cairo_vm::with_std::num::Wrapping<i64>

1.14.0 · source§

impl Sub<&Wrapping<i128>> for &cairo_vm::with_std::num::Wrapping<i128>

1.14.0 · source§

impl Sub<&Wrapping<i128>> for cairo_vm::with_std::num::Wrapping<i128>

1.14.0 · source§

impl Sub<&Wrapping<isize>> for &cairo_vm::with_std::num::Wrapping<isize>

1.14.0 · source§

impl Sub<&Wrapping<isize>> for cairo_vm::with_std::num::Wrapping<isize>

1.14.0 · source§

impl Sub<&Wrapping<u8>> for &cairo_vm::with_std::num::Wrapping<u8>

§

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

1.14.0 · source§

impl Sub<&Wrapping<u8>> for cairo_vm::with_std::num::Wrapping<u8>

§

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

1.14.0 · source§

impl Sub<&Wrapping<u16>> for &cairo_vm::with_std::num::Wrapping<u16>

1.14.0 · source§

impl Sub<&Wrapping<u16>> for cairo_vm::with_std::num::Wrapping<u16>

1.14.0 · source§

impl Sub<&Wrapping<u32>> for &cairo_vm::with_std::num::Wrapping<u32>

1.14.0 · source§

impl Sub<&Wrapping<u32>> for cairo_vm::with_std::num::Wrapping<u32>

1.14.0 · source§

impl Sub<&Wrapping<u64>> for &cairo_vm::with_std::num::Wrapping<u64>

1.14.0 · source§

impl Sub<&Wrapping<u64>> for cairo_vm::with_std::num::Wrapping<u64>

1.14.0 · source§

impl Sub<&Wrapping<u128>> for &cairo_vm::with_std::num::Wrapping<u128>

1.14.0 · source§

impl Sub<&Wrapping<u128>> for cairo_vm::with_std::num::Wrapping<u128>

1.14.0 · source§

impl Sub<&Wrapping<usize>> for &cairo_vm::with_std::num::Wrapping<usize>

1.14.0 · source§

impl Sub<&Wrapping<usize>> for cairo_vm::with_std::num::Wrapping<usize>

source§

impl Sub<&Felt252> for usize

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>

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<&AffinePoint> for &AffinePoint

source§

impl Sub<&FeltBigInt<cairo_felt::::bigint_felt::{impl#27}::{constant#0}, cairo_felt::::bigint_felt::{impl#27}::{constant#1}>> for usize

§

type Output = FeltBigInt<cairo_felt::::bigint_felt::{impl#27}::Output::{constant#0}, cairo_felt::::bigint_felt::{impl#27}::Output::{constant#1}>

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 Felt252

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<u128> for udouble

source§

impl Sub<usize> for &BigInt

source§

impl Sub<usize> for &BigUint

source§

impl Sub<usize> for Relocatable

source§

impl Sub<usize> for Felt252

source§

impl Sub<usize> for BigInt

source§

impl Sub<usize> for BigUint

1.8.0 · source§

impl Sub<Duration> for Instant

1.8.0 · source§

impl Sub<Duration> for SystemTime

source§

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

source§

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

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 Sub<FeltBigInt<cairo_felt::::bigint_felt::{impl#26}::{constant#0}, cairo_felt::::bigint_felt::{impl#26}::{constant#1}>> for usize

§

type Output = FeltBigInt<cairo_felt::::bigint_felt::{impl#26}::Output::{constant#0}, cairo_felt::::bigint_felt::{impl#26}::Output::{constant#1}>

source§

impl<'a> Sub for &'a Felt252

source§

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

source§

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

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

source§

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

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 cairo_vm::with_std::num::Wrapping<i8>

§

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

1.14.0 · source§

impl<'a> Sub<Wrapping<i16>> for &'a cairo_vm::with_std::num::Wrapping<i16>

1.14.0 · source§

impl<'a> Sub<Wrapping<i32>> for &'a cairo_vm::with_std::num::Wrapping<i32>

1.14.0 · source§

impl<'a> Sub<Wrapping<i64>> for &'a cairo_vm::with_std::num::Wrapping<i64>

1.14.0 · source§

impl<'a> Sub<Wrapping<i128>> for &'a cairo_vm::with_std::num::Wrapping<i128>

1.14.0 · source§

impl<'a> Sub<Wrapping<isize>> for &'a cairo_vm::with_std::num::Wrapping<isize>

1.14.0 · source§

impl<'a> Sub<Wrapping<u8>> for &'a cairo_vm::with_std::num::Wrapping<u8>

§

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

1.14.0 · source§

impl<'a> Sub<Wrapping<u16>> for &'a cairo_vm::with_std::num::Wrapping<u16>

1.14.0 · source§

impl<'a> Sub<Wrapping<u32>> for &'a cairo_vm::with_std::num::Wrapping<u32>

1.14.0 · source§

impl<'a> Sub<Wrapping<u64>> for &'a cairo_vm::with_std::num::Wrapping<u64>

1.14.0 · source§

impl<'a> Sub<Wrapping<u128>> for &'a cairo_vm::with_std::num::Wrapping<u128>

1.14.0 · source§

impl<'a> Sub<Wrapping<usize>> for &'a cairo_vm::with_std::num::Wrapping<usize>

source§

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

source§

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

source§

impl<'a, 'b, P> Sub<&'a CubicExtField<P>> for &'b CubicExtField<P>
where P: CubicExtConfig,

source§

impl<'a, 'b, P> Sub<&'a QuadExtField<P>> for &'b QuadExtField<P>
where P: QuadExtConfig,

source§

impl<'a, 'b, P> Sub<&'a mut CubicExtField<P>> for &'b CubicExtField<P>
where P: CubicExtConfig,

source§

impl<'a, 'b, P> Sub<&'a mut QuadExtField<P>> for &'b QuadExtField<P>
where P: QuadExtConfig,

source§

impl<'a, 'b, P, const N: usize> Sub<&'b Fp<P, N>> for &'a Fp<P, N>
where P: FpConfig<N>,

§

type Output = Fp<P, N>

source§

impl<'a, 'b, T, R> Sub<&'b Mint<T, R>> for &'a Mint<T, R>
where T: Integer<Output = T> + Clone + for<'r> Sub<&'r T>, R: Reducer<T> + Clone,

§

type Output = Mint<T, R>

source§

impl<'a, P> Sub<&'a CubicExtField<P>> for CubicExtField<P>
where P: CubicExtConfig,

source§

impl<'a, P> Sub<&'a QuadExtField<P>> for QuadExtField<P>
where P: QuadExtConfig,

source§

impl<'a, P> Sub<&'a mut CubicExtField<P>> for CubicExtField<P>
where P: CubicExtConfig,

source§

impl<'a, P> Sub<&'a mut QuadExtField<P>> for QuadExtField<P>
where P: QuadExtConfig,

source§

impl<'a, P, const N: usize> Sub<&'a Fp<P, N>> for Fp<P, N>
where P: FpConfig<N>,

§

type Output = Fp<P, N>

source§

impl<'a, P, const N: usize> Sub<&'a mut Fp<P, N>> for Fp<P, N>
where P: FpConfig<N>,

§

type Output = Fp<P, N>

source§

impl<'b, P> Sub<CubicExtField<P>> for &'b CubicExtField<P>
where P: CubicExtConfig,

source§

impl<'b, P> Sub<QuadExtField<P>> for &'b QuadExtField<P>
where P: QuadExtConfig,

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<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>

source§

impl<P> Sub for CubicExtField<P>
where P: CubicExtConfig,

source§

impl<P> Sub for QuadExtField<P>
where P: QuadExtConfig,

source§

impl<P, const N: usize> Sub for Fp<P, N>
where P: FpConfig<N>,

§

type Output = Fp<P, N>

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>

source§

impl<T, R> Sub for ReducedInt<T, R>
where T: PartialEq, R: Reducer<T>,

§

type Output = ReducedInt<T, R>

source§

impl<T, R> Sub for Mint<T, R>
where T: Integer + Clone, R: Reducer<T> + Clone,

§

type Output = Mint<T, R>

source§

impl<T, R> Sub<&ReducedInt<T, R>> for &ReducedInt<T, R>
where T: PartialEq + Clone, R: Reducer<T> + Clone,

§

type Output = ReducedInt<T, R>

source§

impl<T, R> Sub<&ReducedInt<T, R>> for ReducedInt<T, R>
where T: PartialEq + Clone, R: Reducer<T>,

§

type Output = ReducedInt<T, R>

source§

impl<T, R> Sub<&Mint<T, R>> for Mint<T, R>
where T: Integer<Output = T> + Clone + for<'r> Sub<&'r T>, R: Reducer<T> + Clone,

§

type Output = Mint<T, R>

source§

impl<T, R> Sub<ReducedInt<T, R>> for &ReducedInt<T, R>
where T: PartialEq + Clone, R: Reducer<T>,

§

type Output = ReducedInt<T, R>

source§

impl<T, R> Sub<Mint<T, R>> for &Mint<T, R>
where T: Integer + Clone, R: Reducer<T> + Clone,

§

type Output = Mint<T, R>

source§

impl<T, R> Sub<T> for ReducedInt<T, R>
where T: PartialEq, R: Reducer<T>,

§

type Output = ReducedInt<T, R>

1.0.0 · source§

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

§

type Output = HashSet<T, S>

source§

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