Trait tract_nnef::internal::tract_downcast_rs::__std::ops::Sub1.0.0[][src]

#[lang = "sub"]
pub trait Sub<Rhs = Self> {
    type Output;
    #[must_use]
    pub fn sub(self, rhs: Rhs) -> Self::Output;
}

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 });

Associated Types

type Output[src]

The resulting type after applying the - operator.

Loading content...

Required methods

#[must_use]
pub fn sub(self, rhs: Rhs) -> Self::Output
[src]

Performs the - operation.

Example

assert_eq!(12 - 1, 11);
Loading content...

Implementations on Foreign Types

impl Sub<i8> for i8[src]

type Output = i8

impl<'_, '_> Sub<&'_ i16> for &'_ i16[src]

type Output = <i16 as Sub<i16>>::Output

impl<'_, '_> Sub<&'_ u64> for &'_ u64[src]

type Output = <u64 as Sub<u64>>::Output

impl<'a> Sub<i64> for &'a i64[src]

type Output = <i64 as Sub<i64>>::Output

impl<'a> Sub<u32> for &'a u32[src]

type Output = <u32 as Sub<u32>>::Output

impl Sub<usize> for usize[src]

type Output = usize

impl<'_, '_> Sub<&'_ i8> for &'_ i8[src]

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

impl Sub<i32> for i32[src]

type Output = i32

impl<'_, '_> Sub<&'_ u16> for &'_ u16[src]

type Output = <u16 as Sub<u16>>::Output

impl<'_> Sub<&'_ i128> for i128[src]

type Output = <i128 as Sub<i128>>::Output

impl<'_, '_> Sub<&'_ isize> for &'_ isize[src]

type Output = <isize as Sub<isize>>::Output

impl<'a> Sub<i32> for &'a i32[src]

type Output = <i32 as Sub<i32>>::Output

impl<'a> Sub<i8> for &'a i8[src]

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

impl<'a> Sub<i128> for &'a i128[src]

type Output = <i128 as Sub<i128>>::Output

impl<'_> Sub<&'_ i64> for i64[src]

type Output = <i64 as Sub<i64>>::Output

impl<'_, '_> Sub<&'_ u128> for &'_ u128[src]

type Output = <u128 as Sub<u128>>::Output

impl<'a> Sub<isize> for &'a isize[src]

type Output = <isize as Sub<isize>>::Output

impl<'_, '_> Sub<&'_ f64> for &'_ f64[src]

type Output = <f64 as Sub<f64>>::Output

impl<'a> Sub<u16> for &'a u16[src]

type Output = <u16 as Sub<u16>>::Output

impl Sub<u8> for u8[src]

type Output = u8

impl<'a> Sub<u64> for &'a u64[src]

type Output = <u64 as Sub<u64>>::Output

impl<'_> Sub<&'_ f64> for f64[src]

type Output = <f64 as Sub<f64>>::Output

impl Sub<u16> for u16[src]

type Output = u16

impl Sub<u128> for u128[src]

type Output = u128

impl<'_> Sub<&'_ isize> for isize[src]

type Output = <isize as Sub<isize>>::Output

impl<'a> Sub<u128> for &'a u128[src]

type Output = <u128 as Sub<u128>>::Output

impl<'_, '_> Sub<&'_ i32> for &'_ i32[src]

type Output = <i32 as Sub<i32>>::Output

impl<'_> Sub<&'_ u64> for u64[src]

type Output = <u64 as Sub<u64>>::Output

impl<'_, '_> Sub<&'_ i128> for &'_ i128[src]

type Output = <i128 as Sub<i128>>::Output

impl<'_, '_> Sub<&'_ u32> for &'_ u32[src]

type Output = <u32 as Sub<u32>>::Output

impl Sub<u32> for u32[src]

type Output = u32

impl<'_, '_> Sub<&'_ i64> for &'_ i64[src]

type Output = <i64 as Sub<i64>>::Output

impl Sub<f64> for f64[src]

type Output = f64

impl<'_> Sub<&'_ usize> for usize[src]

type Output = <usize as Sub<usize>>::Output

impl Sub<isize> for isize[src]

type Output = isize

impl<'a> Sub<f32> for &'a f32[src]

type Output = <f32 as Sub<f32>>::Output

impl<'_> Sub<&'_ u8> for u8[src]

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

impl<'_> Sub<&'_ i32> for i32[src]

type Output = <i32 as Sub<i32>>::Output

impl<'_> Sub<&'_ u16> for u16[src]

type Output = <u16 as Sub<u16>>::Output

impl Sub<i64> for i64[src]

type Output = i64

impl<'a> Sub<usize> for &'a usize[src]

type Output = <usize as Sub<usize>>::Output

impl<'_> Sub<&'_ u128> for u128[src]

type Output = <u128 as Sub<u128>>::Output

impl<'_, '_> Sub<&'_ usize> for &'_ usize[src]

type Output = <usize as Sub<usize>>::Output

impl Sub<i16> for i16[src]

type Output = i16

impl Sub<i128> for i128[src]

type Output = i128

impl Sub<u64> for u64[src]

type Output = u64

impl<'_, '_> Sub<&'_ f32> for &'_ f32[src]

type Output = <f32 as Sub<f32>>::Output

impl<'_> Sub<&'_ i8> for i8[src]

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

impl Sub<f32> for f32[src]

type Output = f32

impl<'a> Sub<i16> for &'a i16[src]

type Output = <i16 as Sub<i16>>::Output

impl<'_> Sub<&'_ i16> for i16[src]

type Output = <i16 as Sub<i16>>::Output

impl<'_> Sub<&'_ f32> for f32[src]

type Output = <f32 as Sub<f32>>::Output

impl<'a> Sub<u8> for &'a u8[src]

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

impl<'_> Sub<&'_ u32> for u32[src]

type Output = <u32 as Sub<u32>>::Output

impl<'_, '_> Sub<&'_ u8> for &'_ u8[src]

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

impl<'a> Sub<f64> for &'a f64[src]

type Output = <f64 as Sub<f64>>::Output

impl<S, D> Sub<ArrayBase<S, D>> for u64 where
    D: Dimension,
    S: DataOwned<Elem = u64> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for u64 where
    D: Dimension,
    S: Data<Elem = u64>, 
[src]

type Output = ArrayBase<OwnedRepr<u64>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for f32 where
    D: Dimension,
    S: Data<Elem = f32>, 
[src]

type Output = ArrayBase<OwnedRepr<f32>, D>

impl<S, D> Sub<ArrayBase<S, D>> for u32 where
    D: Dimension,
    S: DataOwned<Elem = u32> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<S, D> Sub<ArrayBase<S, D>> for i128 where
    D: Dimension,
    S: DataOwned<Elem = i128> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<S, D> Sub<ArrayBase<S, D>> for i8 where
    D: Dimension,
    S: DataOwned<Elem = i8> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for i8 where
    D: Dimension,
    S: Data<Elem = i8>, 
[src]

type Output = ArrayBase<OwnedRepr<i8>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for u8 where
    D: Dimension,
    S: Data<Elem = u8>, 
[src]

type Output = ArrayBase<OwnedRepr<u8>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for u128 where
    D: Dimension,
    S: Data<Elem = u128>, 
[src]

type Output = ArrayBase<OwnedRepr<u128>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for u16 where
    D: Dimension,
    S: Data<Elem = u16>, 
[src]

type Output = ArrayBase<OwnedRepr<u16>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for Complex<f64> where
    D: Dimension,
    S: Data<Elem = Complex<f64>>, 
[src]

type Output = ArrayBase<OwnedRepr<Complex<f64>>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for i32 where
    D: Dimension,
    S: Data<Elem = i32>, 
[src]

type Output = ArrayBase<OwnedRepr<i32>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for u32 where
    D: Dimension,
    S: Data<Elem = u32>, 
[src]

type Output = ArrayBase<OwnedRepr<u32>, D>

impl<S, D> Sub<ArrayBase<S, D>> for u8 where
    D: Dimension,
    S: DataOwned<Elem = u8> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<S, D> Sub<ArrayBase<S, D>> for i64 where
    D: Dimension,
    S: DataOwned<Elem = i64> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<S, D> Sub<ArrayBase<S, D>> for f32 where
    D: Dimension,
    S: DataOwned<Elem = f32> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<S, D> Sub<ArrayBase<S, D>> for f64 where
    D: Dimension,
    S: DataOwned<Elem = f64> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<S, D> Sub<ArrayBase<S, D>> for Complex<f64> where
    D: Dimension,
    S: DataOwned<Elem = Complex<f64>> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<S, D> Sub<ArrayBase<S, D>> for i16 where
    D: Dimension,
    S: DataOwned<Elem = i16> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<S, D> Sub<ArrayBase<S, D>> for Complex<f32> where
    D: Dimension,
    S: DataOwned<Elem = Complex<f32>> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for f64 where
    D: Dimension,
    S: Data<Elem = f64>, 
[src]

type Output = ArrayBase<OwnedRepr<f64>, D>

impl<S, D> Sub<ArrayBase<S, D>> for u16 where
    D: Dimension,
    S: DataOwned<Elem = u16> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for Complex<f32> where
    D: Dimension,
    S: Data<Elem = Complex<f32>>, 
[src]

type Output = ArrayBase<OwnedRepr<Complex<f32>>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for i128 where
    D: Dimension,
    S: Data<Elem = i128>, 
[src]

type Output = ArrayBase<OwnedRepr<i128>, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for i16 where
    D: Dimension,
    S: Data<Elem = i16>, 
[src]

type Output = ArrayBase<OwnedRepr<i16>, D>

impl<S, D> Sub<ArrayBase<S, D>> for i32 where
    D: Dimension,
    S: DataOwned<Elem = i32> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<'a, S, D> Sub<&'a ArrayBase<S, D>> for i64 where
    D: Dimension,
    S: Data<Elem = i64>, 
[src]

type Output = ArrayBase<OwnedRepr<i64>, D>

impl<S, D> Sub<ArrayBase<S, D>> for u128 where
    D: Dimension,
    S: DataOwned<Elem = u128> + DataMut
[src]

type Output = ArrayBase<S, D>

impl<'a> Sub<&'a Complex<u16>> for u16[src]

type Output = Complex<u16>

impl<'a> Sub<Complex<u16>> for &'a u16[src]

type Output = Complex<u16>

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

type Output = Complex<i8>

impl Sub<Complex<u128>> for u128[src]

type Output = Complex<u128>

impl<'a> Sub<&'a Complex<i16>> for i16[src]

type Output = Complex<i16>

impl<'a> Sub<Complex<i16>> for &'a i16[src]

type Output = Complex<i16>

impl<'a> Sub<&'a Complex<u8>> for u8[src]

type Output = Complex<u8>

impl<'a> Sub<Complex<u32>> for &'a u32[src]

type Output = Complex<u32>

impl Sub<Complex<i8>> for i8[src]

type Output = Complex<i8>

impl<'a> Sub<&'a Complex<i64>> for i64[src]

type Output = Complex<i64>

impl<T> Sub<Complex<T>> for Complex<T> where
    T: Clone + Num
[src]

type Output = Complex<T>

impl<'a> Sub<Complex<i8>> for &'a i8[src]

type Output = Complex<i8>

impl<'a> Sub<&'a Complex<usize>> for usize[src]

type Output = Complex<usize>

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

type Output = Complex<u32>

impl<'a> Sub<&'a Complex<u32>> for u32[src]

type Output = Complex<u32>

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

type Output = Complex<T>

impl<'a> Sub<&'a Complex<u128>> for u128[src]

type Output = Complex<u128>

impl Sub<Complex<isize>> for isize[src]

type Output = Complex<isize>

impl Sub<Complex<i64>> for i64[src]

type Output = Complex<i64>

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

type Output = Complex<f64>

impl Sub<Complex<i16>> for i16[src]

type Output = Complex<i16>

impl<'a> Sub<Complex<usize>> for &'a usize[src]

type Output = Complex<usize>

impl Sub<Complex<i32>> for i32[src]

type Output = Complex<i32>

impl Sub<Complex<u8>> for u8[src]

type Output = Complex<u8>

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

type Output = Complex<f32>

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

type Output = Complex<i32>

impl<'a> Sub<Complex<u8>> for &'a u8[src]

type Output = Complex<u8>

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

type Output = Complex<T>

impl<'a> Sub<Complex<i32>> for &'a i32[src]

type Output = Complex<i32>

impl<'a> Sub<&'a Complex<isize>> for isize[src]

type Output = Complex<isize>

impl<'a> Sub<Complex<isize>> for &'a isize[src]

type Output = Complex<isize>

impl<'a> Sub<&'a Complex<u64>> for u64[src]

type Output = Complex<u64>

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

type Output = Complex<i128>

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

type Output = Complex<u8>

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

type Output = Complex<i16>

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

type Output = Complex<T>

impl<'a> Sub<&'a Complex<f32>> for f32[src]

type Output = Complex<f32>

impl<'a> Sub<Complex<f32>> for &'a f32[src]

type Output = Complex<f32>

impl Sub<Complex<u16>> for u16[src]

type Output = Complex<u16>

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

type Output = Complex<u16>

impl Sub<Complex<i128>> for i128[src]

type Output = Complex<i128>

impl<'a> Sub<Complex<i128>> for &'a i128[src]

type Output = Complex<i128>

impl Sub<Complex<usize>> for usize[src]

type Output = Complex<usize>

impl Sub<Complex<u64>> for u64[src]

type Output = Complex<u64>

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

type Output = Complex<u128>

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

type Output = Complex<T>

impl Sub<Complex<f32>> for f32[src]

type Output = Complex<f32>

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

type Output = Complex<i64>

impl<'a> Sub<Complex<i64>> for &'a i64[src]

type Output = Complex<i64>

impl<'a> Sub<Complex<u128>> for &'a u128[src]

type Output = Complex<u128>

impl<'a> Sub<Complex<f64>> for &'a f64[src]

type Output = Complex<f64>

impl Sub<Complex<f64>> for f64[src]

type Output = Complex<f64>

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

type Output = Complex<isize>

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

type Output = Complex<T>

impl<'a> Sub<&'a Complex<i8>> for i8[src]

type Output = Complex<i8>

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

type Output = Complex<u64>

impl Sub<Complex<u32>> for u32[src]

type Output = Complex<u32>

impl<'a> Sub<&'a Complex<i32>> for i32[src]

type Output = Complex<i32>

impl<'a> Sub<Complex<u64>> for &'a u64[src]

type Output = Complex<u64>

impl<T> Sub<T> for Complex<T> where
    T: Clone + Num
[src]

type Output = Complex<T>

impl<'a> Sub<&'a Complex<i128>> for i128[src]

type Output = Complex<i128>

impl<'a> Sub<&'a Complex<f64>> for f64[src]

type Output = Complex<f64>

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

type Output = Complex<usize>

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

type Output = Complex<T>

Loading content...

Implementors

impl Sub<usize> for Dim<[usize; 1]>[src]

type Output = Dim<[usize; 1]>

impl Sub<f16> for f16

type Output = f16

impl Sub<Wrapping<i8>> for Wrapping<i8>[src]

type Output = Wrapping<i8>

impl Sub<Wrapping<i16>> for Wrapping<i16>[src]

type Output = Wrapping<i16>

impl Sub<Wrapping<i32>> for Wrapping<i32>[src]

type Output = Wrapping<i32>

impl Sub<Wrapping<i64>> for Wrapping<i64>[src]

type Output = Wrapping<i64>

impl Sub<Wrapping<i128>> for Wrapping<i128>[src]

type Output = Wrapping<i128>

impl Sub<Wrapping<isize>> for Wrapping<isize>[src]

type Output = Wrapping<isize>

impl Sub<Wrapping<u8>> for Wrapping<u8>[src]

type Output = Wrapping<u8>

impl Sub<Wrapping<u16>> for Wrapping<u16>[src]

type Output = Wrapping<u16>

impl Sub<Wrapping<u32>> for Wrapping<u32>[src]

type Output = Wrapping<u32>

impl Sub<Wrapping<u64>> for Wrapping<u64>[src]

type Output = Wrapping<u64>

impl Sub<Wrapping<u128>> for Wrapping<u128>[src]

type Output = Wrapping<u128>

impl Sub<Wrapping<usize>> for Wrapping<usize>[src]

type Output = Wrapping<usize>

impl Sub<Duration> for Duration1.3.0[src]

type Output = Duration

impl Sub<Duration> for Instant1.8.0[src]

type Output = Instant

impl Sub<Duration> for SystemTime1.8.0[src]

type Output = SystemTime

impl Sub<Instant> for Instant1.8.0[src]

type Output = Duration

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

type Output = f16

impl<'_> Sub<&'_ Wrapping<i8>> for Wrapping<i8>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<i16>> for Wrapping<i16>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<i32>> for Wrapping<i32>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<i64>> for Wrapping<i64>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<i128>> for Wrapping<i128>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<isize>> for Wrapping<isize>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<u8>> for Wrapping<u8>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<u16>> for Wrapping<u16>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<u32>> for Wrapping<u32>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<u64>> for Wrapping<u64>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<u128>> for Wrapping<u128>1.14.0[src]

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

impl<'_> Sub<&'_ Wrapping<usize>> for Wrapping<usize>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<i8>> for &'_ Wrapping<i8>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<i16>> for &'_ Wrapping<i16>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<i32>> for &'_ Wrapping<i32>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<i64>> for &'_ Wrapping<i64>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<i128>> for &'_ Wrapping<i128>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<isize>> for &'_ Wrapping<isize>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<u8>> for &'_ Wrapping<u8>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<u16>> for &'_ Wrapping<u16>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<u32>> for &'_ Wrapping<u32>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<u64>> for &'_ Wrapping<u64>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<u128>> for &'_ Wrapping<u128>1.14.0[src]

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

impl<'_, '_> Sub<&'_ Wrapping<usize>> for &'_ Wrapping<usize>1.14.0[src]

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

impl<'_, '_, T> Sub<&'_ BTreeSet<T>> for &'_ BTreeSet<T> where
    T: Ord + Clone
[src]

type Output = BTreeSet<T>

pub fn sub(self, rhs: &BTreeSet<T>) -> BTreeSet<T>[src]

Returns the difference of self and rhs as a new BTreeSet<T>.

Examples

use std::collections::BTreeSet;

let a: BTreeSet<_> = vec![1, 2, 3].into_iter().collect();
let b: BTreeSet<_> = vec![3, 4, 5].into_iter().collect();

let result = &a - &b;
let result_vec: Vec<_> = result.into_iter().collect();
assert_eq!(result_vec, [1, 2]);

impl<'_, '_, T, S> Sub<&'_ HashSet<T, S>> for &'_ HashSet<T, S> where
    T: Eq + Hash + Clone,
    S: BuildHasher + Default
[src]

type Output = HashSet<T, S>

pub fn sub(self, rhs: &HashSet<T, S>) -> HashSet<T, S>[src]

Returns the difference of self and rhs as a new HashSet<T, S>.

Examples

use std::collections::HashSet;

let a: HashSet<_> = vec![1, 2, 3].into_iter().collect();
let b: HashSet<_> = vec![3, 4, 5].into_iter().collect();

let set = &a - &b;

let mut i = 0;
let expected = [1, 2];
for x in &set {
    assert!(expected.contains(x));
    i += 1;
}
assert_eq!(i, expected.len());

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

type Output = TDim

impl<'a> Sub<Wrapping<i8>> for &'a Wrapping<i8>1.14.0[src]

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

impl<'a> Sub<Wrapping<i16>> for &'a Wrapping<i16>1.14.0[src]

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

impl<'a> Sub<Wrapping<i32>> for &'a Wrapping<i32>1.14.0[src]

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

impl<'a> Sub<Wrapping<i64>> for &'a Wrapping<i64>1.14.0[src]

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

impl<'a> Sub<Wrapping<i128>> for &'a Wrapping<i128>1.14.0[src]

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

impl<'a> Sub<Wrapping<isize>> for &'a Wrapping<isize>1.14.0[src]

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

impl<'a> Sub<Wrapping<u8>> for &'a Wrapping<u8>1.14.0[src]

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

impl<'a> Sub<Wrapping<u16>> for &'a Wrapping<u16>1.14.0[src]

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

impl<'a> Sub<Wrapping<u32>> for &'a Wrapping<u32>1.14.0[src]

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

impl<'a> Sub<Wrapping<u64>> for &'a Wrapping<u64>1.14.0[src]

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

impl<'a> Sub<Wrapping<u128>> for &'a Wrapping<u128>1.14.0[src]

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

impl<'a> Sub<Wrapping<usize>> for &'a Wrapping<usize>1.14.0[src]

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

impl<'a, A, B, S, S2, D, E> Sub<&'a ArrayBase<S2, E>> for &'a ArrayBase<S, D> where
    E: Dimension,
    D: Dimension + DimMax<E>,
    A: Clone + Sub<B, Output = A>,
    B: Clone,
    S: Data<Elem = A>,
    S2: Data<Elem = B>, 
[src]

Perform elementwise subtraction between references self and rhs, and return the result as a new Array.

If their shapes disagree, self and rhs is broadcast to their broadcast shape, cloning the data if needed.

Panics if broadcasting isn’t possible.

type Output = ArrayBase<OwnedRepr<A>, <D as DimMax<E>>::Output>

impl<'a, A, B, S, S2, D, E> Sub<&'a ArrayBase<S2, E>> for ArrayBase<S, D> where
    E: Dimension,
    D: Dimension + DimMax<E>,
    A: Clone + Sub<B, Output = A>,
    B: Clone,
    S: DataOwned<Elem = A> + DataMut,
    S2: Data<Elem = B>, 
[src]

Perform elementwise subtraction between self and reference rhs, and return the result.

rhs must be an Array or ArcArray.

If their shapes disagree, self is broadcast to their broadcast shape, cloning the data if needed.

Panics if broadcasting isn’t possible.

type Output = ArrayBase<S, <D as DimMax<E>>::Output>

impl<'a, A, B, S, S2, D, E> Sub<ArrayBase<S2, E>> for &'a ArrayBase<S, D> where
    E: Dimension + DimMax<D>,
    D: Dimension,
    A: Clone + Sub<B, Output = B>,
    B: Clone,
    S: Data<Elem = A>,
    S2: DataOwned<Elem = B> + DataMut
[src]

Perform elementwise subtraction between reference self and rhs, and return the result.

rhs must be an Array or ArcArray.

If their shapes disagree, self is broadcast to their broadcast shape, cloning the data if needed.

Panics if broadcasting isn’t possible.

type Output = ArrayBase<S2, <E as DimMax<D>>::Output>

impl<'a, A, S, D, B> Sub<B> for &'a ArrayBase<S, D> where
    D: Dimension,
    A: Clone + Sub<B, Output = A>,
    B: ScalarOperand,
    S: Data<Elem = A>, 
[src]

Perform elementwise subtraction between the reference self and the scalar x, and return the result as a new Array.

type Output = ArrayBase<OwnedRepr<A>, D>

impl<A, B, S, S2, D, E> Sub<ArrayBase<S2, E>> for ArrayBase<S, D> where
    E: Dimension,
    D: Dimension + DimMax<E>,
    A: Clone + Sub<B, Output = A>,
    B: Clone,
    S: DataOwned<Elem = A> + DataMut,
    S2: Data<Elem = B>, 
[src]

Perform elementwise subtraction between self and rhs, and return the result.

self must be an Array or ArcArray.

If their shapes disagree, self is broadcast to their broadcast shape.

Panics if broadcasting isn’t possible.

type Output = ArrayBase<S, <D as DimMax<E>>::Output>

impl<A, S, D, B> Sub<B> for ArrayBase<S, D> where
    D: Dimension,
    A: Clone + Sub<B, Output = A>,
    B: ScalarOperand,
    S: DataOwned<Elem = A> + DataMut
[src]

Perform elementwise subtraction between self and the scalar x, and return the result (based on self).

self must be an Array or ArcArray.

type Output = ArrayBase<S, D>

impl<I> Sub<Dim<I>> for Dim<I> where
    Dim<I>: Dimension
[src]

type Output = Dim<I>

impl<I> Sub<I> for TDim where
    I: Into<TDim>, 

type Output = TDim

Loading content...