Trait Sub

1.6.0 (const: unstable) ยท 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ยง

Sourceยง

impl Sub for &JsValue

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

1.8.0 ยท Sourceยง

impl Sub for std::time::Instant

Sourceยง

impl Sub for NaiveDate

Subtracts another NaiveDate from the current date. Returns a TimeDelta of integral numbers.

This does not overflow or underflow at all, as all possible output fits in the range of TimeDelta.

The implementation is a wrapper around NaiveDate::signed_duration_since.

ยงExample

use chrono::{NaiveDate, TimeDelta};

let from_ymd = |y, m, d| NaiveDate::from_ymd_opt(y, m, d).unwrap();

assert_eq!(from_ymd(2014, 1, 1) - from_ymd(2014, 1, 1), TimeDelta::zero());
assert_eq!(from_ymd(2014, 1, 1) - from_ymd(2013, 12, 31), TimeDelta::try_days(1).unwrap());
assert_eq!(from_ymd(2014, 1, 1) - from_ymd(2014, 1, 2), TimeDelta::try_days(-1).unwrap());
assert_eq!(from_ymd(2014, 1, 1) - from_ymd(2013, 9, 23), TimeDelta::try_days(100).unwrap());
assert_eq!(from_ymd(2014, 1, 1) - from_ymd(2013, 1, 1), TimeDelta::try_days(365).unwrap());
assert_eq!(
    from_ymd(2014, 1, 1) - from_ymd(2010, 1, 1),
    TimeDelta::try_days(365 * 4 + 1).unwrap()
);
assert_eq!(
    from_ymd(2014, 1, 1) - from_ymd(1614, 1, 1),
    TimeDelta::try_days(365 * 400 + 97).unwrap()
);
Sourceยง

impl Sub for NaiveDateTime

Subtracts another NaiveDateTime from the current date and time. This does not overflow or underflow at all.

As a part of Chronoโ€™s leap second handling, the subtraction assumes that there is no leap second ever, except when any of the NaiveDateTimes themselves represents a leap second in which case the assumption becomes that there are exactly one (or two) leap second(s) ever.

The implementation is a wrapper around NaiveDateTime::signed_duration_since.

ยงExample

use chrono::{NaiveDate, TimeDelta};

let from_ymd = |y, m, d| NaiveDate::from_ymd_opt(y, m, d).unwrap();

let d = from_ymd(2016, 7, 8);
assert_eq!(
    d.and_hms_opt(3, 5, 7).unwrap() - d.and_hms_opt(2, 4, 6).unwrap(),
    TimeDelta::try_seconds(3600 + 60 + 1).unwrap()
);

// July 8 is 190th day in the year 2016
let d0 = from_ymd(2016, 1, 1);
assert_eq!(
    d.and_hms_milli_opt(0, 7, 6, 500).unwrap() - d0.and_hms_opt(0, 0, 0).unwrap(),
    TimeDelta::try_seconds(189 * 86_400 + 7 * 60 + 6).unwrap()
        + TimeDelta::try_milliseconds(500).unwrap()
);

Leap seconds are handled, but the subtraction assumes that no other leap seconds happened.

let leap = from_ymd(2015, 6, 30).and_hms_milli_opt(23, 59, 59, 1_500).unwrap();
assert_eq!(
    leap - from_ymd(2015, 6, 30).and_hms_opt(23, 0, 0).unwrap(),
    TimeDelta::try_seconds(3600).unwrap() + TimeDelta::try_milliseconds(500).unwrap()
);
assert_eq!(
    from_ymd(2015, 7, 1).and_hms_opt(1, 0, 0).unwrap() - leap,
    TimeDelta::try_seconds(3600).unwrap() - TimeDelta::try_milliseconds(500).unwrap()
);
Sourceยง

impl Sub for NaiveTime

Subtracts another NaiveTime from the current time. Returns a TimeDelta within +/- 1 day. This does not overflow or underflow at all.

As a part of Chronoโ€™s leap second handling, the subtraction assumes that there is no leap second ever, except when any of the NaiveTimes themselves represents a leap second in which case the assumption becomes that there are exactly one (or two) leap second(s) ever.

The implementation is a wrapper around NaiveTime::signed_duration_since.

ยงExample

use chrono::{NaiveTime, TimeDelta};

let from_hmsm = |h, m, s, milli| NaiveTime::from_hms_milli_opt(h, m, s, milli).unwrap();

assert_eq!(from_hmsm(3, 5, 7, 900) - from_hmsm(3, 5, 7, 900), TimeDelta::zero());
assert_eq!(
    from_hmsm(3, 5, 7, 900) - from_hmsm(3, 5, 7, 875),
    TimeDelta::try_milliseconds(25).unwrap()
);
assert_eq!(
    from_hmsm(3, 5, 7, 900) - from_hmsm(3, 5, 6, 925),
    TimeDelta::try_milliseconds(975).unwrap()
);
assert_eq!(
    from_hmsm(3, 5, 7, 900) - from_hmsm(3, 5, 0, 900),
    TimeDelta::try_seconds(7).unwrap()
);
assert_eq!(
    from_hmsm(3, 5, 7, 900) - from_hmsm(3, 0, 7, 900),
    TimeDelta::try_seconds(5 * 60).unwrap()
);
assert_eq!(
    from_hmsm(3, 5, 7, 900) - from_hmsm(0, 5, 7, 900),
    TimeDelta::try_seconds(3 * 3600).unwrap()
);
assert_eq!(
    from_hmsm(3, 5, 7, 900) - from_hmsm(4, 5, 7, 900),
    TimeDelta::try_seconds(-3600).unwrap()
);
assert_eq!(
    from_hmsm(3, 5, 7, 900) - from_hmsm(2, 4, 6, 800),
    TimeDelta::try_seconds(3600 + 60 + 1).unwrap() + TimeDelta::try_milliseconds(100).unwrap()
);

Leap seconds are handled, but the subtraction assumes that there were no other leap seconds happened.

assert_eq!(from_hmsm(3, 0, 59, 1_000) - from_hmsm(3, 0, 59, 0), TimeDelta::try_seconds(1).unwrap());
assert_eq!(from_hmsm(3, 0, 59, 1_500) - from_hmsm(3, 0, 59, 0),
           TimeDelta::try_milliseconds(1500).unwrap());
assert_eq!(from_hmsm(3, 0, 59, 1_000) - from_hmsm(3, 0, 0, 0), TimeDelta::try_seconds(60).unwrap());
assert_eq!(from_hmsm(3, 0, 0, 0) - from_hmsm(2, 59, 59, 1_000), TimeDelta::try_seconds(1).unwrap());
assert_eq!(from_hmsm(3, 0, 59, 1_000) - from_hmsm(2, 59, 59, 1_000),
           TimeDelta::try_seconds(61).unwrap());
Sourceยง

impl Sub for TimeDelta

Sourceยง

impl Sub for AttrCheckFlags

Sourceยง

impl Sub for CheckoutNotificationType

Sourceยง

impl Sub for CredentialType

Sourceยง

impl Sub for DiffFlags

Sourceยง

impl Sub for DiffStatsFormat

Sourceยง

impl Sub for IndexAddOption

Sourceยง

impl Sub for IndexEntryExtendedFlag

Sourceยง

impl Sub for IndexEntryFlag

Sourceยง

impl Sub for MergeAnalysis

Sourceยง

impl Sub for MergePreference

Sourceยง

impl Sub for OdbLookupFlags

Sourceยง

impl Sub for PathspecFlags

Sourceยง

impl Sub for ReferenceFormat

Sourceยง

impl Sub for RemoteUpdateFlags

Sourceยง

impl Sub for RepositoryInitMode

Sourceยง

impl Sub for RepositoryOpenFlags

Sourceยง

impl Sub for RevparseMode

Sourceยง

impl Sub for Sort

Sourceยง

impl Sub for StashApplyFlags

Sourceยง

impl Sub for StashFlags

Sourceยง

impl Sub for Status

Sourceยง

impl Sub for SubmoduleStatus

Sourceยง

impl Sub for BigInt

Sourceยง

type Output = <&'static BigInt as Sub>::Output

Sourceยง

impl Sub for Number

Sourceยง

type Output = <&'static Number as Sub>::Output

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

Sourceยง

impl Sub for UTerm

UTerm - UTerm = UTerm

Sourceยง

impl Sub for JsValue

Sourceยง

type Output = <&'static JsValue as Sub>::Output

ยง

impl Sub for Access

ยง

type Output = Access

ยง

impl Sub for Access

ยง

type Output = Access

ยง

impl Sub for AtFlags

ยง

type Output = AtFlags

ยง

impl Sub for AtFlags

ยง

type Output = AtFlags

ยง

impl Sub for ChannelType

ยง

type Output = ChannelType

ยง

impl Sub for ColorFallbackKind

ยง

type Output = ColorFallbackKind

ยง

impl Sub for ColorScheme

ยง

type Output = ColorScheme

ยง

impl Sub for CreateFlags

ยง

type Output = CreateFlags

ยง

impl Sub for CreateFlags

ยง

type Output = CreateFlags

ยง

impl Sub for CreateFlags

ยง

type Output = CreateFlags

ยง

impl Sub for Date

ยง

type Output = Duration

ยง

impl Sub for Double

ยง

type Output = Double

ยง

impl Sub for DupFlags

ยง

type Output = DupFlags

ยง

impl Sub for DupFlags

ยง

type Output = DupFlags

ยง

impl Sub for Duration

ยง

type Output = Duration

ยง

impl Sub for ElementSelectorFlags

ยง

type Output = ElementSelectorFlags

ยง

impl Sub for EventFlags

ยง

type Output = EventFlags

ยง

impl Sub for EventfdFlags

ยง

type Output = EventfdFlags

ยง

impl Sub for Expression

ยง

type Output = Expression

ยง

impl Sub for FallocateFlags

ยง

type Output = FallocateFlags

ยง

impl Sub for FallocateFlags

ยง

type Output = FallocateFlags

ยง

impl Sub for FdFlags

ยง

type Output = FdFlags

ยง

impl Sub for FdFlags

ยง

type Output = FdFlags

ยง

impl Sub for Features

ยง

type Output = Features

ยง

impl Sub for Float

ยง

type Output = Float

ยง

impl Sub for FloatingPointEmulationControl

ยง

type Output = FloatingPointEmulationControl

ยง

impl Sub for FloatingPointExceptionMode

ยง

type Output = FloatingPointExceptionMode

ยง

impl Sub for GridAutoFlow

ยง

type Output = GridAutoFlow

ยง

impl Sub for IFlags

ยง

type Output = IFlags

ยง

impl Sub for IFlags

ยง

type Output = IFlags

ยง

impl Sub for Instant

ยง

impl Sub for MemfdFlags

ยง

type Output = MemfdFlags

ยง

impl Sub for MemfdFlags

ยง

type Output = MemfdFlags

ยง

impl Sub for Mode

ยง

type Output = Mode

ยง

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 OFlags

ยง

type Output = OFlags

ยง

impl Sub for OffsetDateTime

ยง

type Output = Duration

ยง

impl Sub for ParserFlags

ยง

type Output = ParserFlags

ยง

impl Sub for PidfdFlags

ยง

type Output = PidfdFlags

ยง

impl Sub for PidfdGetfdFlags

ยง

type Output = PidfdGetfdFlags

ยง

impl Sub for PipeFlags

ยง

type Output = PipeFlags

ยง

impl Sub for PollFlags

ยง

type Output = PollFlags

ยง

impl Sub for PrimitiveDateTime

ยง

type Output = Duration

ยง

impl Sub for ReadFlags

ยง

type Output = ReadFlags

ยง

impl Sub for ReadFlags

ยง

type Output = ReadFlags

ยง

impl Sub for ReadWriteFlags

ยง

type Output = ReadWriteFlags

ยง

impl Sub for ReadWriteFlags

ยง

type Output = ReadWriteFlags

ยง

impl Sub for Ready

ยง

type Output = Ready

ยง

impl Sub for RecvFlags

ยง

type Output = RecvFlags

ยง

impl Sub for RenameFlags

ยง

type Output = RenameFlags

ยง

impl Sub for RenameFlags

ยง

type Output = RenameFlags

ยง

impl Sub for ResolveFlags

ยง

type Output = ResolveFlags

ยง

impl Sub for ResolveFlags

ยง

type Output = ResolveFlags

ยง

impl Sub for ReturnFlags

ยง

type Output = ReturnFlags

ยง

impl Sub for Rgb

ยง

type Output = Rgb

ยง

impl Sub for SealFlags

ยง

type Output = SealFlags

ยง

impl Sub for SealFlags

ยง

type Output = SealFlags

ยง

impl Sub for SendFlags

ยง

type Output = SendFlags

ยง

impl Sub for SocketAddrXdpFlags

ยง

type Output = SocketAddrXdpFlags

ยง

impl Sub for SocketFlags

ยง

type Output = SocketFlags

ยง

impl Sub for SpeculationFeatureControl

ยง

type Output = SpeculationFeatureControl

ยง

impl Sub for SpeculationFeatureState

ยง

type Output = SpeculationFeatureState

ยง

impl Sub for SpliceFlags

ยง

type Output = SpliceFlags

ยง

impl Sub for StatVfsMountFlags

ยง

type Output = StatVfsMountFlags

ยง

impl Sub for StatVfsMountFlags

ยง

type Output = StatVfsMountFlags

ยง

impl Sub for StatxAttributes

ยง

type Output = StatxAttributes

ยง

impl Sub for StatxFlags

ยง

type Output = StatxFlags

ยง

impl Sub for StatxFlags

ยง

type Output = StatxFlags

ยง

impl Sub for TextDecorationLine

ยง

type Output = TextDecorationLine

ยง

impl Sub for TextTransformOther

ยง

type Output = TextTransformOther

ยง

impl Sub for Time

ยง

type Output = Duration

ยง

impl Sub for TimerfdFlags

ยง

type Output = TimerfdFlags

ยง

impl Sub for TimerfdTimerFlags

ยง

type Output = TimerfdTimerFlags

ยง

impl Sub for Timespec

ยง

type Output = Timespec

ยง

impl Sub for UnalignedAccessControl

ยง

type Output = UnalignedAccessControl

ยง

impl Sub for UnmountFlags

ยง

type Output = UnmountFlags

ยง

impl Sub for UtcDateTime

ยง

type Output = Duration

ยง

impl Sub for VendorPrefix

ยง

type Output = VendorPrefix

ยง

impl Sub for WaitIdOptions

ยง

type Output = WaitIdOptions

ยง

impl Sub for WaitOptions

ยง

type Output = WaitOptions

ยง

impl Sub for WatchFlags

ยง

type Output = WatchFlags

ยง

impl Sub for WatchFlags

ยง

type Output = WatchFlags

ยง

impl Sub for XattrFlags

ยง

type Output = XattrFlags

ยง

impl Sub for XattrFlags

ยง

type Output = XattrFlags

ยง

impl Sub for XdpDescOptions

ยง

type Output = XdpDescOptions

ยง

impl Sub for XdpOptionsFlags

ยง

type Output = XdpOptionsFlags

ยง

impl Sub for XdpRingFlags

ยง

type Output = XdpRingFlags

ยง

impl Sub for XdpUmemRegFlags

ยง

type Output = XdpUmemRegFlags

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

1.0.0 ยท Sourceยง

impl Sub<&i8> for i8

1.0.0 ยท Sourceยง

impl Sub<&i16> for &i16

1.0.0 ยท Sourceยง

impl Sub<&i16> for i16

1.0.0 ยท Sourceยง

impl Sub<&i32> for &i32

1.0.0 ยท Sourceยง

impl Sub<&i32> for i32

1.0.0 ยท Sourceยง

impl Sub<&i64> for &i64

1.0.0 ยท Sourceยง

impl Sub<&i64> for i64

1.0.0 ยท Sourceยง

impl Sub<&i128> for &i128

1.0.0 ยท Sourceยง

impl Sub<&i128> for i128

1.0.0 ยท Sourceยง

impl Sub<&isize> for &isize

1.0.0 ยท Sourceยง

impl Sub<&isize> for isize

1.0.0 ยท Sourceยง

impl Sub<&u8> for &u8

1.0.0 ยท Sourceยง

impl Sub<&u8> for u8

1.0.0 ยท Sourceยง

impl Sub<&u16> for &u16

1.0.0 ยท Sourceยง

impl Sub<&u16> for u16

1.0.0 ยท Sourceยง

impl Sub<&u32> for &u32

1.0.0 ยท Sourceยง

impl Sub<&u32> for u32

1.0.0 ยท Sourceยง

impl Sub<&u64> for &u64

1.0.0 ยท Sourceยง

impl Sub<&u64> for u64

1.0.0 ยท Sourceยง

impl Sub<&u128> for &u128

1.0.0 ยท Sourceยง

impl Sub<&u128> for u128

1.0.0 ยท Sourceยง

impl Sub<&usize> for &usize

1.0.0 ยท Sourceยง

impl Sub<&usize> for usize

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

Sourceยง

impl Sub<&BigInt> for BigInt

Sourceยง

type Output = <&'static BigInt as Sub>::Output

Sourceยง

impl Sub<&Number> for &Number

Sourceยง

impl Sub<&Number> for Number

Sourceยง

type Output = <&'static Number as Sub>::Output

Sourceยง

impl Sub<&BigNumRef> for &BigNumRef

Sourceยง

impl Sub<&JsValue> for JsValue

Sourceยง

type Output = <&'static JsValue as Sub>::Output

ยง

impl Sub<&Rgb> for &Rgb

ยง

type Output = Rgb

ยง

impl Sub<&Rgb> for Rgb

ยง

type Output = Rgb

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 NaiveDateTime

Subtract std::time::Duration from NaiveDateTime.

As a part of Chronoโ€™s [leap second handling] the subtraction assumes that there is no leap second ever, except when the NaiveDateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDateTime::checked_sub_signed to get an Option instead.

Sourceยง

impl Sub<Duration> for NaiveTime

Subtract std::time::Duration from NaiveTime.

This wraps around and never overflows or underflows. In particular the subtraction ignores integral number of days.

ยง

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 OffsetDateTime

ยง

type Output = OffsetDateTime

ยง

impl Sub<Duration> for PrimitiveDateTime

ยง

type Output = PrimitiveDateTime

ยง

impl Sub<Duration> for Time

ยง

type Output = Time

ยง

impl Sub<Duration> for UtcDateTime

ยง

type Output = UtcDateTime

ยง

impl Sub<SystemTime> for OffsetDateTime

ยง

type Output = Duration

ยง

impl Sub<SystemTime> for UtcDateTime

ยง

type Output = Duration

Sourceยง

impl Sub<Months> for NaiveDate

Subtract Months from NaiveDate.

The result will be clamped to valid days in the resulting month, see checked_sub_months for details.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDate::checked_sub_months to get an Option instead.

ยงExample

use chrono::{Months, NaiveDate};

let from_ymd = |y, m, d| NaiveDate::from_ymd_opt(y, m, d).unwrap();

assert_eq!(from_ymd(2014, 1, 1) - Months::new(11), from_ymd(2013, 2, 1));
assert_eq!(from_ymd(2014, 1, 1) - Months::new(12), from_ymd(2013, 1, 1));
assert_eq!(from_ymd(2014, 1, 1) - Months::new(13), from_ymd(2012, 12, 1));
Sourceยง

impl Sub<Months> for NaiveDateTime

Subtract Months from NaiveDateTime.

The result will be clamped to valid days in the resulting month, see NaiveDateTime::checked_sub_months for details.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDateTime::checked_sub_months to get an Option instead.

ยงExample

use chrono::{Months, NaiveDate};

assert_eq!(
    NaiveDate::from_ymd_opt(2014, 01, 01).unwrap().and_hms_opt(01, 00, 00).unwrap()
        - Months::new(11),
    NaiveDate::from_ymd_opt(2013, 02, 01).unwrap().and_hms_opt(01, 00, 00).unwrap()
);
assert_eq!(
    NaiveDate::from_ymd_opt(2014, 01, 01).unwrap().and_hms_opt(00, 02, 00).unwrap()
        - Months::new(12),
    NaiveDate::from_ymd_opt(2013, 01, 01).unwrap().and_hms_opt(00, 02, 00).unwrap()
);
assert_eq!(
    NaiveDate::from_ymd_opt(2014, 01, 01).unwrap().and_hms_opt(00, 00, 03).unwrap()
        - Months::new(13),
    NaiveDate::from_ymd_opt(2012, 12, 01).unwrap().and_hms_opt(00, 00, 03).unwrap()
);
Sourceยง

impl Sub<Days> for NaiveDate

Subtract Days from NaiveDate.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDate::checked_sub_days to get an Option instead.

Sourceยง

impl Sub<Days> for NaiveDateTime

Subtract Days from NaiveDateTime.

ยงPanics

Panics if the resulting date would be out of range. Consider using checked_sub_days to get an Option instead.

Sourceยง

impl Sub<FixedOffset> for NaiveDateTime

Subtract FixedOffset from NaiveDateTime.

ยงPanics

Panics if the resulting date would be out of range. Consider using checked_sub_offset to get an Option instead.

Sourceยง

impl Sub<FixedOffset> for NaiveTime

Subtract FixedOffset from NaiveTime.

This wraps around and never overflows or underflows. In particular the subtraction ignores integral number of days.

Sourceยง

impl Sub<TimeDelta> for NaiveDate

Subtract TimeDelta from NaiveDate.

This discards the fractional days in TimeDelta, rounding to the closest integral number of days towards TimeDelta::zero(). It is the same as the addition with a negated TimeDelta.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDate::checked_sub_signed to get an Option instead.

ยงExample

use chrono::{NaiveDate, TimeDelta};

let from_ymd = |y, m, d| NaiveDate::from_ymd_opt(y, m, d).unwrap();

assert_eq!(from_ymd(2014, 1, 1) - TimeDelta::zero(), from_ymd(2014, 1, 1));
assert_eq!(from_ymd(2014, 1, 1) - TimeDelta::try_seconds(86399).unwrap(), from_ymd(2014, 1, 1));
assert_eq!(
    from_ymd(2014, 1, 1) - TimeDelta::try_seconds(-86399).unwrap(),
    from_ymd(2014, 1, 1)
);
assert_eq!(from_ymd(2014, 1, 1) - TimeDelta::try_days(1).unwrap(), from_ymd(2013, 12, 31));
assert_eq!(from_ymd(2014, 1, 1) - TimeDelta::try_days(-1).unwrap(), from_ymd(2014, 1, 2));
assert_eq!(from_ymd(2014, 1, 1) - TimeDelta::try_days(364).unwrap(), from_ymd(2013, 1, 2));
assert_eq!(
    from_ymd(2014, 1, 1) - TimeDelta::try_days(365 * 4 + 1).unwrap(),
    from_ymd(2010, 1, 1)
);
assert_eq!(
    from_ymd(2014, 1, 1) - TimeDelta::try_days(365 * 400 + 97).unwrap(),
    from_ymd(1614, 1, 1)
);
Sourceยง

impl Sub<TimeDelta> for NaiveDateTime

Subtract TimeDelta from NaiveDateTime.

This is the same as the addition with a negated TimeDelta.

As a part of Chronoโ€™s leap second handling the subtraction assumes that there is no leap second ever, except when the NaiveDateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDateTime::checked_sub_signed to get an Option instead.

ยงExample

use chrono::{NaiveDate, TimeDelta};

let from_ymd = |y, m, d| NaiveDate::from_ymd_opt(y, m, d).unwrap();

let d = from_ymd(2016, 7, 8);
let hms = |h, m, s| d.and_hms_opt(h, m, s).unwrap();
assert_eq!(hms(3, 5, 7) - TimeDelta::zero(), hms(3, 5, 7));
assert_eq!(hms(3, 5, 7) - TimeDelta::try_seconds(1).unwrap(), hms(3, 5, 6));
assert_eq!(hms(3, 5, 7) - TimeDelta::try_seconds(-1).unwrap(), hms(3, 5, 8));
assert_eq!(hms(3, 5, 7) - TimeDelta::try_seconds(3600 + 60).unwrap(), hms(2, 4, 7));
assert_eq!(
    hms(3, 5, 7) - TimeDelta::try_seconds(86_400).unwrap(),
    from_ymd(2016, 7, 7).and_hms_opt(3, 5, 7).unwrap()
);
assert_eq!(
    hms(3, 5, 7) - TimeDelta::try_days(365).unwrap(),
    from_ymd(2015, 7, 9).and_hms_opt(3, 5, 7).unwrap()
);

let hmsm = |h, m, s, milli| d.and_hms_milli_opt(h, m, s, milli).unwrap();
assert_eq!(hmsm(3, 5, 7, 450) - TimeDelta::try_milliseconds(670).unwrap(), hmsm(3, 5, 6, 780));

Leap seconds are handled, but the subtraction assumes that it is the only leap second happened.

let leap = hmsm(3, 5, 59, 1_300);
assert_eq!(leap - TimeDelta::zero(), hmsm(3, 5, 59, 1_300));
assert_eq!(leap - TimeDelta::try_milliseconds(200).unwrap(), hmsm(3, 5, 59, 1_100));
assert_eq!(leap - TimeDelta::try_milliseconds(500).unwrap(), hmsm(3, 5, 59, 800));
assert_eq!(leap - TimeDelta::try_seconds(60).unwrap(), hmsm(3, 5, 0, 300));
assert_eq!(leap - TimeDelta::try_days(1).unwrap(),
           from_ymd(2016, 7, 7).and_hms_milli_opt(3, 6, 0, 300).unwrap());
Sourceยง

impl Sub<TimeDelta> for NaiveTime

Subtract TimeDelta from NaiveTime.

This wraps around and never overflows or underflows. In particular the subtraction ignores integral number of days. This is the same as addition with a negated TimeDelta.

As a part of Chronoโ€™s leap second handling, the subtraction assumes that there is no leap second ever, except when the NaiveTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงExample

use chrono::{NaiveTime, TimeDelta};

let from_hmsm = |h, m, s, milli| NaiveTime::from_hms_milli_opt(h, m, s, milli).unwrap();

assert_eq!(from_hmsm(3, 5, 7, 0) - TimeDelta::zero(), from_hmsm(3, 5, 7, 0));
assert_eq!(from_hmsm(3, 5, 7, 0) - TimeDelta::try_seconds(1).unwrap(), from_hmsm(3, 5, 6, 0));
assert_eq!(
    from_hmsm(3, 5, 7, 0) - TimeDelta::try_seconds(60 + 5).unwrap(),
    from_hmsm(3, 4, 2, 0)
);
assert_eq!(
    from_hmsm(3, 5, 7, 0) - TimeDelta::try_seconds(2 * 60 * 60 + 6 * 60).unwrap(),
    from_hmsm(0, 59, 7, 0)
);
assert_eq!(
    from_hmsm(3, 5, 7, 0) - TimeDelta::try_milliseconds(80).unwrap(),
    from_hmsm(3, 5, 6, 920)
);
assert_eq!(
    from_hmsm(3, 5, 7, 950) - TimeDelta::try_milliseconds(280).unwrap(),
    from_hmsm(3, 5, 7, 670)
);

The subtraction wraps around.

assert_eq!(from_hmsm(3, 5, 7, 0) - TimeDelta::try_seconds(8*60*60).unwrap(), from_hmsm(19, 5, 7, 0));
assert_eq!(from_hmsm(3, 5, 7, 0) - TimeDelta::try_days(800).unwrap(), from_hmsm(3, 5, 7, 0));

Leap seconds are handled, but the subtraction assumes that it is the only leap second happened.

let leap = from_hmsm(3, 5, 59, 1_300);
assert_eq!(leap - TimeDelta::zero(), from_hmsm(3, 5, 59, 1_300));
assert_eq!(leap - TimeDelta::try_milliseconds(200).unwrap(), from_hmsm(3, 5, 59, 1_100));
assert_eq!(leap - TimeDelta::try_milliseconds(500).unwrap(), from_hmsm(3, 5, 59, 800));
assert_eq!(leap - TimeDelta::try_seconds(60).unwrap(), from_hmsm(3, 5, 0, 300));
assert_eq!(leap - TimeDelta::try_days(1).unwrap(), from_hmsm(3, 6, 0, 300));
Sourceยง

impl Sub<Cam16Hue> for f32

Sourceยง

impl Sub<Cam16Hue<f64>> for f64

Sourceยง

impl Sub<LabHue> for f32

Sourceยง

impl Sub<LabHue<f64>> for f64

Sourceยง

impl Sub<LuvHue> for f32

Sourceยง

impl Sub<LuvHue<f64>> for f64

Sourceยง

impl Sub<OklabHue> for f32

Sourceยง

impl Sub<OklabHue<f64>> for f64

Sourceยง

impl Sub<RgbHue> for f32

Sourceยง

impl Sub<RgbHue<f64>> for f64

Sourceยง

impl Sub<B0> for UTerm

UTerm - B0 = Term

Sourceยง

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

UInt<UTerm, B1> - B1 = UTerm

ยง

impl Sub<Duration> for flams_router_vscode::server_fn::inventory::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 OffsetDateTime

ยง

type Output = OffsetDateTime

ยง

impl Sub<Duration> for PrimitiveDateTime

ยง

type Output = PrimitiveDateTime

ยง

impl Sub<Duration> for Time

ยง

type Output = Time

ยง

impl Sub<Duration> for UtcDateTime

ยง

type Output = UtcDateTime

ยง

impl Sub<OffsetDateTime> for SystemTime

ยง

type Output = Duration

ยง

impl Sub<OffsetDateTime> for UtcDateTime

ยง

type Output = Duration

ยง

impl Sub<Rgb> for &Rgb

ยง

type Output = Rgb

ยง

impl Sub<UtcDateTime> for SystemTime

ยง

type Output = Duration

ยง

impl Sub<UtcDateTime> for OffsetDateTime

ยง

type Output = Duration

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<BigInt> for &'a BigInt

Sourceยง

type Output = <&'static BigInt as Sub>::Output

Sourceยง

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

Sourceยง

type Output = <&'static Number as Sub>::Output

Sourceยง

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

Sourceยง

type Output = <&'static JsValue as Sub>::Output

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

ยง

impl<'a, 'b, T> Sub<&'b LinearSet<T>> for &'a LinearSet<T>
where T: Eq + Clone,

ยง

type Output = LinearSet<T>

ยง

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

ยง

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

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

impl<C> Sub for PreAlpha<C>
where C: Premultiply + Sub<Output = C>, <C as Premultiply>::Scalar: Sub<Output = <C as Premultiply>::Scalar>,

Sourceยง

impl<C> Sub<f32> for PreAlpha<C>
where C: Premultiply<Scalar = f32> + Sub<f32, Output = C>,

Sourceยง

impl<C> Sub<f64> for PreAlpha<C>
where C: Premultiply<Scalar = f64> + Sub<f64, Output = C>,

Sourceยง

impl<C, T> Sub for Alpha<C, T>
where C: Sub, T: Sub,

Sourceยง

type Output = Alpha<<C as Sub>::Output, <T as Sub>::Output>

ยง

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

ยง

type Output = F32<O>

ยง

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

ยง

type Output = F64<O>

ยง

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

ยง

type Output = I16<O>

ยง

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

ยง

type Output = I32<O>

ยง

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

ยง

type Output = I64<O>

ยง

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

ยง

type Output = I128<O>

ยง

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

ยง

type Output = Isize<O>

ยง

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

ยง

type Output = U16<O>

ยง

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

ยง

type Output = U32<O>

ยง

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

ยง

type Output = U64<O>

ยง

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

ยง

type Output = U128<O>

ยง

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

ยง

type Output = Usize<O>

ยง

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

ยง

type Output = F32<O>

ยง

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

ยง

type Output = F64<O>

ยง

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

ยง

type Output = I16<O>

ยง

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

ยง

type Output = I32<O>

ยง

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

ยง

type Output = I64<O>

ยง

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

ยง

type Output = I128<O>

ยง

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

ยง

type Output = Isize<O>

ยง

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

ยง

type Output = U16<O>

ยง

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

ยง

type Output = U32<O>

ยง

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

ยง

type Output = U64<O>

ยง

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

ยง

type Output = U128<O>

ยง

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

ยง

type Output = Usize<O>

ยง

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

ยง

type Output = F32<O>

ยง

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

ยง

type Output = F64<O>

ยง

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

ยง

type Output = I16<O>

ยง

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

ยง

type Output = I32<O>

ยง

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

ยง

type Output = I64<O>

ยง

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

ยง

type Output = I128<O>

ยง

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

ยง

type Output = Isize<O>

ยง

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

ยง

type Output = U16<O>

ยง

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

ยง

type Output = U32<O>

ยง

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

ยง

type Output = U64<O>

ยง

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

ยง

type Output = U128<O>

ยง

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

ยง

type Output = Usize<O>

Sourceยง

impl<S, T> Sub for Hsl<S, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Hsl<S, T>

Sourceยง

impl<S, T> Sub for Hsv<S, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Hsv<S, T>

Sourceยง

impl<S, T> Sub for Hwb<S, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Hwb<S, T>

Sourceยง

impl<S, T> Sub for Luma<S, T>
where T: Sub<Output = T>,

Sourceยง

impl<S, T> Sub for palette::rgb::rgb::Rgb<S, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Rgb<S, T>

Sourceยง

impl<S, T> Sub<T> for Hsl<S, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Hsl<S, T>

Sourceยง

impl<S, T> Sub<T> for Hsv<S, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Hsv<S, T>

Sourceยง

impl<S, T> Sub<T> for Hwb<S, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Hwb<S, T>

Sourceยง

impl<S, T> Sub<T> for Luma<S, T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<S, T> Sub<T> for palette::rgb::rgb::Rgb<S, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Rgb<S, T>

Sourceยง

impl<T> Sub for Cam16Jch<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Cam16Jmh<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Cam16Jsh<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Cam16Qch<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Cam16Qmh<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Cam16Qsh<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Cam16UcsJab<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Cam16UcsJmh<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Cam16Hue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for LabHue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for LuvHue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for OklabHue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for RgbHue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Okhsl<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Okhsv<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Okhwb<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Oklab<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub for Oklch<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub<T> for Cam16Jch<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Cam16Jmh<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Cam16Jsh<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Cam16Qch<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Cam16Qmh<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Cam16Qsh<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Cam16UcsJab<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Cam16UcsJmh<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Cam16Hue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub<T> for LabHue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub<T> for LuvHue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub<T> for OklabHue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub<T> for RgbHue<T>
where T: Sub<Output = T>,

Sourceยง

impl<T> Sub<T> for Okhsl<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Okhsv<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Okhwb<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Oklab<T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<T> Sub<T> for Oklch<T>
where T: Sub<Output = T> + Clone,

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, C> Sub<T> for Alpha<C, T>
where T: Sub + Clone, C: Sub<T>,

Sourceยง

type Output = Alpha<<C as Sub<T>>::Output, <T as Sub>::Output>

ยง

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

ยง

type Output = IndexSet<T, S1>

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,

ยง

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

ยง

type Output = AHashSet<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>

ยง

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

ยง

type Output = LinkedHashSet<T, S>

ยง

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

ยง

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

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

impl<Tz> Sub for chrono::date::Date<Tz>
where Tz: TimeZone,

Sourceยง

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

Sourceยง

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

Sourceยง

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

Subtract std::time::Duration from DateTime.

As a part of Chronoโ€™s [leap second handling] the subtraction assumes that there is no leap second ever, except when the DateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงPanics

Panics if the resulting date would be out of range. Consider using DateTime<Tz>::checked_sub_signed to get an Option instead.

Sourceยง

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

Subtract Months from DateTime.

The result will be clamped to valid days in the resulting month, see DateTime<Tz>::checked_sub_months for details.

ยงPanics

Panics if:

  • The resulting date would be out of range.
  • The local time at the resulting date does not exist or is ambiguous, for example during a daylight saving time transition.

Strongly consider using DateTime<Tz>::checked_sub_months to get an Option instead.

Sourceยง

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

Subtract Days from DateTime.

ยงPanics

Panics if:

  • The resulting date would be out of range.
  • The local time at the resulting date does not exist or is ambiguous, for example during a daylight saving time transition.

Strongly consider using DateTime<Tz>::checked_sub_days to get an Option instead.

Sourceยง

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

Subtract FixedOffset from the datetime value of DateTime (offset remains unchanged).

ยงPanics

Panics if the resulting date would be out of range.

Sourceยง

impl<Tz> Sub<TimeDelta> for chrono::date::Date<Tz>
where Tz: TimeZone,

Sourceยง

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

Subtract TimeDelta from DateTime.

This is the same as the addition with a negated TimeDelta.

As a part of Chronoโ€™s [leap second handling] the subtraction assumes that there is no leap second ever, except when the DateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงPanics

Panics if the resulting date would be out of range. Consider using DateTime<Tz>::checked_sub_signed to get an Option instead.

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

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

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

UInt<U, B1> - B1 = UInt<U, 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<Wp, T> Sub for Hsluv<Wp, T>
where T: Sub<Output = T>,

Sourceยง

impl<Wp, T> Sub for Lab<Wp, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Lab<Wp, T>

Sourceยง

impl<Wp, T> Sub for Lch<Wp, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Lch<Wp, T>

Sourceยง

impl<Wp, T> Sub for Lchuv<Wp, T>
where T: Sub<Output = T>,

Sourceยง

impl<Wp, T> Sub for Luv<Wp, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Luv<Wp, T>

Sourceยง

impl<Wp, T> Sub for Xyz<Wp, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Xyz<Wp, T>

Sourceยง

impl<Wp, T> Sub for Yxy<Wp, T>
where T: Sub<Output = T>,

Sourceยง

type Output = Yxy<Wp, T>

Sourceยง

impl<Wp, T> Sub<T> for Hsluv<Wp, T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<Wp, T> Sub<T> for Lab<Wp, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Lab<Wp, T>

Sourceยง

impl<Wp, T> Sub<T> for Lch<Wp, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Lch<Wp, T>

Sourceยง

impl<Wp, T> Sub<T> for Lchuv<Wp, T>
where T: Sub<Output = T> + Clone,

Sourceยง

impl<Wp, T> Sub<T> for Luv<Wp, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Luv<Wp, T>

Sourceยง

impl<Wp, T> Sub<T> for Xyz<Wp, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Xyz<Wp, T>

Sourceยง

impl<Wp, T> Sub<T> for Yxy<Wp, T>
where T: Sub<Output = T> + Clone,

Sourceยง

type Output = Yxy<Wp, T>

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>