use std::ops::Sub;
pub trait Subtraction<T> {
fn sub(self, other: Self) -> Self;
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
self.8 - other.8 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
self.8 - other.8 ,
self.9 - other.9 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
self.8 - other.8 ,
self.9 - other.9 ,
self.10 - other.10 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
self.8 - other.8 ,
self.9 - other.9 ,
self.10 - other.10 ,
self.11 - other.11 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
self.8 - other.8 ,
self.9 - other.9 ,
self.10 - other.10 ,
self.11 - other.11 ,
self.12 - other.12 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
self.8 - other.8 ,
self.9 - other.9 ,
self.10 - other.10 ,
self.11 - other.11 ,
self.12 - other.12 ,
self.13 - other.13 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
self.8 - other.8 ,
self.9 - other.9 ,
self.10 - other.10 ,
self.11 - other.11 ,
self.12 - other.12 ,
self.13 - other.13 ,
self.14 - other.14 ,
)
}
}
impl<T: Sub<Output=T>> Subtraction<T> for ( T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T){
fn sub(self, other: Self) -> Self {
(
self.0 - other.0 ,
self.1 - other.1 ,
self.2 - other.2 ,
self.3 - other.3 ,
self.4 - other.4 ,
self.5 - other.5 ,
self.6 - other.6 ,
self.7 - other.7 ,
self.8 - other.8 ,
self.9 - other.9 ,
self.10 - other.10 ,
self.11 - other.11 ,
self.12 - other.12 ,
self.13 - other.13 ,
self.14 - other.14 ,
self.15 - other.15 ,
)
}
}