Trait ordes::OrdesRest

source ·
pub trait OrdesRest {
    type Newlen;
    type Output;

    // Required method
    fn rest(self) -> (Self::Newlen, Self::Output);
}
Expand description

Trait for defining the removal of the first element from an array- or tuple-like data structure.

Required Associated Types§

source

type Newlen

Type of the container after .rest() has been called.

source

type Output

Type of the removed value.

Required Methods§

source

fn rest(self) -> (Self::Newlen, Self::Output)

Removes the first element from self and returns it.

Examples

Using an array:

let foo: [u8; 5] = [0, 1, 2, 3, 4];
let (foo, pop) = foo.rest();
assert_eq!(foo, [1, 2, 3, 4]);
assert_eq!(pop, 0);

Using a tuple:

let foo = ('a', false, b'c', "d");
let (foo, pop) = foo.rest();
assert_eq!(foo, (false, b'c', "d"));
assert_eq!(pop, 'a');

Implementations on Foreign Types§

source§

impl<T> OrdesRest for [T; 19]

§

type Newlen = [T; 18]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 25]

§

type Newlen = [T; 24]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)

source§

impl<T0, T1, T2> OrdesRest for (T0, T1, T2)

§

type Newlen = (T1, T2)

§

type Output = T0

source§

fn rest(self) -> (Self::Newlen, T0)

source§

impl<T> OrdesRest for [T; 11]

§

type Newlen = [T; 10]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

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

§

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

§

type Output = T0

source§

fn rest(self) -> (Self::Newlen, T0)

source§

impl<T> OrdesRest for [T; 2]

§

type Newlen = [T; 1]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 16]

§

type Newlen = [T; 15]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 27]

§

type Newlen = [T; 26]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

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

§

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

§

type Output = T0

source§

fn rest(self) -> (Self::Newlen, T0)

source§

impl<T> OrdesRest for [T; 17]

§

type Newlen = [T; 16]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)

source§

impl<T> OrdesRest for [T; 32]

§

type Newlen = [T; 31]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 29]

§

type Newlen = [T; 28]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

source§

impl<T> OrdesRest for [T; 21]

§

type Newlen = [T; 20]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1> OrdesRest for (T0, T1)

§

type Newlen = T1

§

type Output = T0

source§

fn rest(self) -> (Self::Newlen, T0)

source§

impl<T> OrdesRest for [T; 7]

§

type Newlen = [T; 6]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)

source§

impl<T0> OrdesRest for (T0,)

§

type Newlen = ()

§

type Output = T0

source§

fn rest(self) -> (Self::Newlen, T0)

source§

impl<T> OrdesRest for [T; 1]

§

type Newlen = ()

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, T)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31)

source§

impl<T> OrdesRest for [T; 22]

§

type Newlen = [T; 21]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 28]

§

type Newlen = [T; 27]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 14]

§

type Newlen = [T; 13]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28)

source§

impl<T> OrdesRest for [T; 26]

§

type Newlen = [T; 25]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

source§

impl<T> OrdesRest for [T; 18]

§

type Newlen = [T; 17]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)

source§

impl<T> OrdesRest for [T; 6]

§

type Newlen = [T; 5]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 4]

§

type Newlen = [T; 3]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25)

source§

impl<T> OrdesRest for [T; 24]

§

type Newlen = [T; 23]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 12]

§

type Newlen = [T; 11]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)

source§

impl<T> OrdesRest for [T; 5]

§

type Newlen = [T; 4]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 15]

§

type Newlen = [T; 14]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)

source§

impl<T> OrdesRest for [T; 9]

§

type Newlen = [T; 8]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 8]

§

type Newlen = [T; 7]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 13]

§

type Newlen = [T; 12]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 20]

§

type Newlen = [T; 19]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

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

§

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

§

type Output = T0

source§

fn rest(self) -> (Self::Newlen, T0)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)

source§

impl<T> OrdesRest for [T; 10]

§

type Newlen = [T; 9]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 31]

§

type Newlen = [T; 30]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29)

source§

impl<T> OrdesRest for [T; 23]

§

type Newlen = [T; 22]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 3]

§

type Newlen = [T; 2]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T> OrdesRest for [T; 30]

§

type Newlen = [T; 29]

§

type Output = T

source§

fn rest(self) -> (Self::Newlen, Self::Output)

source§

impl<T0, T1, T2, T3> OrdesRest for (T0, T1, T2, T3)

§

type Newlen = (T1, T2, T3)

§

type Output = T0

source§

fn rest(self) -> (Self::Newlen, T0)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> OrdesRest for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)

source§

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

§

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

§

type Output = T0

source§

fn rest(self) -> (Self::Newlen, T0)

Implementors§