std::ops::Sub - Rust (original) (raw)
Trait std::ops::Sub1.0.0 [−] [src]
#[lang = "sub"]
pub trait Sub<RHS = Self> { type Output; 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
.
use std::ops::Sub;
#[derive(Debug, 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 });Run
Here is an example of the same Point
struct implementing the Sub
trait using generics.
use std::ops::Sub;
#[derive(Debug, PartialEq)] struct Point { x: T, y: T, }
impl<T: Sub<Output=T>> Sub for Point { type Output = Point;
fn sub(self, other: Point<T>) -> Point<T> {
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 });Run
type [Output](#associatedtype.Output)
The resulting type after applying the -
operator.
fn [sub](#tymethod.sub)(self, rhs: RHS) -> Self::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output")
Performs the -
operation.
impl<'a, 'b> Sub<&'a [i128](../primitive.i128.html)> for &'b [i128](../primitive.i128.html) type [Output](#associatedtype.Output) = <[i128](../primitive.i128.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i128](../primitive.i128.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[u16](../primitive.u16.html)> for [u16](../primitive.u16.html) type [Output](#associatedtype.Output) = [u16](../primitive.u16.html);
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [i16](../primitive.i16.html)> for &'b [i16](../primitive.i16.html) type [Output](#associatedtype.Output) = <[i16](../primitive.i16.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i16](../primitive.i16.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [isize](../primitive.isize.html)> for [isize](../primitive.isize.html) type [Output](#associatedtype.Output) = <[isize](../primitive.isize.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[isize](../primitive.isize.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[f64](../primitive.f64.html)> for [f64](../primitive.f64.html) type [Output](#associatedtype.Output) = [f64](../primitive.f64.html);
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [usize](../primitive.usize.html)> for &'b [usize](../primitive.usize.html) type [Output](#associatedtype.Output) = <[usize](../primitive.usize.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[usize](../primitive.usize.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [i32](../primitive.i32.html)> for [i32](../primitive.i32.html) type [Output](#associatedtype.Output) = <[i32](../primitive.i32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i32](../primitive.i32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [isize](../primitive.isize.html)> for &'b [isize](../primitive.isize.html) type [Output](#associatedtype.Output) = <[isize](../primitive.isize.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[isize](../primitive.isize.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [i128](../primitive.i128.html)> for [i128](../primitive.i128.html) type [Output](#associatedtype.Output) = <[i128](../primitive.i128.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i128](../primitive.i128.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[f32](../primitive.f32.html)> for [f32](../primitive.f32.html) type [Output](#associatedtype.Output) = [f32](../primitive.f32.html);
impl Sub<[isize](../primitive.isize.html)> for [isize](../primitive.isize.html) type [Output](#associatedtype.Output) = [isize](../primitive.isize.html);
impl<'a, 'b> Sub<&'a [i8](../primitive.i8.html)> for &'b [i8](../primitive.i8.html) type [Output](#associatedtype.Output) = <[i8](../primitive.i8.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i8](../primitive.i8.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[u128](../primitive.u128.html)> for &'a [u128](../primitive.u128.html) type [Output](#associatedtype.Output) = <[u128](../primitive.u128.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u128](../primitive.u128.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [u128](../primitive.u128.html)> for [u128](../primitive.u128.html) type [Output](#associatedtype.Output) = <[u128](../primitive.u128.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u128](../primitive.u128.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[i128](../primitive.i128.html)> for [i128](../primitive.i128.html) type [Output](#associatedtype.Output) = [i128](../primitive.i128.html);
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)>;
impl<'a> Sub<[i16](../primitive.i16.html)> for &'a [i16](../primitive.i16.html) type [Output](#associatedtype.Output) = <[i16](../primitive.i16.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i16](../primitive.i16.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[u16](../primitive.u16.html)> for &'a [u16](../primitive.u16.html) type [Output](#associatedtype.Output) = <[u16](../primitive.u16.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u16](../primitive.u16.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[i64](../primitive.i64.html)> for &'a [i64](../primitive.i64.html) type [Output](#associatedtype.Output) = <[i64](../primitive.i64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i64](../primitive.i64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)>;
impl<'a> Sub<[u32](../primitive.u32.html)> for &'a [u32](../primitive.u32.html) type [Output](#associatedtype.Output) = <[u32](../primitive.u32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u32](../primitive.u32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[usize](../primitive.usize.html)> for &'a [usize](../primitive.usize.html) type [Output](#associatedtype.Output) = <[usize](../primitive.usize.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[usize](../primitive.usize.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [u8](../primitive.u8.html)> for &'b [u8](../primitive.u8.html) type [Output](#associatedtype.Output) = <[u8](../primitive.u8.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u8](../primitive.u8.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[i128](../primitive.i128.html)> for &'a [i128](../primitive.i128.html) type [Output](#associatedtype.Output) = <[i128](../primitive.i128.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i128](../primitive.i128.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [u16](../primitive.u16.html)> for &'b [u16](../primitive.u16.html) type [Output](#associatedtype.Output) = <[u16](../primitive.u16.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u16](../primitive.u16.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[i16](../primitive.i16.html)> for [i16](../primitive.i16.html) type [Output](#associatedtype.Output) = [i16](../primitive.i16.html);
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[f64](../primitive.f64.html)> for &'a [f64](../primitive.f64.html) type [Output](#associatedtype.Output) = <[f64](../primitive.f64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[f64](../primitive.f64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [u128](../primitive.u128.html)> for &'b [u128](../primitive.u128.html) type [Output](#associatedtype.Output) = <[u128](../primitive.u128.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u128](../primitive.u128.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)>;
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u64](../primitive.u64.html)>;
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)>;
impl<'a, 'b> Sub<&'a [u32](../primitive.u32.html)> for &'b [u32](../primitive.u32.html) type [Output](#associatedtype.Output) = <[u32](../primitive.u32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u32](../primitive.u32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [u16](../primitive.u16.html)> for [u16](../primitive.u16.html) type [Output](#associatedtype.Output) = <[u16](../primitive.u16.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u16](../primitive.u16.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[i8](../primitive.i8.html)> for &'a [i8](../primitive.i8.html) type [Output](#associatedtype.Output) = <[i8](../primitive.i8.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i8](../primitive.i8.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [i16](../primitive.i16.html)> for [i16](../primitive.i16.html) type [Output](#associatedtype.Output) = <[i16](../primitive.i16.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i16](../primitive.i16.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [u8](../primitive.u8.html)> for [u8](../primitive.u8.html) type [Output](#associatedtype.Output) = <[u8](../primitive.u8.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u8](../primitive.u8.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [i32](../primitive.i32.html)> for &'b [i32](../primitive.i32.html) type [Output](#associatedtype.Output) = <[i32](../primitive.i32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i32](../primitive.i32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u16](../primitive.u16.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [i64](../primitive.i64.html)> for [i64](../primitive.i64.html) type [Output](#associatedtype.Output) = <[i64](../primitive.i64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i64](../primitive.i64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [f32](../primitive.f32.html)> for &'b [f32](../primitive.f32.html) type [Output](#associatedtype.Output) = <[f32](../primitive.f32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[f32](../primitive.f32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[i32](../primitive.i32.html)> for &'a [i32](../primitive.i32.html) type [Output](#associatedtype.Output) = <[i32](../primitive.i32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i32](../primitive.i32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[u8](../primitive.u8.html)> for &'a [u8](../primitive.u8.html) type [Output](#associatedtype.Output) = <[u8](../primitive.u8.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u8](../primitive.u8.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[usize](../primitive.usize.html)> for [usize](../primitive.usize.html) type [Output](#associatedtype.Output) = [usize](../primitive.usize.html);
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i64](../primitive.i64.html)>;
impl Sub<[Duration](../../std/time/struct.Duration.html "struct std::time::Duration")> for [Duration](../../std/time/struct.Duration.html "struct std::time::Duration") type [Output](#associatedtype.Output) = [Duration](../../std/time/struct.Duration.html "struct std::time::Duration");
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)>;
impl<'a> Sub<&'a [i8](../primitive.i8.html)> for [i8](../primitive.i8.html) type [Output](#associatedtype.Output) = <[i8](../primitive.i8.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i8](../primitive.i8.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [i64](../primitive.i64.html)> for &'b [i64](../primitive.i64.html) type [Output](#associatedtype.Output) = <[i64](../primitive.i64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[i64](../primitive.i64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[i64](../primitive.i64.html)> for [i64](../primitive.i64.html) type [Output](#associatedtype.Output) = [i64](../primitive.i64.html);
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i16](../primitive.i16.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [f64](../primitive.f64.html)> for &'b [f64](../primitive.f64.html) type [Output](#associatedtype.Output) = <[f64](../primitive.f64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[f64](../primitive.f64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[u64](../primitive.u64.html)> for &'a [u64](../primitive.u64.html) type [Output](#associatedtype.Output) = <[u64](../primitive.u64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u64](../primitive.u64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [u64](../primitive.u64.html)> for [u64](../primitive.u64.html) type [Output](#associatedtype.Output) = <[u64](../primitive.u64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u64](../primitive.u64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)>;
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[i32](../primitive.i32.html)> for [i32](../primitive.i32.html) type [Output](#associatedtype.Output) = [i32](../primitive.i32.html);
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u8](../primitive.u8.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[u32](../primitive.u32.html)> for [u32](../primitive.u32.html) type [Output](#associatedtype.Output) = [u32](../primitive.u32.html);
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i32](../primitive.i32.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i128](../primitive.i128.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[u64](../primitive.u64.html)> for [u64](../primitive.u64.html) type [Output](#associatedtype.Output) = [u64](../primitive.u64.html);
impl<'a, 'b> Sub<&'a [u64](../primitive.u64.html)> for &'b [u64](../primitive.u64.html) type [Output](#associatedtype.Output) = <[u64](../primitive.u64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u64](../primitive.u64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [u32](../primitive.u32.html)> for [u32](../primitive.u32.html) type [Output](#associatedtype.Output) = <[u32](../primitive.u32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[u32](../primitive.u32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<&'a [f64](../primitive.f64.html)> for [f64](../primitive.f64.html) type [Output](#associatedtype.Output) = <[f64](../primitive.f64.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[f64](../primitive.f64.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[u8](../primitive.u8.html)> for [u8](../primitive.u8.html) type [Output](#associatedtype.Output) = [u8](../primitive.u8.html);
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)>;
impl Sub<[i8](../primitive.i8.html)> for [i8](../primitive.i8.html) type [Output](#associatedtype.Output) = [i8](../primitive.i8.html);
impl<'a> Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)>> for &'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[isize](../primitive.isize.html)>;
impl<'a> Sub<&'a [usize](../primitive.usize.html)> for [usize](../primitive.usize.html) type [Output](#associatedtype.Output) = <[usize](../primitive.usize.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[usize](../primitive.usize.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[i8](../primitive.i8.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u128](../primitive.u128.html)>;
impl<'a> Sub<[isize](../primitive.isize.html)> for &'a [isize](../primitive.isize.html) type [Output](#associatedtype.Output) = <[isize](../primitive.isize.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[isize](../primitive.isize.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a> Sub<[f32](../primitive.f32.html)> for &'a [f32](../primitive.f32.html) type [Output](#associatedtype.Output) = <[f32](../primitive.f32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[f32](../primitive.f32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl Sub<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)>> for [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)> type [Output](#associatedtype.Output) = [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[usize](../primitive.usize.html)>;
impl Sub<[u128](../primitive.u128.html)> for [u128](../primitive.u128.html) type [Output](#associatedtype.Output) = [u128](../primitive.u128.html);
impl<'a> Sub<&'a [f32](../primitive.f32.html)> for [f32](../primitive.f32.html) type [Output](#associatedtype.Output) = <[f32](../primitive.f32.html) as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[f32](../primitive.f32.html)>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b> Sub<&'a [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)>> for &'b [Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)> type [Output](#associatedtype.Output) = <[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)> as [Sub](../../std/ops/trait.Sub.html "trait std::ops::Sub")<[Wrapping](../../std/num/struct.Wrapping.html "struct std::num::Wrapping")<[u32](../primitive.u32.html)>>>::[Output](../../std/ops/trait.Sub.html#associatedtype.Output "type std::ops::Sub::Output");
impl<'a, 'b, T> Sub<&'b [BTreeSet](../../std/collections/btree%5Fset/struct.BTreeSet.html "struct std::collections::btree_set::BTreeSet")<T>> for &'a [BTreeSet](../../std/collections/btree%5Fset/struct.BTreeSet.html "struct std::collections::btree_set::BTreeSet")<T> where T: [Ord](../../std/cmp/trait.Ord.html "trait std::cmp::Ord") + [Clone](../../std/clone/trait.Clone.html "trait std::clone::Clone"), type [Output](#associatedtype.Output) = [BTreeSet](../../std/collections/btree%5Fset/struct.BTreeSet.html "struct std::collections::btree_set::BTreeSet")<T>;
impl<'a, 'b, T, S> Sub<&'b [HashSet](../../std/collections/struct.HashSet.html "struct std::collections::HashSet")<T, S>> for &'a [HashSet](../../std/collections/struct.HashSet.html "struct std::collections::HashSet")<T, S> where T: [Eq](../../std/cmp/trait.Eq.html "trait std::cmp::Eq") + [Hash](../../std/hash/trait.Hash.html "trait std::hash::Hash") + [Clone](../../std/clone/trait.Clone.html "trait std::clone::Clone"), S: [BuildHasher](../../std/hash/trait.BuildHasher.html "trait std::hash::BuildHasher") + [Default](../../std/default/trait.Default.html "trait std::default::Default"), type [Output](#associatedtype.Output) = [HashSet](../../std/collections/struct.HashSet.html "struct std::collections::HashSet")<T, S>;
impl Sub<[Duration](../../std/time/struct.Duration.html "struct std::time::Duration")> for [Instant](../../std/time/struct.Instant.html "struct std::time::Instant") type [Output](#associatedtype.Output) = [Instant](../../std/time/struct.Instant.html "struct std::time::Instant");
impl Sub<[Instant](../../std/time/struct.Instant.html "struct std::time::Instant")> for [Instant](../../std/time/struct.Instant.html "struct std::time::Instant") type [Output](#associatedtype.Output) = [Duration](../../std/time/struct.Duration.html "struct std::time::Duration");
impl Sub<[Duration](../../std/time/struct.Duration.html "struct std::time::Duration")> for [SystemTime](../../std/time/struct.SystemTime.html "struct std::time::SystemTime") type [Output](#associatedtype.Output) = [SystemTime](../../std/time/struct.SystemTime.html "struct std::time::SystemTime");