KnownTuple

Trait KnownTuple 

Source
pub trait KnownTuple<'a> {
    type RefTuple: 'a + KnownTuple<'a>;
    type FnPointer: KnownFnPointer<ArgsTuple = Self>;

    // Required method
    fn as_tuple_of_refs(&'a self) -> Self::RefTuple;
}

Required Associated Types§

Source

type RefTuple: 'a + KnownTuple<'a>

The corresponding tuple type which references each item.

use tuple_fn::KnownTuple;

let _: <() as KnownTuple>::RefTuple = ();
let _: <(i32,) as KnownTuple>::RefTuple = (&1,);
let _: <(i32, bool) as KnownTuple>::RefTuple = (&1, &true);
let _: <(i32, bool, &u8) as KnownTuple>::RefTuple = (&1, &true, &&0u8);
Source

type FnPointer: KnownFnPointer<ArgsTuple = Self>

The fn pointer type which accepts this tuple as arguments and returns (). For example, the following types in each pair are equivalent.

<() as KnownTuple>::FnPointer, fn()
<(i32,) as KnownTuple>::FnPointer, fn(i32)
<(i32, bool) as KnownTuple>::FnPointer, fn(i32, bool)

Required Methods§

Source

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Convert ref of tuple to tuple of refs.

let _: (&i8, &String) = (1, "hello".to_string()).as_tuple_of_refs();

Implementations on Foreign Types§

Source§

impl<'a> KnownTuple<'a> for ()

Source§

impl<'a, A1: 'a> KnownTuple<'a> for (A1,)

Source§

impl<'a, A1: 'a, A2: 'a> KnownTuple<'a> for (A1, A2)

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a> KnownTuple<'a> for (A1, A2, A3)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3)

Source§

type FnPointer = fn(A1, A2, A3)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a> KnownTuple<'a> for (A1, A2, A3, A4)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4)

Source§

type FnPointer = fn(A1, A2, A3, A4)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a, A8: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7, A8)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7, &'a A8)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7, A8)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a, A8: 'a, A9: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7, A8, A9)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7, &'a A8, &'a A9)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7, A8, A9)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a, A8: 'a, A9: 'a, A10: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7, &'a A8, &'a A9, &'a A10)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a, A8: 'a, A9: 'a, A10: 'a, A11: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7, &'a A8, &'a A9, &'a A10, &'a A11)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a, A8: 'a, A9: 'a, A10: 'a, A11: 'a, A12: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7, &'a A8, &'a A9, &'a A10, &'a A11, &'a A12)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a, A8: 'a, A9: 'a, A10: 'a, A11: 'a, A12: 'a, A13: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7, &'a A8, &'a A9, &'a A10, &'a A11, &'a A12, &'a A13)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a, A8: 'a, A9: 'a, A10: 'a, A11: 'a, A12: 'a, A13: 'a, A14: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7, &'a A8, &'a A9, &'a A10, &'a A11, &'a A12, &'a A13, &'a A14)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Source§

impl<'a, A1: 'a, A2: 'a, A3: 'a, A4: 'a, A5: 'a, A6: 'a, A7: 'a, A8: 'a, A9: 'a, A10: 'a, A11: 'a, A12: 'a, A13: 'a, A14: 'a, A15: 'a> KnownTuple<'a> for (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)

Source§

type RefTuple = (&'a A1, &'a A2, &'a A3, &'a A4, &'a A5, &'a A6, &'a A7, &'a A8, &'a A9, &'a A10, &'a A11, &'a A12, &'a A13, &'a A14, &'a A15)

Source§

type FnPointer = fn(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)

Source§

fn as_tuple_of_refs(&'a self) -> Self::RefTuple

Implementors§