Trait shrimple_parser::tuple::SliceTuple

source ·
pub trait SliceTuple<const N: usize>: Sized + Tuple {
    type FirstN;
    type FirstNStripped;

    // Required methods
    fn first_n(this: Self) -> Self::FirstN;
    fn strip_first_n(this: Self) -> Self::FirstNStripped;
    fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped);
}
Expand description

The trait for a tuple that has at least N elements, the backbone of the [first_n] function. The associated functions are not to be used directly, instead use the equivalent functions or methods of the Tuple trait.

Required Associated Types§

source

type FirstN

A tuple containing the first N elements of the original tuple.

source

type FirstNStripped

A tuple with the first N elements of the original tuple.

Required Methods§

source

fn first_n(this: Self) -> Self::FirstN

Return the first N elements of the tuple as a tuple.

source

fn strip_first_n(this: Self) -> Self::FirstNStripped

Returns the tuple without the first N elements

source

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

Splits the tuple into 2, with the 1st tuple having the 1st N element, and the 2nd tuple having the rest.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl SliceTuple<0> for ()

§

type FirstN = ()

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0> SliceTuple<0> for (T0,)

§

type FirstN = ()

§

type FirstNStripped = (T0,)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0> SliceTuple<1> for (T0,)

§

type FirstN = (T0,)

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1> SliceTuple<0> for (T0, T1)

§

type FirstN = ()

§

type FirstNStripped = (T0, T1)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1> SliceTuple<1> for (T0, T1)

§

type FirstN = (T0,)

§

type FirstNStripped = (T1,)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1> SliceTuple<2> for (T0, T1)

§

type FirstN = (T0, T1)

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2> SliceTuple<0> for (T0, T1, T2)

§

type FirstN = ()

§

type FirstNStripped = (T0, T1, T2)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2> SliceTuple<1> for (T0, T1, T2)

§

type FirstN = (T0,)

§

type FirstNStripped = (T1, T2)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2> SliceTuple<2> for (T0, T1, T2)

§

type FirstN = (T0, T1)

§

type FirstNStripped = (T2,)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2> SliceTuple<3> for (T0, T1, T2)

§

type FirstN = (T0, T1, T2)

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3> SliceTuple<0> for (T0, T1, T2, T3)

§

type FirstN = ()

§

type FirstNStripped = (T0, T1, T2, T3)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3> SliceTuple<1> for (T0, T1, T2, T3)

§

type FirstN = (T0,)

§

type FirstNStripped = (T1, T2, T3)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3> SliceTuple<2> for (T0, T1, T2, T3)

§

type FirstN = (T0, T1)

§

type FirstNStripped = (T2, T3)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3> SliceTuple<3> for (T0, T1, T2, T3)

§

type FirstN = (T0, T1, T2)

§

type FirstNStripped = (T3,)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3> SliceTuple<4> for (T0, T1, T2, T3)

§

type FirstN = (T0, T1, T2, T3)

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4> SliceTuple<0> for (T0, T1, T2, T3, T4)

§

type FirstN = ()

§

type FirstNStripped = (T0, T1, T2, T3, T4)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4> SliceTuple<1> for (T0, T1, T2, T3, T4)

§

type FirstN = (T0,)

§

type FirstNStripped = (T1, T2, T3, T4)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4> SliceTuple<2> for (T0, T1, T2, T3, T4)

§

type FirstN = (T0, T1)

§

type FirstNStripped = (T2, T3, T4)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4> SliceTuple<3> for (T0, T1, T2, T3, T4)

§

type FirstN = (T0, T1, T2)

§

type FirstNStripped = (T3, T4)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4> SliceTuple<4> for (T0, T1, T2, T3, T4)

§

type FirstN = (T0, T1, T2, T3)

§

type FirstNStripped = (T4,)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4> SliceTuple<5> for (T0, T1, T2, T3, T4)

§

type FirstN = (T0, T1, T2, T3, T4)

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5> SliceTuple<0> for (T0, T1, T2, T3, T4, T5)

§

type FirstN = ()

§

type FirstNStripped = (T0, T1, T2, T3, T4, T5)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5> SliceTuple<1> for (T0, T1, T2, T3, T4, T5)

§

type FirstN = (T0,)

§

type FirstNStripped = (T1, T2, T3, T4, T5)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5> SliceTuple<2> for (T0, T1, T2, T3, T4, T5)

§

type FirstN = (T0, T1)

§

type FirstNStripped = (T2, T3, T4, T5)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5> SliceTuple<3> for (T0, T1, T2, T3, T4, T5)

§

type FirstN = (T0, T1, T2)

§

type FirstNStripped = (T3, T4, T5)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5> SliceTuple<4> for (T0, T1, T2, T3, T4, T5)

§

type FirstN = (T0, T1, T2, T3)

§

type FirstNStripped = (T4, T5)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5> SliceTuple<5> for (T0, T1, T2, T3, T4, T5)

§

type FirstN = (T0, T1, T2, T3, T4)

§

type FirstNStripped = (T5,)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5> SliceTuple<6> for (T0, T1, T2, T3, T4, T5)

§

type FirstN = (T0, T1, T2, T3, T4, T5)

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6> SliceTuple<0> for (T0, T1, T2, T3, T4, T5, T6)

§

type FirstN = ()

§

type FirstNStripped = (T0, T1, T2, T3, T4, T5, T6)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6> SliceTuple<1> for (T0, T1, T2, T3, T4, T5, T6)

§

type FirstN = (T0,)

§

type FirstNStripped = (T1, T2, T3, T4, T5, T6)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6> SliceTuple<2> for (T0, T1, T2, T3, T4, T5, T6)

§

type FirstN = (T0, T1)

§

type FirstNStripped = (T2, T3, T4, T5, T6)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6> SliceTuple<3> for (T0, T1, T2, T3, T4, T5, T6)

§

type FirstN = (T0, T1, T2)

§

type FirstNStripped = (T3, T4, T5, T6)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6> SliceTuple<4> for (T0, T1, T2, T3, T4, T5, T6)

§

type FirstN = (T0, T1, T2, T3)

§

type FirstNStripped = (T4, T5, T6)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6> SliceTuple<5> for (T0, T1, T2, T3, T4, T5, T6)

§

type FirstN = (T0, T1, T2, T3, T4)

§

type FirstNStripped = (T5, T6)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6> SliceTuple<6> for (T0, T1, T2, T3, T4, T5, T6)

§

type FirstN = (T0, T1, T2, T3, T4, T5)

§

type FirstNStripped = (T6,)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6> SliceTuple<7> for (T0, T1, T2, T3, T4, T5, T6)

§

type FirstN = (T0, T1, T2, T3, T4, T5, T6)

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<0> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = ()

§

type FirstNStripped = (T0, T1, T2, T3, T4, T5, T6, T7)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<1> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = (T0,)

§

type FirstNStripped = (T1, T2, T3, T4, T5, T6, T7)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<2> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = (T0, T1)

§

type FirstNStripped = (T2, T3, T4, T5, T6, T7)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<3> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = (T0, T1, T2)

§

type FirstNStripped = (T3, T4, T5, T6, T7)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<4> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = (T0, T1, T2, T3)

§

type FirstNStripped = (T4, T5, T6, T7)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<5> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = (T0, T1, T2, T3, T4)

§

type FirstNStripped = (T5, T6, T7)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<6> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = (T0, T1, T2, T3, T4, T5)

§

type FirstNStripped = (T6, T7)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<7> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = (T0, T1, T2, T3, T4, T5, T6)

§

type FirstNStripped = (T7,)

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(this: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> SliceTuple<8> for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstN = (T0, T1, T2, T3, T4, T5, T6, T7)

§

type FirstNStripped = ()

source§

fn first_n(this: Self) -> Self::FirstN

source§

fn strip_first_n(_: Self) -> Self::FirstNStripped

source§

fn split(this: Self) -> (Self::FirstN, Self::FirstNStripped)

Implementors§