Trait Sub
pub trait Sub<Rhs = Self>
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 Sub;
assert_eq!;
Implementing Sub with generics
Here is an example of the same Point struct implementing the Sub trait
using generics.
use Sub;
// Notice that the implementation uses the associated type `Output`.
assert_eq!;
Associated Types
type Output;The resulting type after applying the
-operator.
Required Methods
fn sub(self, rhs: Rhs) -> Self::OutputPerforms the
-operation.Example
assert_eq!;
Implementors
impl Sub for Assumeimpl Sub for Durationimpl Sub for Saturating<i128>impl Sub for Saturating<i16>impl Sub for Saturating<i32>impl Sub for Saturating<i64>impl Sub for Saturating<i8>impl Sub for Saturating<isize>impl Sub for Saturating<u128>impl Sub for Saturating<u16>impl Sub for Saturating<u32>impl Sub for Saturating<u64>impl Sub for Saturating<u8>impl Sub for Saturating<usize>impl Sub for Wrapping<i128>impl Sub for Wrapping<i16>impl Sub for Wrapping<i32>impl Sub for Wrapping<i64>impl Sub for Wrapping<i8>impl Sub for Wrapping<isize>impl Sub for Wrapping<u128>impl Sub for Wrapping<u16>impl Sub for Wrapping<u32>impl Sub for Wrapping<u64>impl Sub for Wrapping<u8>impl Sub for Wrapping<usize>impl Sub for f128impl Sub for f16impl Sub for f32impl Sub for f64impl Sub for i128impl Sub for i16impl Sub for i32impl Sub for i64impl Sub for i8impl Sub for isizeimpl Sub for u128impl Sub for u16impl Sub for u32impl Sub for u64impl Sub for u8impl Sub for usizeimpl Sub<&Saturating<i128>> for &Saturating<i128>impl Sub<&Saturating<i128>> for Saturating<i128>impl Sub<&Saturating<i16>> for &Saturating<i16>impl Sub<&Saturating<i16>> for Saturating<i16>impl Sub<&Saturating<i32>> for &Saturating<i32>impl Sub<&Saturating<i32>> for Saturating<i32>impl Sub<&Saturating<i64>> for &Saturating<i64>impl Sub<&Saturating<i64>> for Saturating<i64>impl Sub<&Saturating<i8>> for &Saturating<i8>impl Sub<&Saturating<i8>> for Saturating<i8>impl Sub<&Saturating<isize>> for &Saturating<isize>impl Sub<&Saturating<isize>> for Saturating<isize>impl Sub<&Saturating<u128>> for &Saturating<u128>impl Sub<&Saturating<u128>> for Saturating<u128>impl Sub<&Saturating<u16>> for &Saturating<u16>impl Sub<&Saturating<u16>> for Saturating<u16>impl Sub<&Saturating<u32>> for &Saturating<u32>impl Sub<&Saturating<u32>> for Saturating<u32>impl Sub<&Saturating<u64>> for &Saturating<u64>impl Sub<&Saturating<u64>> for Saturating<u64>impl Sub<&Saturating<u8>> for &Saturating<u8>impl Sub<&Saturating<u8>> for Saturating<u8>impl Sub<&Saturating<usize>> for &Saturating<usize>impl Sub<&Saturating<usize>> for Saturating<usize>impl Sub<&Wrapping<i128>> for &Wrapping<i128>impl Sub<&Wrapping<i128>> for Wrapping<i128>impl Sub<&Wrapping<i16>> for &Wrapping<i16>impl Sub<&Wrapping<i16>> for Wrapping<i16>impl Sub<&Wrapping<i32>> for &Wrapping<i32>impl Sub<&Wrapping<i32>> for Wrapping<i32>impl Sub<&Wrapping<i64>> for &Wrapping<i64>impl Sub<&Wrapping<i64>> for Wrapping<i64>impl Sub<&Wrapping<i8>> for &Wrapping<i8>impl Sub<&Wrapping<i8>> for Wrapping<i8>impl Sub<&Wrapping<isize>> for &Wrapping<isize>impl Sub<&Wrapping<isize>> for Wrapping<isize>impl Sub<&Wrapping<u128>> for &Wrapping<u128>impl Sub<&Wrapping<u128>> for Wrapping<u128>impl Sub<&Wrapping<u16>> for &Wrapping<u16>impl Sub<&Wrapping<u16>> for Wrapping<u16>impl Sub<&Wrapping<u32>> for &Wrapping<u32>impl Sub<&Wrapping<u32>> for Wrapping<u32>impl Sub<&Wrapping<u64>> for &Wrapping<u64>impl Sub<&Wrapping<u64>> for Wrapping<u64>impl Sub<&Wrapping<u8>> for &Wrapping<u8>impl Sub<&Wrapping<u8>> for Wrapping<u8>impl Sub<&Wrapping<usize>> for &Wrapping<usize>impl Sub<&Wrapping<usize>> for Wrapping<usize>impl Sub<&f128> for &f128impl Sub<&f128> for f128impl Sub<&f16> for &f16impl Sub<&f16> for f16impl Sub<&f32> for &f32impl Sub<&f32> for f32impl Sub<&f64> for &f64impl Sub<&f64> for f64impl Sub<&i128> for &i128impl Sub<&i128> for i128impl Sub<&i16> for &i16impl Sub<&i16> for i16impl Sub<&i32> for &i32impl Sub<&i32> for i32impl Sub<&i64> for &i64impl Sub<&i64> for i64impl Sub<&i8> for &i8impl Sub<&i8> for i8impl Sub<&isize> for &isizeimpl Sub<&isize> for isizeimpl Sub<&u128> for &u128impl Sub<&u128> for u128impl Sub<&u16> for &u16impl Sub<&u16> for u16impl Sub<&u32> for &u32impl Sub<&u32> for u32impl Sub<&u64> for &u64impl Sub<&u64> for u64impl Sub<&u8> for &u8impl Sub<&u8> for u8impl Sub<&usize> for &usizeimpl Sub<&usize> for usizeimpl Sub<Saturating<i128>> for &Saturating<i128>impl Sub<Saturating<i16>> for &Saturating<i16>impl Sub<Saturating<i32>> for &Saturating<i32>impl Sub<Saturating<i64>> for &Saturating<i64>impl Sub<Saturating<i8>> for &Saturating<i8>impl Sub<Saturating<isize>> for &Saturating<isize>impl Sub<Saturating<u128>> for &Saturating<u128>impl Sub<Saturating<u16>> for &Saturating<u16>impl Sub<Saturating<u32>> for &Saturating<u32>impl Sub<Saturating<u64>> for &Saturating<u64>impl Sub<Saturating<u8>> for &Saturating<u8>impl Sub<Saturating<usize>> for &Saturating<usize>impl Sub<Wrapping<i128>> for &Wrapping<i128>impl Sub<Wrapping<i16>> for &Wrapping<i16>impl Sub<Wrapping<i32>> for &Wrapping<i32>impl Sub<Wrapping<i64>> for &Wrapping<i64>impl Sub<Wrapping<i8>> for &Wrapping<i8>impl Sub<Wrapping<isize>> for &Wrapping<isize>impl Sub<Wrapping<u128>> for &Wrapping<u128>impl Sub<Wrapping<u16>> for &Wrapping<u16>impl Sub<Wrapping<u32>> for &Wrapping<u32>impl Sub<Wrapping<u64>> for &Wrapping<u64>impl Sub<Wrapping<u8>> for &Wrapping<u8>impl Sub<Wrapping<usize>> for &Wrapping<usize>impl Sub<f128> for &f128impl Sub<f16> for &f16impl Sub<f32> for &f32impl Sub<f64> for &f64impl Sub<i128> for &i128impl Sub<i16> for &i16impl Sub<i32> for &i32impl Sub<i64> for &i64impl Sub<i8> for &i8impl Sub<isize> for &isizeimpl Sub<u128> for &u128impl Sub<u16> for &u16impl Sub<u32> for &u32impl Sub<u64> for &u64impl Sub<u8> for &u8impl Sub<usize> for &usizeimpl<'lhs, 'rhs, T, const N: usize> Sub<&'rhs Simd<T, N>> for &'lhs Simd<T, N> where T: SimdElement, Simd<T, N>: Sub<Simd<T, N>, Output = Simd<T, N>>,impl<T, const N: usize> Sub<&Simd<T, N>> for Simd<T, N> where T: SimdElement, Simd<T, N>: Sub<Simd<T, N>, Output = Simd<T, N>>,impl<T, const N: usize> Sub<Simd<T, N>> for &Simd<T, N> where T: SimdElement, Simd<T, N>: Sub<Simd<T, N>, Output = Simd<T, N>>,impl<T: Sub> Sub for Complex<T>impl<T: Sub<Output = T>> Sub<T> for Complex<T>impl<const N: usize> Sub for Simd<f16, N> where f16: SimdElement,impl<const N: usize> Sub for Simd<f32, N> where f32: SimdElement,impl<const N: usize> Sub for Simd<f64, N> where f64: SimdElement,impl<const N: usize> Sub for Simd<i16, N> where i16: SimdElement,impl<const N: usize> Sub for Simd<i32, N> where i32: SimdElement,impl<const N: usize> Sub for Simd<i64, N> where i64: SimdElement,impl<const N: usize> Sub for Simd<i8, N> where i8: SimdElement,impl<const N: usize> Sub for Simd<isize, N> where isize: SimdElement,impl<const N: usize> Sub for Simd<u16, N> where u16: SimdElement,impl<const N: usize> Sub for Simd<u32, N> where u32: SimdElement,impl<const N: usize> Sub for Simd<u64, N> where u64: SimdElement,impl<const N: usize> Sub for Simd<u8, N> where u8: SimdElement,impl<const N: usize> Sub for Simd<usize, N> where usize: SimdElement,