Trait Shorten

unsafe trait Shorten<T>: Sized + GenericSequence<T>

Defines a GenericSequence which can be shortened by removing the first or last element from it.

Additionally, any shortened sequence can be lengthened by appending or prepending an element to it.

Associated Types

type Shorter: TraitBound { trait_: Path { path: "Lengthen", id: Id(145), args: Some(AngleBracketed { args: [Type(Generic("T"))], constraints: [AssocItemConstraint { name: "Longer", args: None, binding: Equality(Type(Generic("Self"))) }] }) }, generic_params: [], modifier: None }

GenericSequence that has one less element than Self

Required Methods

fn pop_back(self: Self) -> (<Self as >::Shorter, T)

Returns a new array without the last element, and the last element.

Example:

# use generic_array::{arr, sequence::Shorten};
# fn main() {
let a = arr![i32; 1, 2, 3, 4];

let (init, last) = a.pop_back();

assert_eq!(init, arr![i32; 1, 2, 3]);
assert_eq!(last, 4);
# }
fn pop_front(self: Self) -> (T, <Self as >::Shorter)

Returns a new array without the first element, and the first element. Example:

# use generic_array::{arr, sequence::Shorten};
# fn main() {
let a = arr![i32; 1, 2, 3, 4];

let (head, tail) = a.pop_front();

assert_eq!(head, 1);
assert_eq!(tail, arr![i32; 2, 3, 4]);
# }

Implementors