VecLike

Trait VecLike 

Source
pub trait VecLike:
    Deref<Target = [Self::TI]>
    + DerefMut
    + Index<usize, Output = Self::TI>
    + Index<RangeFull, Output = [Self::TI]>
    + Index<Range<usize>, Output = [Self::TI]>
    + Index<RangeFrom<usize>, Output = [Self::TI]>
    + IndexMut<RangeFrom<usize>, Output = [Self::TI]>
    + IndexMut<usize>
    + IndexMut<RangeFull, Output = [Self::TI]>
    + IndexMut<Range<usize>, Output = [Self::TI]>
    + IntoIterator<Item = Self::TI>
    + AsRef<[Self::TI]>
    + AsMut<[Self::TI]>
    + Default
    + FromIterator<Self::TI>
    + Extend<Self::TI> {
    type TI;

    // Required methods
    fn len(&self) -> usize;
    fn reserve(&mut self, additional: usize);
    fn push(&mut self, item: Self::Item);
    fn pop(&mut self) -> Option<Self::Item>;
    fn remove(&mut self, index: usize) -> Self::Item;
    fn insert(&mut self, index: usize, item: Self::Item);
    fn clear(&mut self);
    fn truncate(&mut self, len: usize);
    fn remove_range<R>(&mut self, range: R)
       where R: RangeBounds<usize>;

    // Provided method
    fn is_empty(&self) -> bool { ... }
}

Required Associated Types§

Required Methods§

Source

fn len(&self) -> usize

Source

fn reserve(&mut self, additional: usize)

Source

fn push(&mut self, item: Self::Item)

Source

fn pop(&mut self) -> Option<Self::Item>

Source

fn remove(&mut self, index: usize) -> Self::Item

Source

fn insert(&mut self, index: usize, item: Self::Item)

Source

fn clear(&mut self)

Source

fn truncate(&mut self, len: usize)

Source

fn remove_range<R>(&mut self, range: R)
where R: RangeBounds<usize>,

Provided Methods§

Source

fn is_empty(&self) -> bool

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 + Clone> VecLike for ArrayVec<A>

Source§

type TI = <A as Array>::Item

Source§

fn len(&self) -> usize

Source§

fn push(&mut self, item: A::Item)

Source§

fn pop(&mut self) -> Option<A::Item>

Source§

fn remove(&mut self, index: usize) -> A::Item

Source§

fn insert(&mut self, index: usize, item: A::Item)

Source§

fn clear(&mut self)

Source§

fn reserve(&mut self, _: usize)

Source§

fn truncate(&mut self, len: usize)

Source§

fn remove_range<R>(&mut self, range: R)
where R: RangeBounds<usize>,

Source§

impl<T> VecLike for Vec<T>

Source§

type TI = T

Source§

fn len(&self) -> usize

Source§

fn push(&mut self, item: T)

Source§

fn pop(&mut self) -> Option<T>

Source§

fn remove(&mut self, index: usize) -> T

Source§

fn insert(&mut self, index: usize, item: T)

Source§

fn clear(&mut self)

Source§

fn reserve(&mut self, additional: usize)

Source§

fn truncate(&mut self, len: usize)

Source§

fn remove_range<R>(&mut self, range: R)
where R: RangeBounds<usize>,

Implementors§