Trait tuple::TupleElements

source ·
pub unsafe trait TupleElements: Sized {
    type Element;

    const N: usize;

    // Required methods
    fn get(&self, n: usize) -> Option<&Self::Element>;
    fn get_mut(&mut self, n: usize) -> Option<&mut Self::Element>;
    fn from_iter<I>(iter: I) -> Option<Self>
       where I: Iterator<Item = Self::Element>;

    // Provided methods
    fn elements(&self) -> Elements<&Self>  { ... }
    fn elements_mut(&mut self) -> Elements<&mut Self>  { ... }
    fn into_elements(self) -> IntoElements<Self>  { ... }
}
Expand description

This trait is marked as unsafe, due to the requirement of the get_mut method, which is required work as an injective map of index -> element

A tuple must not have a Drop implementation.

Required Associated Types§

Required Associated Constants§

source

const N: usize

Required Methods§

source

fn get(&self, n: usize) -> Option<&Self::Element>

attempt to access the n-th element

source

fn get_mut(&mut self, n: usize) -> Option<&mut Self::Element>

attempt to access the n-th element mutablbly. This function shall not return the same data for two different indices.

source

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

Provided Methods§

source

fn elements(&self) -> Elements<&Self>

returns an Iterator over references to the elements of the tuple

source

fn elements_mut(&mut self) -> Elements<&mut Self>

returns an Iterator over mutable references to elements of the tuple

source

fn into_elements(self) -> IntoElements<Self>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T> TupleElements for [T; 1]

§

type Element = T

source§

const N: usize = 1usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 2]

§

type Element = T

source§

const N: usize = 2usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 3]

§

type Element = T

source§

const N: usize = 3usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 4]

§

type Element = T

source§

const N: usize = 4usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 5]

§

type Element = T

source§

const N: usize = 5usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 6]

§

type Element = T

source§

const N: usize = 6usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 7]

§

type Element = T

source§

const N: usize = 7usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 8]

§

type Element = T

source§

const N: usize = 8usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 9]

§

type Element = T

source§

const N: usize = 9usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 10]

§

type Element = T

source§

const N: usize = 10usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 11]

§

type Element = T

source§

const N: usize = 11usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 12]

§

type Element = T

source§

const N: usize = 12usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 13]

§

type Element = T

source§

const N: usize = 13usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 14]

§

type Element = T

source§

const N: usize = 14usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 15]

§

type Element = T

source§

const N: usize = 15usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for [T; 16]

§

type Element = T

source§

const N: usize = 16usize

source§

fn elements(&self) -> Elements<&Self>

source§

fn elements_mut(&mut self) -> Elements<&mut Self>

source§

fn into_elements(self) -> IntoElements<Self>

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T)

§

type Element = T

source§

const N: usize = 2usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T)

§

type Element = T

source§

const N: usize = 3usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T)

§

type Element = T

source§

const N: usize = 4usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T)

§

type Element = T

source§

const N: usize = 5usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 6usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 7usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 8usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 9usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 10usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 11usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 12usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 13usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 14usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 15usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T)

§

type Element = T

source§

const N: usize = 16usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

source§

impl<T> TupleElements for (T,)

§

type Element = T

source§

const N: usize = 1usize

source§

fn get(&self, index: usize) -> Option<&T>

source§

fn get_mut(&mut self, index: usize) -> Option<&mut T>

source§

fn from_iter<I>(iter: I) -> Option<Self>
where I: Iterator<Item = Self::Element>,

Implementors§

source§

impl<T> TupleElements for T1<T>

§

type Element = T

source§

const N: usize = 1usize

source§

impl<T> TupleElements for T2<T, T>

§

type Element = T

source§

const N: usize = 2usize

source§

impl<T> TupleElements for T3<T, T, T>

§

type Element = T

source§

const N: usize = 3usize

source§

impl<T> TupleElements for T4<T, T, T, T>

§

type Element = T

source§

const N: usize = 4usize

source§

impl<T> TupleElements for T5<T, T, T, T, T>

§

type Element = T

source§

const N: usize = 5usize

source§

impl<T> TupleElements for T6<T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 6usize

source§

impl<T> TupleElements for T7<T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 7usize

source§

impl<T> TupleElements for T8<T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 8usize

source§

impl<T> TupleElements for T9<T, T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 9usize

source§

impl<T> TupleElements for T10<T, T, T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 10usize

source§

impl<T> TupleElements for T11<T, T, T, T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 11usize

source§

impl<T> TupleElements for T12<T, T, T, T, T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 12usize

source§

impl<T> TupleElements for T13<T, T, T, T, T, T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 13usize

source§

impl<T> TupleElements for T14<T, T, T, T, T, T, T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 14usize

source§

impl<T> TupleElements for T15<T, T, T, T, T, T, T, T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 15usize

source§

impl<T> TupleElements for T16<T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T>

§

type Element = T

source§

const N: usize = 16usize