TupleRow

Trait TupleRow 

Source
pub trait TupleRow<Idx>: TupleLen {
    type RowType: TupleRef + TupleLen<Len = <Self as TupleLen>::Len>;

    // Required method
    fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>;
}
Expand description

A trait for indexing rows in tuples of tuples.

This trait allows accessing elements at a specific index across all tuples in a tuple of tuples. For a tuple of tuples like ((A, B), (C, D)), TupleRow<U0> would return (&A, &C) and TupleRow<U1> would return (&B, &D).

Each inner tuple must implement TupleIndex<Idx>, and the returned row tuple implements TupleRef.

§Examples

use tuplities_row::TupleRow;
use typenum::U0;

let matrix = ((1, 2), (3, 4), (5, 6));
let first_row = TupleRow::<U0>::tuple_row(&matrix);
assert_eq!(first_row, (&1, &3, &5));

Part of the tuplities crate.

Required Associated Types§

Source

type RowType: TupleRef + TupleLen<Len = <Self as TupleLen>::Len>

The type of the row tuple containing elements at index Idx.

Required Methods§

Source

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Returns a tuple of references to the elements at index Idx in each inner tuple.

Implementations on Foreign Types§

Source§

impl<Idx> TupleRow<Idx> for ()

Source§

type RowType = ()

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Source§

impl<Idx, T1: TupleIndex<Idx>> TupleRow<Idx> for (T1,)

Source§

type RowType = (<T1 as TupleIndex<Idx>>::Element,)

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Source§

impl<Idx, T1: TupleIndex<Idx>, T2: TupleIndex<Idx>> TupleRow<Idx> for (T1, T2)

Source§

type RowType = (<T1 as TupleIndex<Idx>>::Element, <T2 as TupleIndex<Idx>>::Element)

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Source§

impl<Idx, T1: TupleIndex<Idx>, T2: TupleIndex<Idx>, T3: TupleIndex<Idx>> TupleRow<Idx> for (T1, T2, T3)

Source§

type RowType = (<T1 as TupleIndex<Idx>>::Element, <T2 as TupleIndex<Idx>>::Element, <T3 as TupleIndex<Idx>>::Element)

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Source§

impl<Idx, T1: TupleIndex<Idx>, T2: TupleIndex<Idx>, T3: TupleIndex<Idx>, T4: TupleIndex<Idx>> TupleRow<Idx> for (T1, T2, T3, T4)

Source§

type RowType = (<T1 as TupleIndex<Idx>>::Element, <T2 as TupleIndex<Idx>>::Element, <T3 as TupleIndex<Idx>>::Element, <T4 as TupleIndex<Idx>>::Element)

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Source§

impl<Idx, T1: TupleIndex<Idx>, T2: TupleIndex<Idx>, T3: TupleIndex<Idx>, T4: TupleIndex<Idx>, T5: TupleIndex<Idx>> TupleRow<Idx> for (T1, T2, T3, T4, T5)

Source§

type RowType = (<T1 as TupleIndex<Idx>>::Element, <T2 as TupleIndex<Idx>>::Element, <T3 as TupleIndex<Idx>>::Element, <T4 as TupleIndex<Idx>>::Element, <T5 as TupleIndex<Idx>>::Element)

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Source§

impl<Idx, T1: TupleIndex<Idx>, T2: TupleIndex<Idx>, T3: TupleIndex<Idx>, T4: TupleIndex<Idx>, T5: TupleIndex<Idx>, T6: TupleIndex<Idx>> TupleRow<Idx> for (T1, T2, T3, T4, T5, T6)

Source§

type RowType = (<T1 as TupleIndex<Idx>>::Element, <T2 as TupleIndex<Idx>>::Element, <T3 as TupleIndex<Idx>>::Element, <T4 as TupleIndex<Idx>>::Element, <T5 as TupleIndex<Idx>>::Element, <T6 as TupleIndex<Idx>>::Element)

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Source§

impl<Idx, T1: TupleIndex<Idx>, T2: TupleIndex<Idx>, T3: TupleIndex<Idx>, T4: TupleIndex<Idx>, T5: TupleIndex<Idx>, T6: TupleIndex<Idx>, T7: TupleIndex<Idx>> TupleRow<Idx> for (T1, T2, T3, T4, T5, T6, T7)

Source§

type RowType = (<T1 as TupleIndex<Idx>>::Element, <T2 as TupleIndex<Idx>>::Element, <T3 as TupleIndex<Idx>>::Element, <T4 as TupleIndex<Idx>>::Element, <T5 as TupleIndex<Idx>>::Element, <T6 as TupleIndex<Idx>>::Element, <T7 as TupleIndex<Idx>>::Element)

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Source§

impl<Idx, T1: TupleIndex<Idx>, T2: TupleIndex<Idx>, T3: TupleIndex<Idx>, T4: TupleIndex<Idx>, T5: TupleIndex<Idx>, T6: TupleIndex<Idx>, T7: TupleIndex<Idx>, T8: TupleIndex<Idx>> TupleRow<Idx> for (T1, T2, T3, T4, T5, T6, T7, T8)

Source§

type RowType = (<T1 as TupleIndex<Idx>>::Element, <T2 as TupleIndex<Idx>>::Element, <T3 as TupleIndex<Idx>>::Element, <T4 as TupleIndex<Idx>>::Element, <T5 as TupleIndex<Idx>>::Element, <T6 as TupleIndex<Idx>>::Element, <T7 as TupleIndex<Idx>>::Element, <T8 as TupleIndex<Idx>>::Element)

Source§

fn tuple_row(&self) -> <Self::RowType as TupleRef>::Ref<'_>

Implementors§