Trait 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

1.0.0 · Source§

impl Sub for f32

1.0.0 · Source§

impl Sub for f64

1.0.0 · Source§

impl Sub for f128

1.0.0 · Source§

impl Sub for i8

1.0.0 · Source§

impl Sub for i16

1.0.0 · Source§

impl Sub for i32

1.0.0 · Source§

impl Sub for i64

1.0.0 · Source§

impl Sub for i128

1.0.0 · Source§

impl Sub for isize

1.0.0 · Source§

impl Sub for u8

1.0.0 · Source§

impl Sub for u16

1.0.0 · Source§

impl Sub for u32

1.0.0 · Source§

impl Sub for u64

1.0.0 · Source§

impl Sub for u128

1.0.0 · Source§

impl Sub for usize

Source§

impl Sub for Mod

Source§

impl Sub for f16

Source§

impl Sub for Assume

1.3.0 · Source§

impl Sub for Duration

1.8.0 · Source§

impl Sub for grafix_toolbox::stdlib::time::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

Source§

impl Sub for m128

Source§

impl Sub for m128d

Source§

impl Sub for AutoSimd<[f32; 2]>

Source§

impl Sub for AutoSimd<[f32; 4]>

Source§

impl Sub for AutoSimd<[f32; 8]>

Source§

impl Sub for AutoSimd<[f32; 16]>

Source§

impl Sub for AutoSimd<[f64; 2]>

Source§

impl Sub for AutoSimd<[f64; 4]>

Source§

impl Sub for AutoSimd<[f64; 8]>

Source§

impl Sub for AutoSimd<[i8; 2]>

Source§

impl Sub for AutoSimd<[i8; 4]>

Source§

impl Sub for AutoSimd<[i8; 8]>

Source§

impl Sub for AutoSimd<[i8; 16]>

Source§

impl Sub for AutoSimd<[i8; 32]>

Source§

impl Sub for AutoSimd<[i16; 2]>

Source§

impl Sub for AutoSimd<[i16; 4]>

Source§

impl Sub for AutoSimd<[i16; 8]>

Source§

impl Sub for AutoSimd<[i16; 16]>

Source§

impl Sub for AutoSimd<[i16; 32]>

Source§

impl Sub for AutoSimd<[i32; 2]>

Source§

impl Sub for AutoSimd<[i32; 4]>

Source§

impl Sub for AutoSimd<[i32; 8]>

Source§

impl Sub for AutoSimd<[i32; 16]>

Source§

impl Sub for AutoSimd<[i64; 2]>

Source§

impl Sub for AutoSimd<[i64; 4]>

Source§

impl Sub for AutoSimd<[i64; 8]>

Source§

impl Sub for AutoSimd<[i128; 1]>

Source§

impl Sub for AutoSimd<[i128; 2]>

Source§

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

Source§

impl Sub for AutoSimd<[u8; 4]>

Source§

impl Sub for AutoSimd<[u8; 8]>

Source§

impl Sub for AutoSimd<[u8; 16]>

Source§

impl Sub for AutoSimd<[u8; 32]>

Source§

impl Sub for AutoSimd<[u16; 2]>

Source§

impl Sub for AutoSimd<[u16; 4]>

Source§

impl Sub for AutoSimd<[u16; 8]>

Source§

impl Sub for AutoSimd<[u16; 16]>

Source§

impl Sub for AutoSimd<[u16; 32]>

Source§

impl Sub for AutoSimd<[u32; 2]>

Source§

impl Sub for AutoSimd<[u32; 4]>

Source§

impl Sub for AutoSimd<[u32; 8]>

Source§

impl Sub for AutoSimd<[u32; 16]>

Source§

impl Sub for AutoSimd<[u64; 2]>

Source§

impl Sub for AutoSimd<[u64; 4]>

Source§

impl Sub for AutoSimd<[u64; 8]>

Source§

impl Sub for AutoSimd<[u128; 1]>

Source§

impl Sub for AutoSimd<[u128; 2]>

Source§

impl Sub for 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 tokio::time::instant::Instant

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

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

Source§

impl Sub<&f16> for &f16

Source§

impl Sub<&f16> for f16

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

Source§

impl Sub<&bf16> for bf16

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

Source§

impl Sub<f16> for &f16

1.8.0 · Source§

impl Sub<Duration> for grafix_toolbox::stdlib::time::Instant

1.8.0 · Source§

impl Sub<Duration> for SystemTime

Source§

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

Source§

impl Sub<bf16> for &bf16

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

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

Source§

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

Source§

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

Source§

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

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

Source§

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

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,

Source§

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

Source§

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

Source§

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

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,

Source§

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

Source§

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

Source§

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

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

Source§

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

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

Source§

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

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,

Source§

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,

Source§

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

Source§

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

Source§

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

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

Source§

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

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,

Source§

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,

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>