Trait core::iter::IteratorUnstable
[-]
[+]
[src]
pub trait Iterator<A> { fn next(&mut self) -> Option<A>; fn size_hint(&self) -> (uint, Option<uint>) { ... } }
An interface for dealing with "external iterators". These types of iterators can be resumed at any time as all state is stored internally as opposed to being located on the call stack.
The Iterator protocol states that an iterator yields a (potentially-empty,
potentially-infinite) sequence of values, and returns None
to signal that
it's finished. The Iterator protocol does not define behavior after None
is returned. A concrete Iterator implementation may choose to behave however
it wishes, either by returning None
infinitely, or by doing something
else.
Required Methods
fn next(&mut self) -> Option<A>
Advance the iterator and return the next value. Return None
when the end is reached.
Provided Methods
fn size_hint(&self) -> (uint, Option<uint>)
Returns a lower and upper bound on the remaining length of the iterator.
An upper bound of None
means either there is no known upper bound, or the upper bound
does not fit within a uint
.
Implementors
impl<Idx: Clone + Step> Iterator<Idx> for Range<Idx>
impl<Idx: Clone + Step> Iterator<Idx> for RangeFrom<Idx>
impl Iterator<char> for EscapeUnicode
impl Iterator<char> for EscapeDefault
impl<A, T: DoubleEndedIterator<A>> Iterator<A> for Rev<T>
impl<'a, A, T: Iterator<A> + 'a> Iterator<A> for ByRef<'a, T>
impl<A: Clone, D: Deref<A>, I: Iterator<D>> Iterator<A> for Cloned<I>
impl<A, T: Clone + Iterator<A>> Iterator<A> for Cycle<T>
impl<A, T: Iterator<A>, U: Iterator<A>> Iterator<A> for Chain<T, U>
impl<A, B, T: Iterator<A>, U: Iterator<B>> Iterator<(A, B)> for Zip<T, U>
impl<A, B, I, F> Iterator<B> for Map<A, B, I, F> where I: Iterator<A>, F: FnMut(A) -> B
impl<A, I, P> Iterator<A> for Filter<A, I, P> where I: Iterator<A>, P: FnMut(&A) -> bool
impl<A, B, I, F> Iterator<B> for FilterMap<A, B, I, F> where I: Iterator<A>, F: FnMut(A) -> Option<B>
impl<A, T: Iterator<A>> Iterator<(uint, A)> for Enumerate<T>
impl<A, T: Iterator<A>> Iterator<A> for Peekable<A, T>
impl<A, I, P> Iterator<A> for SkipWhile<A, I, P> where I: Iterator<A>, P: FnMut(&A) -> bool
impl<A, I, P> Iterator<A> for TakeWhile<A, I, P> where I: Iterator<A>, P: FnMut(&A) -> bool
impl<A, T: Iterator<A>> Iterator<A> for Skip<T>
impl<A, T: Iterator<A>> Iterator<A> for Take<T>
impl<A, B, I, St, F> Iterator<B> for Scan<A, B, I, St, F> where I: Iterator<A>, F: FnMut(&mut St, A) -> Option<B>
impl<A, B, I, U, F> Iterator<B> for FlatMap<A, B, I, U, F> where I: Iterator<A>, U: Iterator<B>, F: FnMut(A) -> U
impl<A, T: Iterator<A>> Iterator<A> for Fuse<T>
impl<A, I, F> Iterator<A> for Inspect<A, I, F> where I: Iterator<A>, F: FnMut(&A)
impl<A, St, F> Iterator<A> for Unfold<A, St, F> where F: FnMut(&mut St) -> Option<A>
impl<A: Add<A, A> + Clone> Iterator<A> for Counter<A>
impl<A: Int + ToPrimitive> Iterator<A> for Range<A>
impl<A: Int + ToPrimitive> Iterator<A> for RangeInclusive<A>
impl<A: Int> Iterator<A> for RangeStep<A>
impl<A: Int> Iterator<A> for RangeStepInclusive<A>
impl<A: Clone> Iterator<A> for Repeat<A>
impl<'a, A> Iterator<&'a A> for Iter<'a, A>
impl<'a, A> Iterator<&'a mut A> for IterMut<'a, A>
impl<A> Iterator<A> for IntoIter<A>
impl<'a, T> Iterator<&'a T> for Iter<'a, T>
impl<'a, T> Iterator<&'a mut T> for IterMut<'a, T>
impl<T> Iterator<T> for IntoIter<T>
impl<'a, T> Iterator<&'a T> for Iter<'a, T>
impl<'a, T> Iterator<&'a mut T> for IterMut<'a, T>
impl<'a, T, P> Iterator<&'a [T]> for Split<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator<&'a mut [T]> for SplitMut<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator<&'a [T]> for SplitN<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator<&'a [T]> for RSplitN<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator<&'a mut [T]> for SplitNMut<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator<&'a mut [T]> for RSplitNMut<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T> Iterator<&'a [T]> for Windows<'a, T>
impl<'a, T> Iterator<&'a [T]> for Chunks<'a, T>
impl<'a, T> Iterator<&'a mut [T]> for ChunksMut<'a, T>
impl<'a> Iterator<char> for Chars<'a>
impl<'a> Iterator<(uint, char)> for CharIndices<'a>
impl<'a> Iterator<u8> for Bytes<'a>
impl<'a, Sep: CharEq> Iterator<&'a str> for CharSplits<'a, Sep>
impl<'a, Sep: CharEq> Iterator<&'a str> for CharSplitsN<'a, Sep>
impl<'a> Iterator<(uint, uint)> for MatchIndices<'a>
impl<'a> Iterator<&'a str> for SplitStr<'a>
impl<'a, P: CharEq> Iterator<&'a str> for Split<'a, P>
impl<'a, P: CharEq> Iterator<&'a str> for SplitTerminator<'a, P>
impl<'a, P: CharEq> Iterator<&'a str> for SplitN<'a, P>
impl<'a, P: CharEq> Iterator<&'a str> for RSplitN<'a, P>
impl<'a> Iterator<&'a str> for Lines<'a>
impl<'a> Iterator<&'a str> for LinesAny<'a>