Trait grafix_toolbox::lib::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 f16

§

type Output = f16

source§

impl Sub for Mod

§

type Output = Mod

source§

impl Sub for Assume

1.3.0 · source§

impl Sub for Duration

1.8.0 · source§

impl Sub for Instant

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>

source§

impl Sub for JoystickHats

source§

impl Sub for Modifiers

source§

impl Sub for bf16

§

type Output = bf16

source§

impl Sub for rustix::backend::event::epoll::CreateFlags

source§

impl Sub for EventFlags

source§

impl Sub for PollFlags

source§

impl Sub for EventfdFlags

source§

impl Sub for rustix::backend::fs::inotify::CreateFlags

source§

impl Sub for WatchFlags

source§

impl Sub for Access

source§

impl Sub for AtFlags

source§

impl Sub for FallocateFlags

source§

impl Sub for MemfdFlags

source§

impl Sub for Mode

§

type Output = Mode

source§

impl Sub for OFlags

source§

impl Sub for RenameFlags

source§

impl Sub for ResolveFlags

source§

impl Sub for SealFlags

source§

impl Sub for StatVfsMountFlags

source§

impl Sub for StatxFlags

source§

impl Sub for DupFlags

source§

impl Sub for FdFlags

source§

impl Sub for ReadWriteFlags

source§

impl Sub for MountFlags

source§

impl Sub for MountPropagationFlags

source§

impl Sub for UnmountFlags

source§

impl Sub for RecvFlags

source§

impl Sub for SendFlags

source§

impl Sub for PipeFlags

source§

impl Sub for SpliceFlags

source§

impl Sub for TimerfdFlags

source§

impl Sub for TimerfdTimerFlags

source§

impl Sub for IFlags

source§

impl Sub for XattrFlags

source§

impl Sub for SocketFlags

source§

impl Sub for SockaddrXdpFlags

source§

impl Sub for XdpDescOptions

source§

impl Sub for XdpOptionsFlags

source§

impl Sub for XdpRingFlags

source§

impl Sub for XdpUmemRegFlags

source§

impl Sub for MembarrierQuery

source§

impl Sub for PidfdFlags

source§

impl Sub for PidfdGetfdFlags

source§

impl Sub for FloatingPointEmulationControl

source§

impl Sub for FloatingPointExceptionMode

source§

impl Sub for SpeculationFeatureControl

source§

impl Sub for SpeculationFeatureState

source§

impl Sub for UnalignedAccessControl

source§

impl Sub for WaitOptions

source§

impl Sub for WaitidOptions

source§

impl Sub for m128

§

type Output = m128

source§

impl Sub for m128d

source§

impl Sub for AutoSimd<[f32; 2]>

§

type Output = AutoSimd<[f32; 2]>

source§

impl Sub for AutoSimd<[f32; 4]>

§

type Output = AutoSimd<[f32; 4]>

source§

impl Sub for AutoSimd<[f32; 8]>

§

type Output = AutoSimd<[f32; 8]>

source§

impl Sub for AutoSimd<[f32; 16]>

§

type Output = AutoSimd<[f32; 16]>

source§

impl Sub for AutoSimd<[f64; 2]>

§

type Output = AutoSimd<[f64; 2]>

source§

impl Sub for AutoSimd<[f64; 4]>

§

type Output = AutoSimd<[f64; 4]>

source§

impl Sub for AutoSimd<[f64; 8]>

§

type Output = AutoSimd<[f64; 8]>

source§

impl Sub for AutoSimd<[i8; 2]>

§

type Output = AutoSimd<[i8; 2]>

source§

impl Sub for AutoSimd<[i8; 4]>

§

type Output = AutoSimd<[i8; 4]>

source§

impl Sub for AutoSimd<[i8; 8]>

§

type Output = AutoSimd<[i8; 8]>

source§

impl Sub for AutoSimd<[i8; 16]>

§

type Output = AutoSimd<[i8; 16]>

source§

impl Sub for AutoSimd<[i8; 32]>

§

type Output = AutoSimd<[i8; 32]>

source§

impl Sub for AutoSimd<[i16; 2]>

§

type Output = AutoSimd<[i16; 2]>

source§

impl Sub for AutoSimd<[i16; 4]>

§

type Output = AutoSimd<[i16; 4]>

source§

impl Sub for AutoSimd<[i16; 8]>

§

type Output = AutoSimd<[i16; 8]>

source§

impl Sub for AutoSimd<[i16; 16]>

§

type Output = AutoSimd<[i16; 16]>

source§

impl Sub for AutoSimd<[i16; 32]>

§

type Output = AutoSimd<[i16; 32]>

source§

impl Sub for AutoSimd<[i32; 2]>

§

type Output = AutoSimd<[i32; 2]>

source§

impl Sub for AutoSimd<[i32; 4]>

§

type Output = AutoSimd<[i32; 4]>

source§

impl Sub for AutoSimd<[i32; 8]>

§

type Output = AutoSimd<[i32; 8]>

source§

impl Sub for AutoSimd<[i32; 16]>

§

type Output = AutoSimd<[i32; 16]>

source§

impl Sub for AutoSimd<[i64; 2]>

§

type Output = AutoSimd<[i64; 2]>

source§

impl Sub for AutoSimd<[i64; 4]>

§

type Output = AutoSimd<[i64; 4]>

source§

impl Sub for AutoSimd<[i64; 8]>

§

type Output = AutoSimd<[i64; 8]>

source§

impl Sub for AutoSimd<[i128; 1]>

§

type Output = AutoSimd<[i128; 1]>

source§

impl Sub for AutoSimd<[i128; 2]>

§

type Output = AutoSimd<[i128; 2]>

source§

impl Sub for AutoSimd<[i128; 4]>

§

type Output = AutoSimd<[i128; 4]>

source§

impl Sub for AutoSimd<[isize; 2]>

source§

impl Sub for AutoSimd<[isize; 4]>

source§

impl Sub for AutoSimd<[isize; 8]>

source§

impl Sub for AutoSimd<[u8; 2]>

§

type Output = AutoSimd<[u8; 2]>

source§

impl Sub for AutoSimd<[u8; 4]>

§

type Output = AutoSimd<[u8; 4]>

source§

impl Sub for AutoSimd<[u8; 8]>

§

type Output = AutoSimd<[u8; 8]>

source§

impl Sub for AutoSimd<[u8; 16]>

§

type Output = AutoSimd<[u8; 16]>

source§

impl Sub for AutoSimd<[u8; 32]>

§

type Output = AutoSimd<[u8; 32]>

source§

impl Sub for AutoSimd<[u16; 2]>

§

type Output = AutoSimd<[u16; 2]>

source§

impl Sub for AutoSimd<[u16; 4]>

§

type Output = AutoSimd<[u16; 4]>

source§

impl Sub for AutoSimd<[u16; 8]>

§

type Output = AutoSimd<[u16; 8]>

source§

impl Sub for AutoSimd<[u16; 16]>

§

type Output = AutoSimd<[u16; 16]>

source§

impl Sub for AutoSimd<[u16; 32]>

§

type Output = AutoSimd<[u16; 32]>

source§

impl Sub for AutoSimd<[u32; 2]>

§

type Output = AutoSimd<[u32; 2]>

source§

impl Sub for AutoSimd<[u32; 4]>

§

type Output = AutoSimd<[u32; 4]>

source§

impl Sub for AutoSimd<[u32; 8]>

§

type Output = AutoSimd<[u32; 8]>

source§

impl Sub for AutoSimd<[u32; 16]>

§

type Output = AutoSimd<[u32; 16]>

source§

impl Sub for AutoSimd<[u64; 2]>

§

type Output = AutoSimd<[u64; 2]>

source§

impl Sub for AutoSimd<[u64; 4]>

§

type Output = AutoSimd<[u64; 4]>

source§

impl Sub for AutoSimd<[u64; 8]>

§

type Output = AutoSimd<[u64; 8]>

source§

impl Sub for AutoSimd<[u128; 1]>

§

type Output = AutoSimd<[u128; 1]>

source§

impl Sub for AutoSimd<[u128; 2]>

§

type Output = AutoSimd<[u128; 2]>

source§

impl Sub for AutoSimd<[u128; 4]>

§

type Output = AutoSimd<[u128; 4]>

source§

impl Sub for AutoSimd<[usize; 2]>

source§

impl Sub for AutoSimd<[usize; 4]>

source§

impl Sub for AutoSimd<[usize; 8]>

source§

impl Sub for WideF32x4

source§

impl Sub for WideF32x8

source§

impl Sub for WideF64x4

source§

impl Sub for ATerm

source§

impl Sub for Z0

Z0 - Z0 = Z0

§

type Output = Z0

source§

impl Sub for UTerm

UTerm - UTerm = UTerm

source§

impl Sub for f32x4

source§

impl Sub for f32x8

source§

impl Sub for f64x2

source§

impl Sub for f64x4

source§

impl Sub for i8x16

source§

impl Sub for i8x32

source§

impl Sub for i16x8

source§

impl Sub for i16x16

source§

impl Sub for i32x4

source§

impl Sub for i32x8

source§

impl Sub for i64x2

source§

impl Sub for i64x4

source§

impl Sub for u8x16

source§

impl Sub for u16x8

source§

impl Sub for u16x16

source§

impl Sub for u32x4

source§

impl Sub for u32x8

source§

impl Sub for u64x2

source§

impl Sub for u64x4

1.0.0 · source§

impl Sub<&f16> for &f16

§

type Output = <f16 as Sub>::Output

1.0.0 · source§

impl Sub<&f16> for f16

§

type Output = <f16 as Sub>::Output

1.0.0 · source§

impl Sub<&f32> for &f32

§

type Output = <f32 as Sub>::Output

1.0.0 · source§

impl Sub<&f32> for f32

§

type Output = <f32 as Sub>::Output

1.0.0 · source§

impl Sub<&f64> for &f64

§

type Output = <f64 as Sub>::Output

1.0.0 · source§

impl Sub<&f64> for f64

§

type Output = <f64 as Sub>::Output

1.0.0 · source§

impl Sub<&f128> for &f128

§

type Output = <f128 as Sub>::Output

1.0.0 · source§

impl Sub<&f128> for f128

§

type Output = <f128 as Sub>::Output

1.0.0 · source§

impl Sub<&i8> for &i8

§

type Output = <i8 as Sub>::Output

1.0.0 · source§

impl Sub<&i8> for i8

§

type Output = <i8 as Sub>::Output

1.0.0 · source§

impl Sub<&i16> for &i16

§

type Output = <i16 as Sub>::Output

1.0.0 · source§

impl Sub<&i16> for i16

§

type Output = <i16 as Sub>::Output

1.0.0 · source§

impl Sub<&i32> for &i32

§

type Output = <i32 as Sub>::Output

1.0.0 · source§

impl Sub<&i32> for i32

§

type Output = <i32 as Sub>::Output

1.0.0 · source§

impl Sub<&i64> for &i64

§

type Output = <i64 as Sub>::Output

1.0.0 · source§

impl Sub<&i64> for i64

§

type Output = <i64 as Sub>::Output

1.0.0 · source§

impl Sub<&i128> for &i128

§

type Output = <i128 as Sub>::Output

1.0.0 · source§

impl Sub<&i128> for i128

§

type Output = <i128 as Sub>::Output

1.0.0 · source§

impl Sub<&isize> for &isize

§

type Output = <isize as Sub>::Output

1.0.0 · source§

impl Sub<&isize> for isize

§

type Output = <isize as Sub>::Output

1.0.0 · source§

impl Sub<&u8> for &u8

§

type Output = <u8 as Sub>::Output

1.0.0 · source§

impl Sub<&u8> for u8

§

type Output = <u8 as Sub>::Output

1.0.0 · source§

impl Sub<&u16> for &u16

§

type Output = <u16 as Sub>::Output

1.0.0 · source§

impl Sub<&u16> for u16

§

type Output = <u16 as Sub>::Output

1.0.0 · source§

impl Sub<&u32> for &u32

§

type Output = <u32 as Sub>::Output

1.0.0 · source§

impl Sub<&u32> for u32

§

type Output = <u32 as Sub>::Output

1.0.0 · source§

impl Sub<&u64> for &u64

§

type Output = <u64 as Sub>::Output

1.0.0 · source§

impl Sub<&u64> for u64

§

type Output = <u64 as Sub>::Output

1.0.0 · source§

impl Sub<&u128> for &u128

§

type Output = <u128 as Sub>::Output

1.0.0 · source§

impl Sub<&u128> for u128

§

type Output = <u128 as Sub>::Output

1.0.0 · source§

impl Sub<&usize> for &usize

§

type Output = <usize as Sub>::Output

1.0.0 · source§

impl Sub<&usize> for usize

§

type Output = <usize as Sub>::Output

source§

impl Sub<&f16> for &f16

§

type Output = <f16 as Sub>::Output

source§

impl Sub<&f16> for f16

§

type Output = <f16 as Sub>::Output

1.74.0 · source§

impl Sub<&Saturating<i8>> for &Saturating<i8>

1.74.0 · source§

impl Sub<&Saturating<i8>> for Saturating<i8>

1.74.0 · source§

impl Sub<&Saturating<i16>> for &Saturating<i16>

1.74.0 · source§

impl Sub<&Saturating<i16>> for Saturating<i16>

1.74.0 · source§

impl Sub<&Saturating<i32>> for &Saturating<i32>

1.74.0 · source§

impl Sub<&Saturating<i32>> for Saturating<i32>

1.74.0 · source§

impl Sub<&Saturating<i64>> for &Saturating<i64>

1.74.0 · source§

impl Sub<&Saturating<i64>> for Saturating<i64>

1.74.0 · source§

impl Sub<&Saturating<i128>> for &Saturating<i128>

1.74.0 · source§

impl Sub<&Saturating<i128>> for Saturating<i128>

1.74.0 · source§

impl Sub<&Saturating<isize>> for &Saturating<isize>

1.74.0 · source§

impl Sub<&Saturating<isize>> for Saturating<isize>

1.74.0 · source§

impl Sub<&Saturating<u8>> for &Saturating<u8>

1.74.0 · source§

impl Sub<&Saturating<u8>> for Saturating<u8>

1.74.0 · source§

impl Sub<&Saturating<u16>> for &Saturating<u16>

1.74.0 · source§

impl Sub<&Saturating<u16>> for Saturating<u16>

1.74.0 · source§

impl Sub<&Saturating<u32>> for &Saturating<u32>

1.74.0 · source§

impl Sub<&Saturating<u32>> for Saturating<u32>

1.74.0 · source§

impl Sub<&Saturating<u64>> for &Saturating<u64>

1.74.0 · source§

impl Sub<&Saturating<u64>> for Saturating<u64>

1.74.0 · source§

impl Sub<&Saturating<u128>> for &Saturating<u128>

1.74.0 · source§

impl Sub<&Saturating<u128>> for Saturating<u128>

1.74.0 · source§

impl Sub<&Saturating<usize>> for &Saturating<usize>

1.74.0 · source§

impl Sub<&Saturating<usize>> for Saturating<usize>

1.14.0 · source§

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

§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

impl Sub<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 · source§

impl Sub<&Wrapping<i16>> for Wrapping<i16>

1.14.0 · source§

impl Sub<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 · source§

impl Sub<&Wrapping<i32>> for Wrapping<i32>

1.14.0 · source§

impl Sub<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 · source§

impl Sub<&Wrapping<i64>> for Wrapping<i64>

1.14.0 · source§

impl Sub<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 · source§

impl Sub<&Wrapping<i128>> for Wrapping<i128>

1.14.0 · source§

impl Sub<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 · source§

impl Sub<&Wrapping<isize>> for Wrapping<isize>

1.14.0 · source§

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

§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

source§

impl Sub<&bf16> for &bf16

§

type Output = <bf16 as Sub>::Output

source§

impl Sub<&bf16> for bf16

§

type Output = <bf16 as Sub>::Output

source§

impl Sub<&f32x4> for f32x4

source§

impl Sub<&f32x8> for f32x8

source§

impl Sub<&f64x2> for f64x2

source§

impl Sub<&f64x4> for f64x4

source§

impl Sub<&i8x16> for i8x16

source§

impl Sub<&i8x32> for i8x32

source§

impl Sub<&i16x8> for i16x8

source§

impl Sub<&i16x16> for i16x16

source§

impl Sub<&i32x4> for i32x4

source§

impl Sub<&i32x8> for i32x8

source§

impl Sub<&i64x2> for i64x2

source§

impl Sub<&u8x16> for u8x16

source§

impl Sub<&u16x8> for u16x8

source§

impl Sub<&u16x16> for u16x16

source§

impl Sub<&u32x4> for u32x4

source§

impl Sub<&u32x8> for u32x8

source§

impl Sub<&u64x2> for u64x2

source§

impl Sub<&u64x4> for u64x4

source§

impl Sub<f32> for f32x4

source§

impl Sub<f32> for f32x8

source§

impl Sub<f64> for f64x2

source§

impl Sub<f64> for f64x4

source§

impl Sub<i8> for i8x16

source§

impl Sub<i8> for i8x32

source§

impl Sub<i16> for i16x8

source§

impl Sub<i16> for i16x16

source§

impl Sub<i32> for i32x4

source§

impl Sub<i32> for i32x8

source§

impl Sub<i64> for i64x2

source§

impl Sub<i64> for i64x4

source§

impl Sub<u8> for u8x16

source§

impl Sub<u16> for u16x8

source§

impl Sub<u16> for u16x16

source§

impl Sub<u32> for u32x4

source§

impl Sub<u64> for u64x2

source§

impl Sub<u64> for u64x4

source§

impl Sub<usize> for Dyn

§

type Output = Dyn

source§

impl Sub<f16> for &f16

§

type Output = <f16 as Sub>::Output

1.8.0 · source§

impl Sub<Duration> for Instant

1.8.0 · source§

impl Sub<Duration> for SystemTime

source§

impl Sub<bf16> for &bf16

§

type Output = <bf16 as Sub>::Output

source§

impl Sub<Complex<f32>> for f32

source§

impl Sub<Complex<f64>> for f64

source§

impl Sub<Complex<i8>> for i8

source§

impl Sub<Complex<i16>> for i16

source§

impl Sub<Complex<i32>> for i32

source§

impl Sub<Complex<i64>> for i64

source§

impl Sub<Complex<i128>> for i128

source§

impl Sub<Complex<isize>> for isize

source§

impl Sub<Complex<u8>> for u8

source§

impl Sub<Complex<u16>> for u16

source§

impl Sub<Complex<u32>> for u32

source§

impl Sub<Complex<u64>> for u64

source§

impl Sub<Complex<u128>> for u128

source§

impl Sub<Complex<usize>> 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<f32x4> for f32

source§

impl Sub<f32x8> for f32

source§

impl Sub<f64x2> for f64

source§

impl Sub<f64x4> for f64

source§

impl Sub<i8x16> for i8

source§

impl Sub<i8x32> for i8

source§

impl Sub<i16x8> for i16

source§

impl Sub<i16x16> for i16

source§

impl Sub<i32x4> for i32

source§

impl Sub<i32x8> for i32

source§

impl Sub<i64x2> for i64

source§

impl Sub<i64x4> for i64

source§

impl Sub<u8x16> for u8

source§

impl Sub<u16x8> for u16

source§

impl Sub<u16x16> for u16

source§

impl Sub<u32x4> for u32

source§

impl Sub<u64x2> for u64

source§

impl Sub<u64x4> for u64

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

1.0.0 · source§

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

§

type Output = <f16 as Sub>::Output

1.0.0 · source§

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

§

type Output = <f32 as Sub>::Output

1.0.0 · source§

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

§

type Output = <f64 as Sub>::Output

1.0.0 · source§

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

§

type Output = <f128 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i8 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i16 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i32 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i64 as Sub>::Output

1.0.0 · source§

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

§

type Output = <i128 as Sub>::Output

1.0.0 · source§

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

§

type Output = <isize as Sub>::Output

1.0.0 · source§

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

§

type Output = <u8 as Sub>::Output

1.0.0 · source§

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

§

type Output = <u16 as Sub>::Output

1.0.0 · source§

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

§

type Output = <u32 as Sub>::Output

1.0.0 · source§

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

§

type Output = <u64 as Sub>::Output

1.0.0 · source§

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

§

type Output = <u128 as Sub>::Output

1.0.0 · source§

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

§

type Output = <usize as Sub>::Output

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<'a, 'b> Sub<&'a Complex<f32>> for &'b f32

source§

impl<'a, 'b> Sub<&'a Complex<f64>> for &'b f64

source§

impl<'a, 'b> Sub<&'a Complex<i8>> for &'b i8

source§

impl<'a, 'b> Sub<&'a Complex<i16>> for &'b i16

source§

impl<'a, 'b> Sub<&'a Complex<i32>> for &'b i32

source§

impl<'a, 'b> Sub<&'a Complex<i64>> for &'b i64

source§

impl<'a, 'b> Sub<&'a Complex<i128>> for &'b i128

source§

impl<'a, 'b> Sub<&'a Complex<isize>> for &'b isize

source§

impl<'a, 'b> Sub<&'a Complex<u8>> for &'b u8

source§

impl<'a, 'b> Sub<&'a Complex<u16>> for &'b u16

source§

impl<'a, 'b> Sub<&'a Complex<u32>> for &'b u32

source§

impl<'a, 'b> Sub<&'a Complex<u64>> for &'b u64

source§

impl<'a, 'b> Sub<&'a Complex<u128>> for &'b u128

source§

impl<'a, 'b> Sub<&'a Complex<usize>> for &'b usize

source§

impl<'a, 'b, T> Sub<&'b DualQuaternion<T>> for &'a DualQuaternion<T>

source§

impl<'a, 'b, T> Sub<&'b Quaternion<T>> for &'a Quaternion<T>

source§

impl<'a, 'b, T> Sub<&'b Complex<T>> for &'a Complex<T>
where T: Clone + Num,

§

type Output = Complex<T>

source§

impl<'a, 'b, T> Sub<&'b Ratio<T>> for &'a Ratio<T>
where T: Clone + Integer,

§

type Output = Ratio<T>

source§

impl<'a, 'b, T> Sub<&'a T> for &'b Complex<T>
where T: Clone + Num,

§

type Output = Complex<T>

source§

impl<'a, 'b, T> Sub<&'b T> for &'a Ratio<T>
where T: Clone + Integer,

§

type Output = Ratio<T>

source§

impl<'a, 'b, T, D1, D2, SB> Sub<&'b Matrix<T, D2, Const<1>, SB>> for &'a OPoint<T, D1>
where T: Scalar + ClosedSubAssign, ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<Const<1>, Const<1>, Representative = Const<1>>, D1: DimName, D2: Dim, SB: Storage<T, D2>, DefaultAllocator: Allocator<D1>,

§

type Output = OPoint<T, D1>

source§

impl<'a, 'b, T, D> Sub<&'b OPoint<T, D>> for &'a OPoint<T, D>
where T: Scalar + ClosedSubAssign, ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<Const<1>, Const<1>, Representative = Const<1>>, D: DimName, DefaultAllocator: Allocator<D>,

§

type Output = Matrix<T, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<T>>

source§

impl<'a, 'b, T, R1, C1, R2, C2, SA, SB> Sub<&'b Matrix<T, R2, C2, SB>> for &'a Matrix<T, R1, C1, SA>
where R1: Dim, C1: Dim, R2: Dim, C2: Dim, T: Scalar + ClosedSubAssign, SA: Storage<T, R1, C1>, SB: Storage<T, R2, C2>, DefaultAllocator: SameShapeAllocator<R1, C1, R2, C2>, ShapeConstraint: SameNumberOfRows<R1, R2> + SameNumberOfColumns<C1, C2>,

source§

impl<'a, T> Sub<&'a Complex<T>> for Complex<T>
where T: Clone + Num,

§

type Output = Complex<T>

source§

impl<'a, T> Sub<&'a Ratio<T>> for Ratio<T>
where T: Clone + Integer,

§

type Output = Ratio<T>

source§

impl<'a, T> Sub<&'a T> for Complex<T>
where T: Clone + Num,

§

type Output = Complex<T>

source§

impl<'a, T> Sub<&'a T> for Ratio<T>
where T: Clone + Integer,

§

type Output = Ratio<T>

source§

impl<'a, T> Sub<DualQuaternion<T>> for &'a DualQuaternion<T>

source§

impl<'a, T> Sub<Quaternion<T>> for &'a Quaternion<T>

source§

impl<'a, T> Sub<Complex<T>> for &'a Complex<T>
where T: Clone + Num,

§

type Output = Complex<T>

source§

impl<'a, T> Sub<Ratio<T>> for &'a Ratio<T>
where T: Clone + Integer,

§

type Output = Ratio<T>

source§

impl<'a, T> Sub<T> for &'a Complex<T>
where T: Clone + Num,

§

type Output = Complex<T>

source§

impl<'a, T> Sub<T> for &'a Ratio<T>
where T: Clone + Integer,

§

type Output = Ratio<T>

source§

impl<'a, T, D1, D2, SB> Sub<Matrix<T, D2, Const<1>, SB>> for &'a OPoint<T, D1>
where T: Scalar + ClosedSubAssign, ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<Const<1>, Const<1>, Representative = Const<1>>, D1: DimName, D2: Dim, SB: Storage<T, D2>, DefaultAllocator: Allocator<D1>,

§

type Output = OPoint<T, D1>

source§

impl<'a, T, D> Sub<OPoint<T, D>> for &'a OPoint<T, D>
where T: Scalar + ClosedSubAssign, ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<Const<1>, Const<1>, Representative = Const<1>>, D: DimName, DefaultAllocator: Allocator<D>,

§

type Output = Matrix<T, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<T>>

source§

impl<'a, T, R1, C1, R2, C2, SA, SB> Sub<Matrix<T, R2, C2, SB>> for &'a Matrix<T, R1, C1, SA>
where R1: Dim, C1: Dim, R2: Dim, C2: Dim, T: Scalar + ClosedSubAssign, SA: Storage<T, R1, C1>, SB: Storage<T, R2, C2>, DefaultAllocator: SameShapeAllocator<R2, C2, R1, C1>, ShapeConstraint: SameNumberOfRows<R2, R1> + SameNumberOfColumns<C2, C1>,

source§

impl<'b, T> Sub<&'b DualQuaternion<T>> for DualQuaternion<T>

source§

impl<'b, T> Sub<&'b Quaternion<T>> for Quaternion<T>

source§

impl<'b, T, D1, D2, SB> Sub<&'b Matrix<T, D2, Const<1>, SB>> for OPoint<T, D1>
where T: Scalar + ClosedSubAssign, ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<Const<1>, Const<1>, Representative = Const<1>>, D1: DimName, D2: Dim, SB: Storage<T, D2>, DefaultAllocator: Allocator<D1>,

§

type Output = OPoint<T, D1>

source§

impl<'b, T, D> Sub<&'b OPoint<T, D>> for OPoint<T, D>
where T: Scalar + ClosedSubAssign, ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<Const<1>, Const<1>, Representative = Const<1>>, D: DimName, DefaultAllocator: Allocator<D>,

§

type Output = Matrix<T, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<T>>

source§

impl<'b, T, R1, C1, R2, C2, SA, SB> Sub<&'b Matrix<T, R2, C2, SB>> for Matrix<T, R1, C1, SA>
where R1: Dim, C1: Dim, R2: Dim, C2: Dim, T: Scalar + ClosedSubAssign, SA: Storage<T, R1, C1>, SB: Storage<T, R2, C2>, DefaultAllocator: SameShapeAllocator<R1, C1, R2, C2>, ShapeConstraint: SameNumberOfRows<R1, R2> + SameNumberOfColumns<C1, C2>,

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<T> Sub for DualQuaternion<T>

source§

impl<T> Sub for Quaternion<T>

source§

impl<T> Sub for Complex<T>
where T: Clone + Num,

§

type Output = Complex<T>

source§

impl<T> Sub for Ratio<T>
where T: Clone + Integer,

§

type Output = Ratio<T>

source§

impl<T> Sub<T> for Complex<T>
where T: Clone + Num,

§

type Output = Complex<T>

source§

impl<T> Sub<T> for Ratio<T>
where T: Clone + Integer,

§

type Output = Ratio<T>

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, D1, D2, SB> Sub<Matrix<T, D2, Const<1>, SB>> for OPoint<T, D1>
where T: Scalar + ClosedSubAssign, ShapeConstraint: SameNumberOfRows<D1, D2, Representative = D1> + SameNumberOfColumns<Const<1>, Const<1>, Representative = Const<1>>, D1: DimName, D2: Dim, SB: Storage<T, D2>, DefaultAllocator: Allocator<D1>,

§

type Output = OPoint<T, D1>

source§

impl<T, D> Sub for OPoint<T, D>
where T: Scalar + ClosedSubAssign, ShapeConstraint: SameNumberOfRows<D, D, Representative = D> + SameNumberOfColumns<Const<1>, Const<1>, Representative = Const<1>>, D: DimName, DefaultAllocator: Allocator<D>,

§

type Output = Matrix<T, D, Const<1>, <DefaultAllocator as Allocator<D>>::Buffer<T>>

source§

impl<T, R1, C1, R2, C2, SA, SB> Sub<Matrix<T, R2, C2, SB>> for Matrix<T, R1, C1, SA>
where R1: Dim, C1: Dim, R2: Dim, C2: Dim, T: Scalar + ClosedSubAssign, SA: Storage<T, R1, C1>, SB: Storage<T, R2, C2>, DefaultAllocator: SameShapeAllocator<R1, C1, R2, C2>, ShapeConstraint: SameNumberOfRows<R1, R2> + SameNumberOfColumns<C1, C2>,

1.0.0 · source§

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

§

type Output = HashSet<T, S>

source§

impl<T, const N: usize> Sub<&Simd<T, N>> for Simd<T, N>
where T: SimdElement, Simd<T, N>: Sub<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

impl<T, const N: usize> Sub<Simd<T, N>> for &Simd<T, N>
where T: SimdElement, Simd<T, N>: Sub<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

impl<U> Sub<B1> for UInt<U, B0>
where U: Unsigned + Sub<B1>, <U as Sub<B1>>::Output: Unsigned,

UInt<U, B0> - B1 = UInt<U - B1, B1>

§

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

source§

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

Z0 - N = P

§

type Output = PInt<U>

source§

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

Z0 - P = N

§

type Output = NInt<U>

source§

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

NInt - Z0 = NInt

§

type Output = NInt<U>

source§

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

PInt - Z0 = PInt

§

type Output = PInt<U>

source§

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

UInt - B0 = UInt

§

type Output = UInt<U, B>

source§

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

UInt<U, B1> - B1 = UInt<U, B0>

§

type Output = UInt<UInt<U, B>, B0>

source§

impl<Ul, Bl, Ur> Sub<Ur> for UInt<Ul, Bl>
where Ul: Unsigned, Bl: Bit, Ur: Unsigned, UInt<Ul, Bl>: PrivateSub<Ur>, <UInt<Ul, Bl> as PrivateSub<Ur>>::Output: Trim,

Subtracting unsigned integers. We just do our PrivateSub and then Trim the output.

§

type Output = <<UInt<Ul, Bl> as PrivateSub<Ur>>::Output as Trim>::Output

source§

impl<Ul, Ur> Sub<NInt<Ur>> for NInt<Ul>
where Ul: Unsigned + NonZero, Ur: Unsigned + NonZero + Cmp<Ul> + PrivateIntegerAdd<<Ur as Cmp<Ul>>::Output, Ul>,

N(Ul) - N(Ur): We resolve this with our PrivateAdd

§

type Output = <Ur as PrivateIntegerAdd<<Ur as Cmp<Ul>>::Output, Ul>>::Output

source§

impl<Ul, Ur> Sub<NInt<Ur>> for PInt<Ul>
where Ul: Unsigned + NonZero + Add<Ur>, Ur: Unsigned + NonZero, <Ul as Add<Ur>>::Output: Unsigned + NonZero,

P(Ul) - N(Ur) = P(Ul + Ur)

§

type Output = PInt<<Ul as Add<Ur>>::Output>

source§

impl<Ul, Ur> Sub<PInt<Ur>> for NInt<Ul>
where Ul: Unsigned + NonZero + Add<Ur>, Ur: Unsigned + NonZero, <Ul as Add<Ur>>::Output: Unsigned + NonZero,

N(Ul) - P(Ur) = N(Ul + Ur)

§

type Output = NInt<<Ul as Add<Ur>>::Output>

source§

impl<Ul, Ur> Sub<PInt<Ur>> for PInt<Ul>
where Ul: Unsigned + NonZero + Cmp<Ur> + PrivateIntegerAdd<<Ul as Cmp<Ur>>::Output, Ur>, Ur: Unsigned + NonZero,

P(Ul) - P(Ur): We resolve this with our PrivateAdd

§

type Output = <Ul as PrivateIntegerAdd<<Ul as Cmp<Ur>>::Output, Ur>>::Output

source§

impl<Vl, Al, Vr, Ar> Sub<TArr<Vr, Ar>> for TArr<Vl, Al>
where Vl: Sub<Vr>, Al: Sub<Ar>,

§

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

source§

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

§

type Output = Simd<f32, N>

source§

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

§

type Output = Simd<f64, N>

source§

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

§

type Output = Simd<i8, N>

source§

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

§

type Output = Simd<i16, N>

source§

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

§

type Output = Simd<i32, N>

source§

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

§

type Output = Simd<i64, N>

source§

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

§

type Output = Simd<isize, N>

source§

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

§

type Output = Simd<u8, N>

source§

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

§

type Output = Simd<u16, N>

source§

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

§

type Output = Simd<u32, N>

source§

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

§

type Output = Simd<u64, N>

source§

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

§

type Output = Simd<usize, N>