Trait core::iter::RandomAccessIteratorUnstable
[-] [+]
[src]
pub trait RandomAccessIterator: Iterator { fn indexable(&self) -> usize; fn idx(&mut self, index: usize) -> Option<Self::Item>; }
An object implementing random access indexing by usize
A RandomAccessIterator
should be either infinite or a
DoubleEndedIterator
. Calling next()
or next_back()
on a
RandomAccessIterator
reduces the indexable range accordingly. That is,
it.idx(1)
will become it.idx(0)
after it.next()
is called.
Required Methods
fn indexable(&self) -> usize
Returns the number of indexable elements. At most std::usize::MAX
elements are indexable, even if the iterator represents a longer range.
fn idx(&mut self, index: usize) -> Option<Self::Item>
Returns an element at an index, or None
if the index is out of bounds
Implementors
impl<I> RandomAccessIterator for Rev<I> where I: DoubleEndedIterator + RandomAccessIterator
impl<'a, I, T: 'a> RandomAccessIterator for Cloned<I> where I: RandomAccessIterator<Item=&'a T>, T: Clone
impl<I> RandomAccessIterator for Cycle<I> where I: Clone + RandomAccessIterator
impl<A, B> RandomAccessIterator for Chain<A, B> where A: RandomAccessIterator, B: RandomAccessIterator<Item=A>
impl<A, B> RandomAccessIterator for Zip<A, B> where A: RandomAccessIterator, B: RandomAccessIterator
impl<B, I: RandomAccessIterator, F> RandomAccessIterator for Map<I, F> where F: FnMut(I) -> B
impl<I> RandomAccessIterator for Enumerate<I> where I: RandomAccessIterator
impl<I> RandomAccessIterator for Skip<I> where I: RandomAccessIterator
impl<I> RandomAccessIterator for Take<I> where I: RandomAccessIterator
impl<I> RandomAccessIterator for Fuse<I> where I: RandomAccessIterator
impl<I: RandomAccessIterator, F> RandomAccessIterator for Inspect<I, F> where F: FnMut(&I)
impl<A: Clone> RandomAccessIterator for Repeat<A>
impl<'a, T> RandomAccessIterator for Iter<'a, T>
impl<'a, T> RandomAccessIterator for Windows<'a, T>
impl<'a, T> RandomAccessIterator for Chunks<'a, T>