Trait Sub

1.0.0 (const: unstable) · Source
pub trait Sub<Rhs = Self> {
    type Output;

    // Required method
    const 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

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

Performs the - operation.

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

Implementors§

1.0.0 (const: unstable) · Source§

impl Sub for f16

1.0.0 (const: unstable) · Source§

impl Sub for f32

1.0.0 (const: unstable) · Source§

impl Sub for f64

1.0.0 (const: unstable) · Source§

impl Sub for f128

1.0.0 (const: unstable) · Source§

impl Sub for i8

1.0.0 (const: unstable) · Source§

impl Sub for i16

1.0.0 (const: unstable) · Source§

impl Sub for i32

1.0.0 (const: unstable) · Source§

impl Sub for i64

1.0.0 (const: unstable) · Source§

impl Sub for i128

1.0.0 (const: unstable) · Source§

impl Sub for isize

1.0.0 (const: unstable) · Source§

impl Sub for u8

1.0.0 (const: unstable) · Source§

impl Sub for u16

1.0.0 (const: unstable) · Source§

impl Sub for u32

1.0.0 (const: unstable) · Source§

impl Sub for u64

1.0.0 (const: unstable) · Source§

impl Sub for u128

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

1.0.0 · Source§

impl Sub for Wrapping<i8>

1.0.0 · Source§

impl Sub for Wrapping<i16>

1.0.0 · Source§

impl Sub for Wrapping<i32>

1.0.0 · Source§

impl Sub for Wrapping<i64>

1.0.0 · Source§

impl Sub for Wrapping<i128>

1.0.0 · Source§

impl Sub for Wrapping<isize>

1.0.0 · Source§

impl Sub for Wrapping<u8>

1.0.0 · Source§

impl Sub for Wrapping<u16>

1.0.0 · Source§

impl Sub for Wrapping<u32>

1.0.0 · Source§

impl Sub for Wrapping<u64>

1.0.0 · Source§

impl Sub for Wrapping<u128>

1.0.0 · Source§

impl Sub for Wrapping<usize>

1.3.0 · Source§

impl Sub for 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 Fe32

Source§

impl Sub for EdwardsPoint

Source§

impl Sub for RistrettoPoint

Source§

impl Sub for Scalar

Source§

impl Sub for Date

Computes the span of time between two dates.

This will return a negative span when the date being subtracted is greater.

Since this uses the default configuration for calculating a span between two date (no rounding and largest units is days), this will never panic or fail in any way.

To configure the largest unit or enable rounding, use Date::since.

Source§

impl Sub for DateTime

Computes the span of time between two datetimes.

This will return a negative span when the datetime being subtracted is greater.

Since this uses the default configuration for calculating a span between two datetimes (no rounding and largest units is days), this will never panic or fail in any way. It is guaranteed that the largest non-zero unit in the Span returned will be days.

To configure the largest unit or enable rounding, use DateTime::since.

If you need a SignedDuration representing the span between two civil datetimes, then use DateTime::duration_since.

Source§

impl Sub for Time

Computes the span of time between two times.

This will return a negative span when the time being subtracted is greater.

Since this uses the default configuration for calculating a span between two times (no rounding and largest units is hours), this will never panic or fail in any way.

To configure the largest unit or enable rounding, use Time::since.

Source§

impl Sub for SignedDuration

Source§

impl Sub for Timestamp

Computes the span of time between two timestamps.

This will return a negative span when the timestamp being subtracted is greater.

Since this uses the default configuration for calculating a span between two timestamps (no rounding and largest units is seconds), this will never panic or fail in any way.

To configure the largest unit or enable rounding, use Timestamp::since.

Source§

impl Sub for Offset

Computes the span of time between two offsets.

This will return a negative span when the offset being subtracted is greater (i.e., more east with respect to the prime meridian).

Source§

impl Sub for StaticVarApiFlags

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 Ready

Source§

impl Sub for tokio::time::instant::Instant

Source§

impl Sub for WasmFeatures

Source§

impl Sub for SegmentFlags

Source§

impl Sub for SymbolFlags

Source§

impl Sub for CodeMetadata

Source§

impl Sub for EsdtLocalRoleFlags

Source§

impl Sub for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub for multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub for ATerm

Source§

impl Sub for UTerm

UTerm - UTerm = UTerm

Source§

impl Sub for Z0

Z0 - Z0 = Z0

1.0.0 · Source§

impl Sub<&f16> for &f16

1.0.0 · Source§

impl Sub<&f16> for f16

1.0.0 · Source§

impl Sub<&f32> for &f32

1.0.0 · Source§

impl Sub<&f32> for f32

1.0.0 · Source§

impl Sub<&f64> for &f64

1.0.0 · Source§

impl Sub<&f64> for f64

1.0.0 · Source§

impl Sub<&f128> for &f128

1.0.0 · Source§

impl Sub<&f128> for f128

1.0.0 · Source§

impl Sub<&i8> for &i8

Source§

impl Sub<&i8> for &multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i8> for i8

Source§

impl Sub<&i8> for multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i16> for &i16

Source§

impl Sub<&i16> for &multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i16> for i16

Source§

impl Sub<&i16> for multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i32> for &i32

Source§

impl Sub<&i32> for &multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i32> for i32

Source§

impl Sub<&i32> for multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i64> for &i64

Source§

impl Sub<&i64> for &multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i64> for i64

Source§

impl Sub<&i64> for multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i128> for &i128

Source§

impl Sub<&i128> for &multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&i128> for i128

Source§

impl Sub<&i128> for multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&isize> for &isize

Source§

impl Sub<&isize> for &multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&isize> for isize

Source§

impl Sub<&isize> for multiversx_sc_snippets::imports::RustBigInt

1.0.0 · Source§

impl Sub<&u8> for &u8

Source§

impl Sub<&u8> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u8> for &multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u8> for u8

Source§

impl Sub<&u8> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u8> for multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u16> for &u16

Source§

impl Sub<&u16> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u16> for &multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u16> for u16

Source§

impl Sub<&u16> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u16> for multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u32> for &u32

Source§

impl Sub<&u32> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u32> for &multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u32> for u32

Source§

impl Sub<&u32> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u32> for multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u64> for &u64

Source§

impl Sub<&u64> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u64> for &multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u64> for u64

Source§

impl Sub<&u64> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u64> for multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u128> for &u128

Source§

impl Sub<&u128> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u128> for &multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&u128> for u128

Source§

impl Sub<&u128> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&u128> for multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&usize> for &usize

Source§

impl Sub<&usize> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&usize> for &multiversx_sc_snippets::imports::RustBigUint

1.0.0 · Source§

impl Sub<&usize> for usize

Source§

impl Sub<&usize> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<&usize> for multiversx_sc_snippets::imports::RustBigUint

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>

1.14.0 · Source§

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

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>

1.14.0 · Source§

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

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

Source§

impl Sub<&Fe32> for Fe32

Source§

impl Sub<&BigNumRef> for &BigNumRef

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 &multiversx_sc_snippets::imports::RustBigInt

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 multiversx_sc_snippets::imports::RustBigInt

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 &multiversx_sc_snippets::imports::RustBigUint

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 multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<i8> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i8> for Weekday

Source§

impl Sub<i8> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i16> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i16> for Weekday

Source§

impl Sub<i16> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i32> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i32> for Weekday

Source§

impl Sub<i32> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i64> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i64> for Weekday

Source§

impl Sub<i64> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i128> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<i128> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<isize> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<isize> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u8> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u8> for &multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u8> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u8> for multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u16> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u16> for &multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u16> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u16> for multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u32> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u32> for &multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u32> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u32> for multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u64> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u64> for &multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u64> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u64> for multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u128> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u128> for &multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<u128> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<u128> for multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<usize> for &multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<usize> for &multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<usize> for multiversx_sc_snippets::imports::RustBigInt

Source§

impl Sub<usize> for multiversx_sc_snippets::imports::RustBigUint

1.8.0 · Source§

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

1.8.0 · Source§

impl Sub<Duration> for SystemTime

Source§

impl Sub<Duration> for Date

Subtracts an unsigned duration of time from a date.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use Date::checked_sub.

Source§

impl Sub<Duration> for DateTime

Subtracts an unsigned duration of time from a datetime.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use DateTime::checked_sub.

Source§

impl Sub<Duration> for Time

Subtracts an unsigned duration of time. This uses wrapping arithmetic.

For checked arithmetic, see Time::checked_sub.

Source§

impl Sub<Duration> for Timestamp

Subtracts an unsigned duration of time from a timestamp.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use Timestamp::checked_sub.

Source§

impl Sub<Duration> for Offset

Subtracts an unsigned duration of time from an offset. This panics on overflow.

For checked arithmetic, see Offset::checked_sub.

Source§

impl Sub<Duration> for tokio::time::instant::Instant

Source§

impl Sub<Effects> for Style

§Examples

let style = anstyle::Style::new().bold().underline() - anstyle::Effects::BOLD.into();
Source§

impl Sub<Fe32> for &Fe32

Source§

impl Sub<SignedDuration> for Date

Subtracts a signed duration of time from a date.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use Date::checked_sub.

Source§

impl Sub<SignedDuration> for DateTime

Subtracts a signed duration of time from a datetime.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use DateTime::checked_sub.

Source§

impl Sub<SignedDuration> for Time

Subtracts a signed duration of time. This uses wrapping arithmetic.

For checked arithmetic, see Time::checked_sub.

Source§

impl Sub<SignedDuration> for Timestamp

Subtracts a signed duration of time from a timestamp.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use Timestamp::checked_sub.

Source§

impl Sub<SignedDuration> for Offset

Subtracts a signed duration of time from an offset. This panics on overflow.

For checked arithmetic, see Offset::checked_sub.

Source§

impl Sub<Span> for Date

Subtracts a span of time from a date.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use Date::checked_sub.

Source§

impl Sub<Span> for DateTime

Subtracts a span of time from a datetime.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use DateTime::checked_sub.

Source§

impl Sub<Span> for Time

Subtracts a span of time. This uses wrapping arithmetic.

For checked arithmetic, see Time::checked_sub.

Source§

impl Sub<Span> for Timestamp

Subtracts a span of time from a timestamp.

This uses checked arithmetic and panics when it fails. To handle arithmetic without panics, use Timestamp::checked_sub. Note that the failure condition includes overflow and using a Span with non-zero units greater than hours.

Source§

impl Sub<Span> for Offset

Subtracts a span of time from an offset. This panics on overflow.

For checked arithmetic, see Offset::checked_sub.

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 &multiversx_sc_snippets::imports::RustBigInt

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 &multiversx_sc_snippets::imports::RustBigUint

Source§

impl Sub<BigUint> for u8

Source§

impl Sub<BigUint> for u16

Source§

impl Sub<BigUint> for u32

Source§

impl Sub<BigUint> for u64

Source§

impl Sub<BigUint> for u128

Source§

impl Sub<BigUint> for usize

Source§

impl Sub<B0> for UTerm

UTerm - B0 = Term

Source§

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

UInt<UTerm, B1> - B1 = UTerm

Source§

impl<'a> Sub for &'a Zoned

Computes the span of time between two zoned datetimes.

This will return a negative span when the zoned datetime being subtracted is greater.

Since this uses the default configuration for calculating a span between two zoned datetimes (no rounding and largest units is hours), this will never panic or fail in any way. It is guaranteed that the largest non-zero unit in the Span returned will be hours.

To configure the largest unit or enable rounding, use Zoned::since.

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

1.0.0 · Source§

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

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>

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>

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

Source§

impl<'a> Sub<Duration> for &'a Zoned

Subtracts an unsigned duration of time from a zoned datetime.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use Zoned::checked_sub.

Source§

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

Source§

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

Source§

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

Source§

impl<'a> Sub<SignedDuration> for &'a Zoned

Subtracts a signed duration of time from a zoned datetime.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use Zoned::checked_sub.

Source§

impl<'a> Sub<Span> for &'a Zoned

Subtracts a span of time from a zoned datetime.

This uses checked arithmetic and panics on overflow. To handle overflow without panics, use Zoned::checked_sub.

Source§

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

Source§

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

Source§

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

Source§

impl<'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 AffineNielsPoint> for &'a EdwardsPoint

Source§

type Output = CompletedPoint

Source§

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

Source§

type Output = CompletedPoint

Source§

impl<'a, 'b, M> Sub<&'b BigFloat<M>> for &'a BigFloat<M>
where M: ManagedTypeApi,

Source§

impl<'a, 'b, M> Sub<&'b BigInt<M>> for &'a multiversx_sc_snippets::imports::BigInt<M>
where M: ManagedTypeApi,

Source§

impl<'a, 'b, M> Sub<&'b BigInt<M>> for &'a multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<'a, 'b, M> Sub<&'b BigUint<M>> for &'a multiversx_sc_snippets::imports::BigInt<M>
where M: ManagedTypeApi,

Source§

impl<'a, 'b, M> Sub<&'b BigUint<M>> for &'a multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<'a, M> Sub<u32> for &'a multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<'a, M> Sub<u64> for &'a multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<'a, T> Sub for &'a Set<T>
where T: Eq + Hash + Ord + Clone + 'a,

Source§

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

Source§

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

Source§

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

Source§

impl<'b, M> Sub<&'b BigUint<M>> for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

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,

Source§

type Output = Simd<T, N>

Source§

impl<DEC1, DEC2> Sub<ConstDecimals<DEC2>> for ConstDecimals<DEC1>
where DEC1: Unsigned + Sub<DEC2>, DEC2: Unsigned, <DEC1 as Sub<DEC2>>::Output: Unsigned,

Source§

type Output = ConstDecimals<<DEC1 as Sub<DEC2>>::Output>

Source§

impl<DECIMALS, M> Sub<ManagedDecimal<M, usize>> for ManagedDecimal<M, ConstDecimals<DECIMALS>>
where DECIMALS: Unsigned, M: ManagedTypeApi,

Source§

impl<DECIMALS, M> Sub<ManagedDecimal<M, ConstDecimals<DECIMALS>>> for ManagedDecimal<M, usize>
where DECIMALS: Unsigned, M: ManagedTypeApi,

Source§

impl<DECIMALS, M> Sub<ManagedDecimalSigned<M, usize>> for ManagedDecimalSigned<M, ConstDecimals<DECIMALS>>
where DECIMALS: Unsigned, M: ManagedTypeApi,

Source§

impl<DECIMALS, M> Sub<ManagedDecimalSigned<M, ConstDecimals<DECIMALS>>> for ManagedDecimalSigned<M, usize>
where DECIMALS: Unsigned, M: ManagedTypeApi,

Source§

impl<M> Sub for BigFloat<M>
where M: ManagedTypeApi,

Source§

impl<M> Sub for multiversx_sc_snippets::imports::BigInt<M>
where M: ManagedTypeApi,

Source§

impl<M> Sub for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<M> Sub for ManagedDecimal<M, usize>
where M: ManagedTypeApi,

Source§

impl<M> Sub for ManagedDecimalSigned<M, usize>
where M: ManagedTypeApi,

Source§

impl<M> Sub<u32> for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<M> Sub<u64> for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<M> Sub<BigInt<M>> for multiversx_sc_snippets::imports::BigUint<M>
where M: ManagedTypeApi,

Source§

impl<M> Sub<BigUint<M>> for multiversx_sc_snippets::imports::BigInt<M>
where M: ManagedTypeApi,

Source§

impl<M, DECIMALS> Sub for ManagedDecimal<M, ConstDecimals<DECIMALS>>
where M: ManagedTypeApi, DECIMALS: Unsigned,

Source§

impl<M, DECIMALS> Sub for ManagedDecimalSigned<M, ConstDecimals<DECIMALS>>
where M: ManagedTypeApi, DECIMALS: Unsigned,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<O> Sub for Isize<O>
where O: ByteOrder,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<O> Sub for Usize<O>
where O: ByteOrder,

Source§

impl<O> Sub<f32> for F32<O>
where O: ByteOrder,

Source§

impl<O> Sub<f64> for F64<O>
where O: ByteOrder,

Source§

impl<O> Sub<i16> for I16<O>
where O: ByteOrder,

Source§

impl<O> Sub<i32> for I32<O>
where O: ByteOrder,

Source§

impl<O> Sub<i64> for I64<O>
where O: ByteOrder,

Source§

impl<O> Sub<i128> for I128<O>
where O: ByteOrder,

Source§

impl<O> Sub<isize> for Isize<O>
where O: ByteOrder,

Source§

impl<O> Sub<u16> for U16<O>
where O: ByteOrder,

Source§

impl<O> Sub<u32> for U32<O>
where O: ByteOrder,

Source§

impl<O> Sub<u64> for U64<O>
where O: ByteOrder,

Source§

impl<O> Sub<u128> for U128<O>
where O: ByteOrder,

Source§

impl<O> Sub<usize> for Usize<O>
where O: ByteOrder,

Source§

impl<O> Sub<F32<O>> for f32
where O: ByteOrder,

Source§

impl<O> Sub<F64<O>> for f64
where O: ByteOrder,

Source§

impl<O> Sub<I16<O>> for i16
where O: ByteOrder,

Source§

impl<O> Sub<I32<O>> for i32
where O: ByteOrder,

Source§

impl<O> Sub<I64<O>> for i64
where O: ByteOrder,

Source§

impl<O> Sub<I128<O>> for i128
where O: ByteOrder,

Source§

impl<O> Sub<Isize<O>> for isize
where O: ByteOrder,

Source§

impl<O> Sub<U16<O>> for u16
where O: ByteOrder,

Source§

impl<O> Sub<U32<O>> for u32
where O: ByteOrder,

Source§

impl<O> Sub<U64<O>> for u64
where O: ByteOrder,

Source§

impl<O> Sub<U128<O>> for u128
where O: ByteOrder,

Source§

impl<O> Sub<Usize<O>> for usize
where O: ByteOrder,

1.0.0 · Source§

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

Source§

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

Source§

type Output = IndexSet<T, S1>

1.0.0 · Source§

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

Source§

type Output = HashSet<T, S>

Source§

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

Source§

type Output = HashSet<T, S, A>

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,

Source§

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,

Source§

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>

Source§

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

Source§

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

Z0 - N = P

Source§

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

Z0 - P = N

Source§

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

NInt - Z0 = NInt

Source§

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

PInt - Z0 = PInt

Source§

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

UInt - B0 = UInt

Source§

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>

Source§

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.

Source§

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

Source§

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)

Source§

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)

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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