1use crate::expression::Expression;
2use crate::expression::grouped::Grouped;
3use crate::expression::operators::And;
4use crate::expression_methods::*;
5use crate::sql_types::Bool;
6
7#[doc(hidden)]
11pub trait EqAll<Rhs> {
12 type Output: Expression<SqlType = Bool>;
13
14 fn eq_all(self, rhs: Rhs) -> Self::Output;
15}
16
17macro_rules! impl_eq_all {
18 (
20 ($Left1:ident, $($Left:ident,)+)
21 ($Right1:ident, $($Right:ident,)+)
22 ) => {
23 #[allow(non_snake_case)]
24 impl<$Left1, $($Left,)+ $Right1, $($Right,)+>
25 EqAll<($Right1, $($Right,)+)> for ($Left1, $($Left,)+)
26 where
27 $Left1: EqAll<$Right1>,
28 ($($Left,)+): EqAll<($($Right,)+)>,
29 {
30 type Output = Grouped<And<
31 <$Left1 as EqAll<$Right1>>::Output,
32 <($($Left,)+) as EqAll<($($Right,)+)>>::Output,
33 >>;
34
35 fn eq_all(self, rhs: ($Right1, $($Right,)+)) -> Self::Output {
36 let ($Left1, $($Left,)+) = self;
37 let ($Right1, $($Right,)+) = rhs;
38 $Left1.eq_all($Right1).and(($($Left,)+).eq_all(($($Right,)+)))
39 }
40 }
41 };
42
43 (
45 ($Left:ident,) ($Right:ident,)
46 ) => {
47 impl<$Left, $Right> EqAll<($Right,)> for ($Left,)
48 where
49 $Left: EqAll<$Right>,
50 {
51 type Output = <$Left as EqAll<$Right>>::Output;
52
53 fn eq_all(self, rhs: ($Right,)) -> Self::Output {
54 self.0.eq_all(rhs.0)
55 }
56 }
57 };
58}
59
60macro_rules! impl_eq_all_for_all_tuples {
61 ($(
62 $unused1:tt {
63 $($unused2:tt -> $Left:ident, $Right:ident, $unused3:tt,)+
64 }
65 )+) => {
66 $(
67 impl_eq_all!(($($Left,)+) ($($Right,)+));
68 )+
69 };
70}
71
72impl<T, ST> EqAll<(ST,)> for (T,) where T: EqAll<ST> {
type Output = <T as EqAll<ST>>::Output;
fn eq_all(self, rhs: (ST,)) -> Self::Output { self.0.eq_all(rhs.0) }
}
#[allow(non_snake_case)]
impl<T, T1, ST, ST1> EqAll<(ST, ST1)> for (T, T1) where T: EqAll<ST>,
(T1,): EqAll<(ST1,)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1,) as EqAll<(ST1,)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1)) -> Self::Output {
let (T, T1) = self;
let (ST, ST1) = rhs;
T.eq_all(ST).and((T1,).eq_all((ST1,)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, ST, ST1, ST2> EqAll<(ST, ST1, ST2)> for (T, T1, T2) where
T: EqAll<ST>, (T1, T2): EqAll<(ST1, ST2)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2) as EqAll<(ST1, ST2)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1, ST2)) -> Self::Output {
let (T, T1, T2) = self;
let (ST, ST1, ST2) = rhs;
T.eq_all(ST).and((T1, T2).eq_all((ST1, ST2)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, ST, ST1, ST2, ST3> EqAll<(ST, ST1, ST2, ST3)> for
(T, T1, T2, T3) where T: EqAll<ST>, (T1, T2, T3): EqAll<(ST1, ST2, ST3)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3) as EqAll<(ST1, ST2, ST3)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1, ST2, ST3)) -> Self::Output {
let (T, T1, T2, T3) = self;
let (ST, ST1, ST2, ST3) = rhs;
T.eq_all(ST).and((T1, T2, T3).eq_all((ST1, ST2, ST3)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, ST, ST1, ST2, ST3, ST4>
EqAll<(ST, ST1, ST2, ST3, ST4)> for (T, T1, T2, T3, T4) where
T: EqAll<ST>, (T1, T2, T3, T4): EqAll<(ST1, ST2, ST3, ST4)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4) as EqAll<(ST1, ST2, ST3, ST4)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1, ST2, ST3, ST4)) -> Self::Output {
let (T, T1, T2, T3, T4) = self;
let (ST, ST1, ST2, ST3, ST4) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4).eq_all((ST1, ST2, ST3, ST4)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, ST, ST1, ST2, ST3, ST4, ST5>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5)> for (T, T1, T2, T3, T4, T5) where
T: EqAll<ST>, (T1, T2, T3, T4, T5): EqAll<(ST1, ST2, ST3, ST4, ST5)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5) as EqAll<(ST1, ST2, ST3, ST4, ST5)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1, ST2, ST3, ST4, ST5)) -> Self::Output {
let (T, T1, T2, T3, T4, T5) = self;
let (ST, ST1, ST2, ST3, ST4, ST5) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4,
T5).eq_all((ST1, ST2, ST3, ST4, ST5)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, ST, ST1, ST2, ST3, ST4, ST5, ST6>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6)> for (T, T1, T2, T3, T4, T5, T6)
where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1, ST2, ST3, ST4, ST5, ST6)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5,
T6).eq_all((ST1, ST2, ST3, ST4, ST5, ST6)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7)> for
(T, T1, T2, T3, T4, T5, T6, T7) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6,
T7).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7,
ST8> EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7,
T8): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7,
T8).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, ST, ST1, ST2, ST3, ST4, ST5, ST6,
ST7, ST8, ST9> EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)>
for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8,
T9): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)>>::Output>>;
fn eq_all(self, rhs: (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8,
T9).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, ST, ST1, ST2, ST3, ST4, ST5,
ST6, ST7, ST8, ST9, ST10>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9,
T10): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10)>>::Output>>;
fn eq_all(self,
rhs: (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9,
T10).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, ST, ST1, ST2, ST3, ST4,
ST5, ST6, ST7, ST8, ST9, ST10, ST11>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
T11): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11)>>::Output>>;
fn eq_all(self,
rhs: (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11) =
rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
T11).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, ST, ST1, ST2, ST3,
ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12)>
for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) where
T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
T12): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
T12).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, ST, ST1, ST2,
ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13)> for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) =
self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, ST, ST1,
ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) where
T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
T14): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) =
self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13,
T14).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, ST,
ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14,
ST15>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14,
T15).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)
where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15,
T16).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16,
T17).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17,
T18): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17,
T18).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18,
T19): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18,
T19).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18,
ST19)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10,
ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19,
T20): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19,
T20).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20,
T21): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21) =
rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20,
T21).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8,
ST9, ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20,
ST21, ST22>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21,
T22): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21,
T22).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7,
ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22,
T23): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22,
T23).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, ST, ST1, ST2, ST3, ST4, ST5, ST6,
ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24)>
for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23,
T24): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23,
T24).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, ST, ST1, ST2, ST3, ST4, ST5,
ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18,
ST19, ST20, ST21, ST22, ST23, ST24, ST25>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24,
T25): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24,
T25).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, ST, ST1, ST2, ST3, ST4,
ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17,
ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25, ST26>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25,
T26): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26) =
self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24,
T25,
T26).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25, ST26)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, ST, ST1, ST2, ST3,
ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15, ST16,
ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27) where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26, ST27) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24,
T25, T26,
T27).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, ST, ST1, ST2,
ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14, ST15,
ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27,
ST28>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28) where
T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
T28): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27, T28) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26, ST27, ST28) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24,
T25, T26, T27,
T28).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27, ST28)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, ST, ST1,
ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14,
ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25, ST26,
ST27, ST28, ST29>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29) where
T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
T29): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29)
as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28, ST29)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27, T28, T29) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24,
T25, T26, T27, T28,
T29).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27, ST28,
ST29)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, ST,
ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13, ST14,
ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25, ST26,
ST27, ST28, ST29, ST30>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29, ST30)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30)
where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
T30): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
T30) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30)) -> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27, T28, T29, T30) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30) = rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24,
T25, T26, T27, T28, T29,
T30).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29,
ST30)))
}
}
#[allow(non_snake_case)]
impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31,
ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12, ST13,
ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24, ST25,
ST26, ST27, ST28, ST29, ST30, ST31>
EqAll<(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23, ST24,
ST25, ST26, ST27, ST28, ST29, ST30, ST31)> for
(T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)
where T: EqAll<ST>,
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30,
T31): EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31)> {
type Output =
Grouped<And<<T as EqAll<ST>>::Output,
<(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15,
T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29,
T30, T31) as
EqAll<(ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11, ST12,
ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22, ST23,
ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31)>>::Output>>;
fn eq_all(self,
rhs:
(ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21, ST22,
ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31))
-> Self::Output {
let (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14,
T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
T27, T28, T29, T30, T31) = self;
let (ST, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9, ST10, ST11,
ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19, ST20, ST21,
ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29, ST30, ST31) =
rhs;
T.eq_all(ST).and((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24,
T25, T26, T27, T28, T29, T30,
T31).eq_all((ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8, ST9,
ST10, ST11, ST12, ST13, ST14, ST15, ST16, ST17, ST18, ST19,
ST20, ST21, ST22, ST23, ST24, ST25, ST26, ST27, ST28, ST29,
ST30, ST31)))
}
}crate::for_each_tuple!(impl_eq_all_for_all_tuples);