Trait core::iter::RandomAccessIterator
[−]
[src]
pub trait RandomAccessIterator: Iterator { fn indexable(&self) -> usize; fn idx(&mut self, index: usize) -> Option<Self::Item>; }
: trait has not proven itself as a widely useful abstraction for iterators, and more time may be needed for iteration on the design
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
: trait has not proven itself as a widely useful abstraction for iterators, and more time may be needed for iteration on the design
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>
: trait has not proven itself as a widely useful abstraction for iterators, and more time may be needed for iteration on the design
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::Item>
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::Item) -> 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::Item)
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>