pub trait TupleConcat<O, Res> {
fn concat(self, other: O) -> Res;
}
macro_rules! impl_concat_tuple {
(($($idx_a:tt => $a:ident,)*), ($($idx_b:tt => $b:ident,)*)) => {
impl<$($a,)* $($b,)*> TupleConcat<($($b,)*), ($($a,)* $($b,)*)> for ($($a,)*) {
#[inline(always)]
fn concat(self, other: ($($b,)*)) -> ($($a,)* $($b,)*) {
($(
self.$idx_a,
)* $(
other.$idx_b,
)*)
}
}
};
((,), ($($idx_b:tt => $b:ident,)*)) => {
impl<$($b,)*> TupleConcat<($($b,)*), ($($b,)*)> for () {
#[inline(always)]
fn concat(self, other: ($($b,)*)) -> ($($b,)*) {
($(
other.$idx_b,
)*)
}
}
};
(($($idx_a:tt => $a:ident,)*), (,)) => {
impl<$($a,)*> TupleConcat<(), ($($a,)*)> for ($($a,)*) {
#[inline(always)]
fn concat(self, _other: ()) -> ($($a,)*) {
($(
self.$idx_a,
)*)
}
}
};
((,), (,)) => {
impl TupleConcat<(), ()> for () {
#[inline(always)]
fn concat(self, _other: ()) -> () {
()
}
}
};
}
impl_concat_tuple!((,), (,));
impl_concat_tuple!((,), (0=>B1,));
impl_concat_tuple!((,), (0=>B1,1=>B2,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,), (,));
impl_concat_tuple!((0=>A1,), (0=>B1,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,), (,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,));
impl_concat_tuple!((0=>A1,1=>A2,2=>A3,3=>A4,4=>A5,5=>A6,6=>A7,7=>A8,8=>A9,9=>A10,10=>A11,11=>A12,12=>A13,13=>A14,14=>A15,15=>A16,), (0=>B1,1=>B2,2=>B3,3=>B4,4=>B5,5=>B6,6=>B7,7=>B8,8=>B9,9=>B10,10=>B11,11=>B12,12=>B13,13=>B14,14=>B15,15=>B16,));
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_concat_tuple() {
assert_eq!((0, 1, 2).concat((3, 4)), (0, 1, 2, 3, 4));
assert_eq!(().concat((0, 1, 2)), (0, 1, 2));
assert_eq!((0, 1, 2).concat(()), (0, 1, 2));
assert_eq!(().concat(()), ());
assert_eq!(
("Hello", "this").concat(("is", "adar")),
("Hello", "this", "is", "adar")
);
assert_eq!(
(0, false, "no").concat((true, "yes", 1)),
(0, false, "no", true, "yes", 1)
);
}
}