1.0.0[][src]Trait tract_nnef::internal::tract_downcast_rs::__std::ops::Sub

#[lang = "sub"]pub trait Sub<Rhs = Self> {
    type Output;
#[must_use]    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 = Point;

    fn sub(self, other: Point) -> Point {
        Point {
            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

The resulting type after applying the - operator.

Loading content...

Required methods

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

Performs the - operation.

Loading content...

Implementations on Foreign Types

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

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

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

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

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

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

impl Sub<u8> for u8[src]

type Output = u8

impl Sub<i8> for i8[src]

type Output = i8

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

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

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

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

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

type Output = <u64 as Sub<u64>>::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

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

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

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

type Output = <f64 as Sub<f64>>::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<i32> for i32[src]

type Output = i32

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

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

impl Sub<u128> for u128[src]

type Output = u128

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl Sub<isize> for isize[src]

type Output = isize

impl Sub<f64> for f64[src]

type Output = f64

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

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

impl Sub<i64> for i64[src]

type Output = i64

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

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

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

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

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

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

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

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

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

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

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

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

impl Sub<f32> for f32[src]

type Output = f32

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

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

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

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

impl Sub<u64> for u64[src]

type Output = u64

impl Sub<u16> for u16[src]

type Output = u16

impl Sub<u32> for u32[src]

type Output = u32

impl Sub<i16> for i16[src]

type Output = i16

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

type Output = HashSet<T, S>

fn sub(self, rhs: &HashSet<T, S>) -> HashSet<T, S>

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

Examples

use hashbrown::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, 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 i64 where
    D: Dimension,
    S: Data<Elem = i64>, 
[src]

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

impl<S, D> Sub<ArrayBase<S, D>> for u64 where
    D: Dimension,
    S: DataOwned<Elem = u64> + 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<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 Complex<f32> where
    D: Dimension,
    S: Data<Elem = Complex<f32>>, 
[src]

type Output = ArrayBase<OwnedRepr<Complex<f32>>, 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 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 u32 where
    D: Dimension,
    S: DataOwned<Elem = u32> + 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<'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<'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<S, D> Sub<ArrayBase<S, D>> for i128 where
    D: Dimension,
    S: DataOwned<Elem = i128> + DataMut
[src]

type Output = ArrayBase<S, 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<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 i16 where
    D: Dimension,
    S: Data<Elem = i16>, 
[src]

type Output = ArrayBase<OwnedRepr<i16>, 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<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 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 u32 where
    D: Dimension,
    S: Data<Elem = u32>, 
[src]

type Output = ArrayBase<OwnedRepr<u32>, 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 u64 where
    D: Dimension,
    S: Data<Elem = u64>, 
[src]

type Output = ArrayBase<OwnedRepr<u64>, 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 u128 where
    D: Dimension,
    S: DataOwned<Elem = u128> + DataMut
[src]

type Output = ArrayBase<S, 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 u128 where
    D: Dimension,
    S: Data<Elem = u128>, 
[src]

type Output = ArrayBase<OwnedRepr<u128>, 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 f32 where
    D: Dimension,
    S: DataOwned<Elem = f32> + DataMut
[src]

type Output = ArrayBase<S, D>

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

type Output = Complex<i8>

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

type Output = Complex<f64>

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

type Output = Complex<i8>

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

type Output = Complex<usize>

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

type Output = Complex<u64>

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

type Output = Complex<T>

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

type Output = Complex<i32>

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

type Output = Complex<f32>

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

type Output = Complex<T>

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

type Output = Complex<T>

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

type Output = Complex<T>

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

type Output = Complex<isize>

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

type Output = Complex<i32>

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

type Output = Complex<isize>

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

type Output = Complex<i64>

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

type Output = Complex<u16>

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> Sub<&'a Complex<u32>> for u32[src]

type Output = Complex<u32>

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

type Output = Complex<i128>

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

type Output = Complex<u32>

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

type Output = Complex<i64>

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

type Output = Complex<u32>

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

type Output = Complex<i128>

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

type Output = Complex<i16>

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

type Output = Complex<T>

impl<'a> Sub<&'a 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> Sub<&'a Complex<u16>> for u16[src]

type Output = Complex<u16>

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

type Output = Complex<i64>

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

type Output = Complex<u128>

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

type Output = Complex<u8>

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

type Output = Complex<u8>

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

type Output = Complex<u16>

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

type Output = Complex<u64>

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

type Output = Complex<u64>

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

type Output = Complex<u128>

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

type Output = Complex<i8>

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

type Output = Complex<f32>

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

type Output = Complex<usize>

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<'a, 'b> Sub<&'a Complex<usize>> for &'b usize[src]

type Output = Complex<usize>

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

type Output = Complex<u128>

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

type Output = Complex<u128>

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

type Output = Complex<i64>

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

type Output = Complex<i8>

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

type Output = Complex<T>

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

type Output = Complex<i16>

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

type Output = Complex<T>

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

type Output = Complex<usize>

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

type Output = Complex<u32>

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

type Output = Complex<isize>

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

type Output = Complex<f32>

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

type Output = Complex<u64>

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

type Output = Complex<u8>

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

type Output = Complex<i16>

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

type Output = Complex<i16>

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

type Output = Complex<i32>

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

type Output = Complex<i32>

impl<'a> Sub<&'a 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<u16>> for &'b u16[src]

type Output = Complex<u16>

impl<'a, T> Sub<&'a Complex<T>> for 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<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 Duration[src]

type Output = Duration

impl Sub<Duration> for Instant[src]

type Output = Instant

impl Sub<Duration> for SystemTime[src]

type Output = SystemTime

impl Sub<Instant> for Instant[src]

type Output = Duration

impl Sub<f16> for f16

type Output = f16

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

type Output = f16

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

type Output = BTreeSet<T>

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 &'_ tract_nnef::internal::tract_downcast_rs::__std::collections::HashSet<T, S> where
    S: BuildHasher + Default,
    T: Eq + Hash + Clone
[src]

type Output = HashSet<T, S>

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[src]

type Output = TDim

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl<'a> Sub<Wrapping<usize>> for &'a Wrapping<usize>[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
    A: Clone + Sub<B, Output = A>,
    B: Clone,
    D: Dimension,
    E: Dimension,
    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, rhs is broadcast to the shape of self.

Panics if broadcasting isn’t possible.

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

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

Perform elementwise subtraction between self and reference rhs, and return the result (based on self).

If their shapes disagree, rhs is broadcast to the shape of self.

Panics if broadcasting isn’t possible.

type Output = ArrayBase<S, D>

impl<'a, A, S, D, B> Sub<B> for &'a ArrayBase<S, D> where
    A: Clone + Sub<B, Output = A>,
    B: ScalarOperand,
    D: Dimension,
    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
    A: Clone + Sub<B, Output = A>,
    B: Clone,
    D: Dimension,
    E: Dimension,
    S: DataOwned<Elem = A> + DataMut,
    S2: Data<Elem = B>, 
[src]

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

self must be an Array or ArcArray.

If their shapes disagree, rhs is broadcast to the shape of self.

Panics if broadcasting isn’t possible.

type Output = ArrayBase<S, D>

impl<A, S, D, B> Sub<B> for ArrayBase<S, D> where
    A: Clone + Sub<B, Output = A>,
    B: ScalarOperand,
    D: Dimension,
    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>, 
[src]

type Output = TDim

Loading content...