/*
tup = lambda n: " ".join([f"_{n}," for n in range(n + 1)])
for n in range(14):
print(f"""
impl<{tup(n)}> Last for ({tup(n)}) {{
type Init = ({tup(n - 1)});
type Last = _{n};
fn il(({tup(n - 1)}): Self::Init, last: Self::Last) -> ({tup(n)}) {{
({tup(n - 1)} last,)
}}
}}
""")
*/
impl<_0> Last for (_0,) {
type Init = ();
type Last = _0;
fn il((): Self::Init, last: Self::Last) -> (_0,) {
(last,)
}
}
impl<_0, _1> Last for (_0, _1) {
type Init = (_0,);
type Last = _1;
fn il((_0,): Self::Init, last: Self::Last) -> (_0, _1) {
(_0, last)
}
}
impl<_0, _1, _2> Last for (_0, _1, _2) {
type Init = (_0, _1);
type Last = _2;
fn il((_0, _1): Self::Init, last: Self::Last) -> (_0, _1, _2) {
(_0, _1, last)
}
}
impl<_0, _1, _2, _3> Last for (_0, _1, _2, _3) {
type Init = (_0, _1, _2);
type Last = _3;
fn il((_0, _1, _2): Self::Init, last: Self::Last) -> (_0, _1, _2, _3) {
(_0, _1, _2, last)
}
}
impl<_0, _1, _2, _3, _4> Last for (_0, _1, _2, _3, _4) {
type Init = (_0, _1, _2, _3);
type Last = _4;
fn il((_0, _1, _2, _3): Self::Init, last: Self::Last) -> (_0, _1, _2, _3, _4) {
(_0, _1, _2, _3, last)
}
}
impl<_0, _1, _2, _3, _4, _5> Last for (_0, _1, _2, _3, _4, _5) {
type Init = (_0, _1, _2, _3, _4);
type Last = _5;
fn il((_0, _1, _2, _3, _4): Self::Init, last: Self::Last) -> (_0, _1, _2, _3, _4, _5) {
(_0, _1, _2, _3, _4, last)
}
}
impl<_0, _1, _2, _3, _4, _5, _6> Last for (_0, _1, _2, _3, _4, _5, _6) {
type Init = (_0, _1, _2, _3, _4, _5);
type Last = _6;
fn il((_0, _1, _2, _3, _4, _5): Self::Init, last: Self::Last) -> (_0, _1, _2, _3, _4, _5, _6) {
(_0, _1, _2, _3, _4, _5, last)
}
}
impl<_0, _1, _2, _3, _4, _5, _6, _7> Last for (_0, _1, _2, _3, _4, _5, _6, _7) {
type Init = (_0, _1, _2, _3, _4, _5, _6);
type Last = _7;
fn il(
(_0, _1, _2, _3, _4, _5, _6): Self::Init,
last: Self::Last,
) -> (_0, _1, _2, _3, _4, _5, _6, _7) {
(_0, _1, _2, _3, _4, _5, _6, last)
}
}
impl<_0, _1, _2, _3, _4, _5, _6, _7, _8> Last for (_0, _1, _2, _3, _4, _5, _6, _7, _8) {
type Init = (_0, _1, _2, _3, _4, _5, _6, _7);
type Last = _8;
fn il(
(_0, _1, _2, _3, _4, _5, _6, _7): Self::Init,
last: Self::Last,
) -> (_0, _1, _2, _3, _4, _5, _6, _7, _8) {
(_0, _1, _2, _3, _4, _5, _6, _7, last)
}
}
impl<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9> Last for (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) {
type Init = (_0, _1, _2, _3, _4, _5, _6, _7, _8);
type Last = _9;
fn il(
(_0, _1, _2, _3, _4, _5, _6, _7, _8): Self::Init,
last: Self::Last,
) -> (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) {
(_0, _1, _2, _3, _4, _5, _6, _7, _8, last)
}
}
impl<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10> Last
for (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10)
{
type Init = (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9);
type Last = _10;
fn il(
(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9): Self::Init,
last: Self::Last,
) -> (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) {
(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, last)
}
}
impl<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11> Last
for (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11)
{
type Init = (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10);
type Last = _11;
fn il(
(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10): Self::Init,
last: Self::Last,
) -> (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) {
(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, last)
}
}
impl<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12> Last
for (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12)
{
type Init = (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11);
type Last = _12;
fn il(
(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11): Self::Init,
last: Self::Last,
) -> (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) {
(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, last)
}
}
impl<_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13> Last
for (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13)
{
type Init = (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12);
type Last = _13;
fn il(
(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12): Self::Init,
last: Self::Last,
) -> (_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) {
(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, last)
}
}