Trait core::iter::RandomAccessIteratorUnstable
[-]
[+]
[src]
pub trait RandomAccessIterator: Iterator {
fn indexable(&self) -> usize;
fn idx(&mut self, index: usize) -> Option<Item>;
}An object implementing random access indexing by uint
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::uint::MAX
elements are indexable, even if the iterator represents a longer range.
fn idx(&mut self, index: usize) -> Option<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 + RandomAccessIteratorimpl<I> RandomAccessIterator for Cycle<I> where I: Clone + RandomAccessIteratorimpl<T, A, B> RandomAccessIterator for Chain<A, B> where A: RandomAccessIterator<Item=T>, B: RandomAccessIterator<Item=T>impl<T, U, A, B> RandomAccessIterator for Zip<A, B> where A: RandomAccessIterator<Item=T>, B: RandomAccessIterator<Item=U>impl<A, B, I, F> RandomAccessIterator for Map<A, B, I, F> where I: RandomAccessIterator<Item=A>, F: FnMut(A) -> Bimpl<I> RandomAccessIterator for Enumerate<I> where I: RandomAccessIteratorimpl<I> RandomAccessIterator for Skip<I> where I: RandomAccessIteratorimpl<I> RandomAccessIterator for Take<I> where I: RandomAccessIteratorimpl<I> RandomAccessIterator for Fuse<I> where I: RandomAccessIteratorimpl<A, I, F> RandomAccessIterator for Inspect<A, I, F> where I: RandomAccessIterator<Item=A>, F: FnMut(&A)impl<A: Clone> RandomAccessIterator for Repeat<A>impl<'a, T> RandomAccessIterator for Iter<'a, T>impl<'a, T> RandomAccessIterator for Chunks<'a, T>