Trait IntoIterator
pub trait IntoIterator
Conversion into an Iterator.
By implementing IntoIterator for a type, you define how it will be
converted to an iterator. This is common for types which describe a
collection of some kind.
One benefit of implementing IntoIterator is that your type will work
with Rust's for loop syntax.
See also: FromIterator.
Examples
Basic usage:
let v = ;
let mut iter = v.into_iter;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Implementing IntoIterator for your type:
// A sample collection, that's just a wrapper over Vec<T>
;
// Let's give it some methods so we can create one and add things
// to it.
// and we'll implement IntoIterator
// Now we can make a new collection...
let mut c = new;
// ... add some stuff to it ...
c.add;
c.add;
c.add;
// ... and then turn it into an Iterator:
for in c.into_iter.enumerate
It is common to use IntoIterator as a trait bound. This allows
the input collection type to change, so long as it is still an
iterator. Additional bounds can be specified by restricting on
Item:
Associated Types
type Item;The type of the elements being iterated over.
type IntoIter: Iterator<Item = Self::Item>;Which kind of iterator are we turning this into?
Required Methods
fn into_iter(self) -> Self::IntoIterCreates an iterator from a value.
See the module-level documentation for more.
Examples
let v = ; let mut iter = v.into_iter; assert_eq!; assert_eq!; assert_eq!; assert_eq!;
Implementors
impl<'a, T> IntoIterator for &'a Option<T>impl<'a, T> IntoIterator for &'a [T]impl<'a, T> IntoIterator for &'a mut Option<T>impl<'a, T> IntoIterator for &'a mut [T]impl<'a, T, E> IntoIterator for &'a Result<T, E>impl<'a, T, E> IntoIterator for &'a mut Result<T, E>impl<'a, T, const N: usize> IntoIterator for &'a [T; N]impl<'a, T, const N: usize> IntoIterator for &'a mut [T; N]impl<A: Step> IntoIterator for Range<A>impl<A: Step> IntoIterator for RangeFrom<A>impl<A: Step> IntoIterator for RangeInclusive<A>impl<I> IntoIterator for ArrayChunks<I, N> where I: Iterator,impl<I> IntoIterator for ArrayWindows<'a, T, N> where I: Iterator,impl<I> IntoIterator for ByRefSized<'a, I> where I: Iterator,impl<I> IntoIterator for Bytes<'a> where I: Iterator,impl<I> IntoIterator for Bytes<'a> where I: Iterator,impl<I> IntoIterator for CaseMappingIter where I: Iterator,impl<I> IntoIterator for Chain<A, B> where I: Iterator,impl<I> IntoIterator for CharIndices<'a> where I: Iterator,impl<I> IntoIterator for Chars<'a> where I: Iterator,impl<I> IntoIterator for ChunkBy<'a, T, P> where I: Iterator,impl<I> IntoIterator for ChunkByMut<'a, T, P> where I: Iterator,impl<I> IntoIterator for Chunks<'a, T> where I: Iterator,impl<I> IntoIterator for ChunksExact<'a, T> where I: Iterator,impl<I> IntoIterator for ChunksExactMut<'a, T> where I: Iterator,impl<I> IntoIterator for ChunksMut<'a, T> where I: Iterator,impl<I> IntoIterator for Cloned<I> where I: Iterator,impl<I> IntoIterator for Copied<I> where I: Iterator,impl<I> IntoIterator for Cycle<I> where I: Iterator,impl<I> IntoIterator for DecodeUtf16<I> where I: Iterator,impl<I> IntoIterator for Empty<T> where I: Iterator,impl<I> IntoIterator for EncodeUtf16<'a> where I: Iterator,impl<I> IntoIterator for Enumerate<I> where I: Iterator,impl<I> IntoIterator for EscapeAscii<'a> where I: Iterator,impl<I> IntoIterator for EscapeDebug where I: Iterator,impl<I> IntoIterator for EscapeDebug<'a> where I: Iterator,impl<I> IntoIterator for EscapeDefault where I: Iterator,impl<I> IntoIterator for EscapeDefault where I: Iterator,impl<I> IntoIterator for EscapeDefault<'a> where I: Iterator,impl<I> IntoIterator for EscapeUnicode where I: Iterator,impl<I> IntoIterator for EscapeUnicode<'a> where I: Iterator,impl<I> IntoIterator for Filter<I, P> where I: Iterator,impl<I> IntoIterator for FilterMap<I, F> where I: Iterator,impl<I> IntoIterator for FlatMap<I, U, F> where I: Iterator,impl<I> IntoIterator for Flatten<I> where I: Iterator,impl<I> IntoIterator for FlattenCompat<I, U> where I: Iterator,impl<I> IntoIterator for FromCoroutine<G> where I: Iterator,impl<I> IntoIterator for FromFn<F> where I: Iterator,impl<I> IntoIterator for Fuse<I> where I: Iterator,impl<I> IntoIterator for GenericShunt<'a, I, R> where I: Iterator,impl<I> IntoIterator for GenericSplitN<I> where I: Iterator,impl<I> IntoIterator for IndexRange where I: Iterator,impl<I> IntoIterator for Inspect<I, F> where I: Iterator,impl<I> IntoIterator for Intersperse<I> where I: Iterator,impl<I> IntoIterator for IntersperseWith<I, G> where I: Iterator,impl<I> IntoIterator for IntoIter<A> where I: Iterator,impl<I> IntoIterator for IntoIter<T> where I: Iterator,impl<I> IntoIterator for IntoIter<T, N> where I: Iterator,impl<I> IntoIterator for Item<A> where I: Iterator,impl<I> IntoIterator for Iter<'a, A> where I: Iterator,impl<I> IntoIterator for Iter<'a, T> where I: Iterator,impl<I> IntoIterator for Iter<'a, T> where I: Iterator,impl<I> IntoIterator for IterMut<'a, A> where I: Iterator,impl<I> IntoIterator for IterMut<'a, T> where I: Iterator,impl<I> IntoIterator for IterMut<'a, T> where I: Iterator,impl<I> IntoIterator for Lines<'a> where I: Iterator,impl<I> IntoIterator for LinesAny<'a> where I: Iterator,impl<I> IntoIterator for Map<I, F> where I: Iterator,impl<I> IntoIterator for MapWhile<I, P> where I: Iterator,impl<I> IntoIterator for MapWindows<I, F, N> where I: Iterator,impl<I> IntoIterator for MatchIndices<'a, P> where I: Iterator,impl<I> IntoIterator for Matches<'a, P> where I: Iterator,impl<I> IntoIterator for Once<T> where I: Iterator,impl<I> IntoIterator for OnceWith<F> where I: Iterator,impl<I> IntoIterator for OptionFlatten<A> where I: Iterator,impl<I> IntoIterator for Peekable<I> where I: Iterator,impl<I> IntoIterator for RChunks<'a, T> where I: Iterator,impl<I> IntoIterator for RChunksExact<'a, T> where I: Iterator,impl<I> IntoIterator for RChunksExactMut<'a, T> where I: Iterator,impl<I> IntoIterator for RChunksMut<'a, T> where I: Iterator,impl<I> IntoIterator for RMatchIndices<'a, P> where I: Iterator,impl<I> IntoIterator for RMatches<'a, P> where I: Iterator,impl<I> IntoIterator for RSplit<'a, P> where I: Iterator,impl<I> IntoIterator for RSplit<'a, T, P> where I: Iterator,impl<I> IntoIterator for RSplitMut<'a, T, P> where I: Iterator,impl<I> IntoIterator for RSplitN<'a, P> where I: Iterator,impl<I> IntoIterator for RSplitN<'a, T, P> where I: Iterator,impl<I> IntoIterator for RSplitNMut<'a, T, P> where I: Iterator,impl<I> IntoIterator for RSplitTerminator<'a, P> where I: Iterator,impl<I> IntoIterator for Range<Idx> where I: Iterator,impl<I> IntoIterator for RangeFrom<Idx> where I: Iterator,impl<I> IntoIterator for RangeFromIter<A> where I: Iterator,impl<I> IntoIterator for RangeInclusive<Idx> where I: Iterator,impl<I> IntoIterator for RangeInclusiveIter<A> where I: Iterator,impl<I> IntoIterator for RangeIter<A> where I: Iterator,impl<I> IntoIterator for Repeat<A> where I: Iterator,impl<I> IntoIterator for RepeatN<A> where I: Iterator,impl<I> IntoIterator for RepeatWith<F> where I: Iterator,impl<I> IntoIterator for Rev<T> where I: Iterator,impl<I> IntoIterator for Scan<I, St, F> where I: Iterator,impl<I> IntoIterator for Skip<I> where I: Iterator,impl<I> IntoIterator for SkipWhile<I, P> where I: Iterator,impl<I> IntoIterator for Source<'a> where I: Iterator,impl<I> IntoIterator for Split<'a, P> where I: Iterator,impl<I> IntoIterator for Split<'a, T, P> where I: Iterator,impl<I> IntoIterator for SplitAsciiWhitespace<'a> where I: Iterator,impl<I> IntoIterator for SplitInclusive<'a, P> where I: Iterator,impl<I> IntoIterator for SplitInclusive<'a, T, P> where I: Iterator,impl<I> IntoIterator for SplitInclusiveMut<'a, T, P> where I: Iterator,impl<I> IntoIterator for SplitMut<'a, T, P> where I: Iterator,impl<I> IntoIterator for SplitN<'a, P> where I: Iterator,impl<I> IntoIterator for SplitN<'a, T, P> where I: Iterator,impl<I> IntoIterator for SplitNMut<'a, T, P> where I: Iterator,impl<I> IntoIterator for SplitTerminator<'a, P> where I: Iterator,impl<I> IntoIterator for SplitWhitespace<'a> where I: Iterator,impl<I> IntoIterator for StepBy<I> where I: Iterator,impl<I> IntoIterator for Successors<T, F> where I: Iterator,impl<I> IntoIterator for Take<I> where I: Iterator,impl<I> IntoIterator for TakeWhile<I, P> where I: Iterator,impl<I> IntoIterator for ToCasefold where I: Iterator,impl<I> IntoIterator for ToLowercase where I: Iterator,impl<I> IntoIterator for ToTitlecase where I: Iterator,impl<I> IntoIterator for ToUppercase where I: Iterator,impl<I> IntoIterator for Utf8Chunks<'a> where I: Iterator,impl<I> IntoIterator for Windows<'a, T> where I: Iterator,impl<I> IntoIterator for Zip<A, B> where I: Iterator,impl<I: ~const Iterator> IntoIterator for Iimpl<T> IntoIterator for Option<T>impl<T, E> IntoIterator for Result<T, E>impl<T, const N: usize> IntoIterator for [T; N]