Skip to main content

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

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<'_>

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>> 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>> 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>> 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>> 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>> 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>> 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> TupleRow<Idx> for ()

Source§

type RowType = ()

Source§

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

Implementors§