# [−] [src] Trait generic_array::sequence::Lengthen

    pub unsafe trait Lengthen<T>: Sized + GenericSequence<T> {
        type Longer: Shorten<T, Shorter = Self>;
        fn append(self, last: T) -> Self::Longer;
        fn prepend(self, first: T) -> Self::Longer;
    }

Defines any `GenericSequence` which can be lengthened or extended by appending or prepending an element to it.

Any lengthened sequence can be shortened back to the original using `pop_front` or `pop_back`

## Associated Types

### `type Longer: Shorten<T, Shorter = Self>` [src]

`GenericSequence` that has one more element than `Self`

Loading content...

## Required methods

### `fn append(self, last: T) -> Self::Longer` [src]

Returns a new array with the given element appended to the end of it.

Example:

    let a = arr![i32; 1, 2, 3];

    let b = a.append(4);

    assert_eq!(b, arr![i32; 1, 2, 3, 4]);

### `fn prepend(self, first: T) -> Self::Longer` [src]

Returns a new array with the given element prepended to the front of it.

Example:

    let a = arr![i32; 1, 2, 3];

    let b = a.prepend(4);

    assert_eq!(b, arr![i32; 4, 1, 2, 3]);

Loading content...

## Implementors

### `impl<T, N: ArrayLength<T>> Lengthen<T> for GenericArray<T, N> where
N: Add<B1>,
Add1<N>: ArrayLength<T>,
Add1<N>: Sub<B1, Output = N>,
Sub1<Add1<N>>: ArrayLength<T>,` [src]

#### `type Longer = GenericArray<T, Add1<N>>`

#### `fn append(self, last: T) -> Self::Longer` [src]

#### `fn prepend(self, first: T) -> Self::Longer` [src]

Loading content...