pub trait Array: HasLength + Index<usize> {
    // Provided methods
    fn get(&self, index: usize) -> Option<&Self::Output> { ... }
    fn first(&self) -> Option<&Self::Output> { ... }
    fn last(&self) -> Option<&Self::Output> { ... }
    fn contains(&self, target: &Self::Output) -> bool
       where Self::Output: PartialEq { ... }
    fn binary_search(&self, target: &Self::Output) -> Result<usize, usize>
       where Self::Output: Ord { ... }
    fn binary_search_by<F>(&self, compare: F) -> Result<usize, usize>
       where F: FnMut(&Self::Output) -> Ordering { ... }
    fn binary_search_by_key<K, F>(
        &self,
        key: &K,
        extract: F
    ) -> Result<usize, usize>
       where F: FnMut(&Self::Output) -> K,
             K: Ord { ... }
    fn is_sorted(&self) -> bool
       where Self::Output: PartialOrd { ... }
    fn is_sorted_by<F>(&self, compare: F) -> bool
       where F: FnMut(&Self::Output, &Self::Output) -> Option<Ordering> { ... }
    fn is_sorted_by_key<K, F>(&self, extract: F) -> bool
       where F: FnMut(&Self::Output) -> K,
             K: PartialOrd { ... }
    fn starts_with(&self, slice: &[Self::Output]) -> bool
       where Self::Output: PartialEq + Sized { ... }
    fn ends_with(&self, slice: &[Self::Output]) -> bool
       where Self::Output: PartialEq + Sized { ... }
}
Expand description

Trait for data structures which are indexed like arrays.

Types implementing this trait must have populated indexes from 0 up to but not including self.len().

Provided Methods§

source

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

Get a reference to the element at the given index.

source

fn first(&self) -> Option<&Self::Output>

Get a reference to the first element in the array.

source

fn last(&self) -> Option<&Self::Output>

Get a reference to the last element in the array.

source

fn contains(&self, target: &Self::Output) -> bool
where Self::Output: PartialEq,

Return true if an element equivalent to target exists in the array.

Perform a binary search for target.

source

fn binary_search_by<F>(&self, compare: F) -> Result<usize, usize>
where F: FnMut(&Self::Output) -> Ordering,

Perform a binary search using a comparator function.

source

fn binary_search_by_key<K, F>( &self, key: &K, extract: F ) -> Result<usize, usize>
where F: FnMut(&Self::Output) -> K, K: Ord,

Perform a binary search using a key and a key extractor function.

source

fn is_sorted(&self) -> bool
where Self::Output: PartialOrd,

Test whether the array is sorted.

source

fn is_sorted_by<F>(&self, compare: F) -> bool
where F: FnMut(&Self::Output, &Self::Output) -> Option<Ordering>,

Test whether the array is sorted using a comparator function.

source

fn is_sorted_by_key<K, F>(&self, extract: F) -> bool
where F: FnMut(&Self::Output) -> K, K: PartialOrd,

Test whether the array is sorted using a key extractor function.

source

fn starts_with(&self, slice: &[Self::Output]) -> bool
where Self::Output: PartialEq + Sized,

Test whether the array starts with the elements in slice.

source

fn ends_with(&self, slice: &[Self::Output]) -> bool
where Self::Output: PartialEq + Sized,

Test whether the array ends with the elements in slice.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<A> Array for VecDeque<A>

source§

fn get(&self, index: usize) -> Option<&<VecDeque<A> as Index<usize>>::Output>

source§

fn contains(&self, target: &<VecDeque<A> as Index<usize>>::Output) -> bool
where <VecDeque<A> as Index<usize>>::Output: PartialEq,

Implementors§

source§

impl<'a, A: 'a, const N: usize> Array for Slice<'a, A, N>

source§

impl<'a, A: 'a, const N: usize> Array for SliceMut<'a, A, N>

source§

impl<A, const N: usize> Array for RingBuffer<A, N>