Trait core::iter::IteratorStable
[-] [+]
[src]
pub trait Iterator { type Item; fn next(&mut self) -> Option<Self::Item>; fn size_hint(&self) -> (usize, Option<usize>) { ... } }
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.
Associated Types
Required Methods
fn next(&mut self) -> Option<Self::Item>
Advance the iterator and return the next value. Return None
when the end is reached.
Provided Methods
fn size_hint(&self) -> (usize, Option<usize>)
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 usize
.
Implementors
impl Iterator for EscapeUnicode
impl Iterator for EscapeDefault
impl<'a, I: Iterator + ?Sized> Iterator for &'a mut I
impl<I> Iterator for Rev<I> where I: DoubleEndedIterator
impl<T, D, I> Iterator for Cloned<I> where T: Clone, D: Deref<Target=T>, I: Iterator<Item=D>
impl<I> Iterator for Cycle<I> where I: Clone + Iterator
impl<T, A, B> Iterator for Chain<A, B> where A: Iterator<Item=T>, B: Iterator<Item=T>
impl<T, U, A, B> Iterator for Zip<A, B> where A: Iterator<Item=T>, B: Iterator<Item=U>
impl<B, I: Iterator, F> Iterator for Map<I, F> where F: FnMut(Item) -> B
impl<I: Iterator, P> Iterator for Filter<I, P> where P: FnMut(&Item) -> bool
impl<B, I: Iterator, F> Iterator for FilterMap<I, F> where F: FnMut(Item) -> Option<B>
impl<I> Iterator for Enumerate<I> where I: Iterator
impl<I: Iterator> Iterator for Peekable<I>
impl<I: Iterator, P> Iterator for SkipWhile<I, P> where P: FnMut(&Item) -> bool
impl<I: Iterator, P> Iterator for TakeWhile<I, P> where P: FnMut(&Item) -> bool
impl<I> Iterator for Skip<I> where I: Iterator
impl<I> Iterator for Take<I> where I: Iterator
impl<A, B, I: Iterator<Item=A>, St, F> Iterator for Scan<I, St, F> where F: FnMut(&mut St, A) -> Option<B>
impl<I: Iterator, U: Iterator, F> Iterator for FlatMap<I, U, F> where F: FnMut(Item) -> U
impl<I> Iterator for Fuse<I> where I: Iterator
impl<I: Iterator, F> Iterator for Inspect<I, F> where F: FnMut(&Item)
impl<A, St, F> Iterator for Unfold<St, F> where F: FnMut(&mut St) -> Option<A>
impl<A: Add<Output=A> + Clone> Iterator for Counter<A>
impl<A: Int + ToPrimitive> Iterator for Range<A>
impl<A: Int + ToPrimitive> Iterator for RangeInclusive<A>
impl<A: Int> Iterator for RangeStep<A>
impl<A: Int> Iterator for RangeStepInclusive<A>
impl<A: Int> Iterator for Range<A>
impl<A: Int> Iterator for RangeFrom<A>
impl<A: Clone> Iterator for Repeat<A>
impl<'a, A> Iterator for Iter<'a, A>
impl<'a, A> Iterator for IterMut<'a, A>
impl<A> Iterator for IntoIter<A>
impl<'a, T> Iterator for Iter<'a, T>
impl<'a, T> Iterator for IterMut<'a, T>
impl<T> Iterator for IntoIter<T>
impl<'a, T> Iterator for Iter<'a, T>
impl<'a, T> Iterator for IterMut<'a, T>
impl<'a, T, P> Iterator for Split<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator for SplitMut<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator for SplitN<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator for RSplitN<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator for SplitNMut<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T, P> Iterator for RSplitNMut<'a, T, P> where P: FnMut(&T) -> bool
impl<'a, T> Iterator for Windows<'a, T>
impl<'a, T> Iterator for Chunks<'a, T>
impl<'a, T> Iterator for ChunksMut<'a, T>
impl<'a> Iterator for Chars<'a>
impl<'a> Iterator for CharIndices<'a>
impl<'a> Iterator for Bytes<'a>
impl<'a> Iterator for MatchIndices<'a>
impl<'a> Iterator for SplitStr<'a>
impl<'a, P: CharEq> Iterator for Split<'a, P>
impl<'a, P: CharEq> Iterator for SplitTerminator<'a, P>
impl<'a, P: CharEq> Iterator for SplitN<'a, P>
impl<'a, P: CharEq> Iterator for RSplitN<'a, P>
impl<'a> Iterator for Lines<'a>
impl<'a> Iterator for LinesAny<'a>