Trait std::iter::RandomAccessIteratorUnstable
[-] [+]
[src]
pub trait RandomAccessIterator: Iterator where Self: Iterator {
fn indexable(&self) -> usize;
fn idx(&mut self, index: usize) -> Option<<Self as Iterator>::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
Return 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 as Iterator>::Item>
Return an element at an index, or None
if the index is out of bounds
Implementors
impl<I> RandomAccessIterator for Rev<I> where I: DoubleEndedIterator, I: RandomAccessIterator
impl<T, D, I> RandomAccessIterator for Cloned<I> where T: Clone, D: Deref, <D as Deref>::Target == T, I: RandomAccessIterator, <I as Iterator>::Item == D
impl<I> RandomAccessIterator for Cycle<I> where I: Clone, I: RandomAccessIterator
impl<T, A, B> RandomAccessIterator for Chain<A, B> where A: RandomAccessIterator, <A as Iterator>::Item == T, B: RandomAccessIterator, <B as Iterator>::Item == T
impl<T, U, A, B> RandomAccessIterator for Zip<A, B> where A: RandomAccessIterator, <A as Iterator>::Item == T, B: RandomAccessIterator, <B as Iterator>::Item == U
impl<B, I, F> RandomAccessIterator for Map<I, F> where I: RandomAccessIterator, F: FnMut(<I as Iterator>::Item), <F as FnMut(<I as Iterator>::Item)>::Output == 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, F> RandomAccessIterator for Inspect<I, F> where I: RandomAccessIterator, F: FnMut(&<I as Iterator>::Item), <F as FnMut(&<I as Iterator>::Item)>::Output == ()
impl<A> RandomAccessIterator for Repeat<A> where A: Clone
impl<'a, T> RandomAccessIterator for Iter<'a, T>
impl<'a, T> RandomAccessIterator for Windows<'a, T>
impl<'a, T> RandomAccessIterator for Chunks<'a, T>
impl<'a> RandomAccessIterator for Iter<'a>
impl<'a, T> RandomAccessIterator for Iter<'a, T>