Trait std::iter::IteratorStable
[-]
[+]
[src]
pub trait Iterator {
type Item;
fn next(&mut self) -> Option<<Self as Iterator>::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.
Required Methods
type Item
fn next(&mut self) -> Option<<Self as Iterator>::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 uint.
Implementors
impl<Idx: Clone + Step> Iterator for Range<Idx>impl<Idx: Clone + Step> Iterator for RangeFrom<Idx>impl Iterator for EscapeUnicodeimpl Iterator for EscapeDefaultimpl<I> Iterator for Rev<I>impl<'a, I> Iterator for ByRef<'a, I>impl<T, D, I> Iterator for Cloned<I>impl<I> Iterator for Cycle<I>impl<T, A, B> Iterator for Chain<A, B>impl<T, U, A, B> Iterator for Zip<A, B>impl<A, B, I, F> Iterator for Map<A, B, I, F>impl<A, I, P> Iterator for Filter<A, I, P>impl<A, B, I, F> Iterator for FilterMap<A, B, I, F>impl<I> Iterator for Enumerate<I>impl<T, I> Iterator for Peekable<T, I>impl<A, I, P> Iterator for SkipWhile<A, I, P>impl<A, I, P> Iterator for TakeWhile<A, I, P>impl<I> Iterator for Skip<I>impl<I> Iterator for Take<I>impl<A, B, I, St, F> Iterator for Scan<A, B, I, St, F>impl<A, B, I, U, F> Iterator for FlatMap<A, B, I, U, F>impl<I> Iterator for Fuse<I>impl<A, I, F> Iterator for Inspect<A, I, F>impl<A, St, F> Iterator for Unfold<A, St, F>impl<A: Add<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: Clone> Iterator for Repeat<A>impl<A> Iterator for Item<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>impl<'a, T, P> Iterator for SplitMut<'a, T, P>impl<T, I: SplitIter> Iterator for GenericSplitN<I>impl<'a, T, P> Iterator for SplitN<'a, T, P>impl<'a, T, P> Iterator for RSplitN<'a, T, P>impl<'a, T, P> Iterator for SplitNMut<'a, T, P>impl<'a, T, P> Iterator for RSplitNMut<'a, T, P>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, Sep: CharEq> Iterator for CharSplits<'a, Sep>impl<'a, Sep: CharEq> Iterator for CharSplitsN<'a, Sep>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>impl<'r, R: Reader> Iterator for Bytes<'r, R>impl Iterator for Directoriesimpl<'r, T: Buffer> Iterator for Lines<'r, T>impl<'r, T: Buffer> Iterator for Chars<'r, T>impl<'a, T, A: ?Sized + Acceptor<T>> Iterator for IncomingConnections<'a, A>impl<'a, T: Rand, R: Rng> Iterator for Generator<'a, T, R>impl<'a, R: Rng> Iterator for AsciiGenerator<'a, R>impl<'a, K, V> Iterator for Iter<'a, K, V>impl<'a, K, V> Iterator for IterMut<'a, K, V>impl<K, V> Iterator for IntoIter<K, V>impl<'a, K, V> Iterator for Keys<'a, K, V>impl<'a, K, V> Iterator for Values<'a, K, V>impl<'a, K: 'a, V: 'a> Iterator for Drain<'a, K, V>impl<'a, K> Iterator for Iter<'a, K>impl<K> Iterator for IntoIter<K>impl<'a, K: 'a> Iterator for Drain<'a, K>impl<'a, T, S, H> Iterator for Intersection<'a, T, S> where T: Eq + Hash<H>, S: HashState<Hasher=H>, H: Hasher<Output=u64>impl<'a, T, S, H> Iterator for Difference<'a, T, S> where T: Eq + Hash<H>, S: HashState<Hasher=H>, H: Hasher<Output=u64>impl<'a, T, S, H> Iterator for SymmetricDifference<'a, T, S> where T: Eq + Hash<H>, S: HashState<Hasher=H>, H: Hasher<Output=u64>impl<'a, T, S, H> Iterator for Union<'a, T, S> where T: Eq + Hash<H>, S: HashState<Hasher=H>, H: Hasher<Output=u64>impl<'a, K, V> Iterator for Iter<'a, K, V>impl<'a, K, V> Iterator for IterMut<'a, K, V>impl<K, V> Iterator for IntoIter<K, V>impl<'a, K, V> Iterator for Keys<'a, K, V>impl<'a, K, V> Iterator for Values<'a, K, V>impl<'a, K: 'a, V: 'a> Iterator for Drain<'a, K, V>impl<'a, K> Iterator for Iter<'a, K>impl<K> Iterator for IntoIter<K>impl<'a, K: 'a> Iterator for Drain<'a, K>impl<'a, T, S, H> Iterator for Intersection<'a, T, S> where T: Eq + Hash<H>, S: HashState<Hasher=H>, H: Hasher<Output=u64>impl<'a, T, S, H> Iterator for Difference<'a, T, S> where T: Eq + Hash<H>, S: HashState<Hasher=H>, H: Hasher<Output=u64>impl<'a, T, S, H> Iterator for SymmetricDifference<'a, T, S> where T: Eq + Hash<H>, S: HashState<Hasher=H>, H: Hasher<Output=u64>impl<'a, T, S, H> Iterator for Union<'a, T, S> where T: Eq + Hash<H>, S: HashState<Hasher=H>, H: Hasher<Output=u64>impl<'a, T> Iterator for Iter<'a, T>impl<T> Iterator for IntoIter<T>impl<'a, T: 'a> Iterator for Drain<'a, T>impl<'a> Iterator for Iter<'a>impl<'a> Iterator for SetIter<'a>impl<'a> Iterator for TwoBitPositions<'a>impl<'a> Iterator for Union<'a>impl<'a> Iterator for Intersection<'a>impl<'a> Iterator for Difference<'a>impl<'a> Iterator for SymmetricDifference<'a>impl<T> Iterator for RawItems<T>impl<K, V, E, Impl: TraversalImpl<K, V, E>> Iterator for AbsTraversal<Impl>impl<K, V, E, T> Iterator for AbsIter<T>impl<'a, K, V> Iterator for Iter<'a, K, V>impl<'a, K, V> Iterator for IterMut<'a, K, V>impl<K, V> Iterator for IntoIter<K, V>impl<'a, K, V> Iterator for Keys<'a, K, V>impl<'a, K, V> Iterator for Values<'a, K, V>impl<'a, T> Iterator for Iter<'a, T>impl<T> Iterator for IntoIter<T>impl<'a, T: Ord> Iterator for Difference<'a, T>impl<'a, T: Ord> Iterator for SymmetricDifference<'a, T>impl<'a, T: Ord> Iterator for Intersection<'a, T>impl<'a, T: Ord> Iterator for Union<'a, T>impl<'a, A> Iterator for Iter<'a, A>impl<'a, A> Iterator for IterMut<'a, A>impl<A> Iterator for IntoIter<A>impl<E: CLike> Iterator for Iter<E>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: 'a> Iterator for Drain<'a, T>impl Iterator for ElementSwapsimpl<T: Clone> Iterator for Permutations<T>impl<'a> Iterator for Decompositions<'a>impl<'a> Iterator for Recompositions<'a>impl<'a> Iterator for Utf16Units<'a>impl<T> Iterator for IntoIter<T>impl<'a, T> Iterator for Drain<'a, T>impl<'a, V> Iterator for Iter<'a, V>impl<'a, V> Iterator for IterMut<'a, V>impl<'a, V> Iterator for Keys<'a, V>impl<'a, V> Iterator for Values<'a, V>impl<V> Iterator for IntoIter<V>impl<'a, T: Send> Iterator for Iter<'a, T>impl<'a> Iterator for GraphemeIndices<'a>impl<'a> Iterator for Graphemes<'a>impl<'a> Iterator for Utf16Items<'a>impl<I> Iterator for Utf16Encoder<I>impl<'a> Iterator for Words<'a>