Trait Append

Source
pub trait Append {
    type Append<T>;
}
Expand description

Trait to append some value to the end of a tuple.

§Examples

// Append a value to the unit value.
assert_type_eq_all!(<() as Append>::Append<usize>, (usize,));

// Append a value to a single value tuple.
assert_type_eq_all!(<(usize,) as Append>::Append<char>, (usize, char));

// Append a value to a multi-value tuple.
assert_type_eq_all!(<(usize, char) as Append>::Append<bool>, (usize, char, bool));

The trait can also be used to modify the return value based on some generic.

fn append_usize<T>(value: T) -> T::Append<usize>
where
    T: Append
{
    // ...
}

let result: (char, bool, usize) = append_usize(('a', true));

Required Associated Types§

Source

type Append<T>

Append operation, which will be the type of the result.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Append for ()

Source§

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

Source§

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

Source§

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

Source§

impl<T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Append for (T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)

Source§

impl<T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Append for (T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)

Source§

impl<T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Append for (T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)

Source§

impl<T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Append for (T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)

Source§

impl<T8, T9, T10, T11, T12, T13, T14, T15, T16> Append for (T8, T9, T10, T11, T12, T13, T14, T15, T16)

Source§

impl<T9, T10, T11, T12, T13, T14, T15, T16> Append for (T9, T10, T11, T12, T13, T14, T15, T16)

Source§

impl<T10, T11, T12, T13, T14, T15, T16> Append for (T10, T11, T12, T13, T14, T15, T16)

Source§

impl<T11, T12, T13, T14, T15, T16> Append for (T11, T12, T13, T14, T15, T16)

Source§

impl<T12, T13, T14, T15, T16> Append for (T12, T13, T14, T15, T16)

Source§

impl<T13, T14, T15, T16> Append for (T13, T14, T15, T16)

Source§

impl<T14, T15, T16> Append for (T14, T15, T16)

Source§

impl<T15, T16> Append for (T15, T16)

Source§

impl<T16> Append for (T16,)

Implementors§