sized_chunks::ring_buffer

Trait Array

Source
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: Sized + PartialEq { ... }
    fn ends_with(&self, slice: &[Self::Output]) -> bool
       where Self::Output: Sized + PartialEq { ... }
}
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: Sized + PartialEq,

Test whether the array starts with the elements in slice.

Source

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

Test whether the array ends with the elements in slice.

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<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>