Trait IntoIterator
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 ItemThe type of the elements being iterated over.
type IntoIter: TraitBound { trait_: Path { path: "Iterator", id: Id(82), args: Some(AngleBracketed { args: [], constraints: [AssocItemConstraint { name: "Item", args: None, binding: Equality(Type(QualifiedPath { name: "Item", args: None, self_type: Generic("Self"), trait_: Some(Path { path: "", id: Id(80), args: None }) })) }] }) }, generic_params: [], modifier: None }Which kind of iterator are we turning this into?
Required Methods
fn into_iter(self: Self) -> <Self as >::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 mut Option<T>impl<I> IntoIterator for Matches<'a, P>impl<I> IntoIterator for Flatten<I>impl<I> IntoIterator for ChunksExactMut<'a, T>impl<'a, T, N: usize> IntoIterator for &'a mut [T; N]impl<I> IntoIterator for Skip<I>impl<I> IntoIterator for ByRefSized<'a, I>impl<I> IntoIterator for Utf8Chunks<'a>impl<I> IntoIterator for RSplitMut<'a, T, P>impl<I> IntoIterator for EscapeDefault<'a>impl<I> IntoIterator for ToLowercaseimpl<I: ~const Iterator> IntoIterator for Iimpl<I> IntoIterator for RSplitNMut<'a, T, P>impl<'a, T> IntoIterator for &'a [T]impl<I> IntoIterator for EscapeUnicodeimpl<I> IntoIterator for Take<I>impl<I> IntoIterator for EscapeAscii<'a>impl<I> IntoIterator for EscapeDefaultimpl<I> IntoIterator for Cloned<I>impl<I> IntoIterator for Empty<T>impl<I> IntoIterator for RMatchIndices<'a, P>impl<I> IntoIterator for OnceWith<F>impl<I> IntoIterator for RangeInclusive<Idx>impl<I> IntoIterator for EscapeDebugimpl<I> IntoIterator for IntoIter<T>impl<I> IntoIterator for FromCoroutine<G>impl<I> IntoIterator for RangeFrom<Idx>impl<T, E> IntoIterator for Result<T, E>impl<I> IntoIterator for Filter<I, P>impl<I> IntoIterator for Once<T>impl<I> IntoIterator for Scan<I, St, F>impl<I> IntoIterator for Source<'a>impl<I> IntoIterator for IterMut<'a, T>impl<I> IntoIterator for Inspect<I, F>impl<A: Step> IntoIterator for Range<A>impl<I> IntoIterator for Repeat<A>impl<I> IntoIterator for RSplit<'a, T, P>impl<I> IntoIterator for RangeIter<A>impl<I> IntoIterator for EscapeDebug<'a>impl<I> IntoIterator for Rev<T>impl<I> IntoIterator for MatchIndices<'a, P>impl<I> IntoIterator for Map<I, F>impl<I> IntoIterator for SplitNMut<'a, T, P>impl<I> IntoIterator for Iter<'a, T>impl<I> IntoIterator for Cycle<I>impl<I> IntoIterator for RangeInclusiveIter<A>impl<T> IntoIterator for Option<T>impl<T, N: usize> IntoIterator for [T; N]impl<I> IntoIterator for Enumerate<I>impl<'a, T> IntoIterator for &'a mut [T]impl<I> IntoIterator for Fuse<I>impl<I> IntoIterator for Chain<A, B>impl<I> IntoIterator for Iter<'a, T>impl<I> IntoIterator for FilterMap<I, F>impl<I> IntoIterator for SplitInclusiveMut<'a, T, P>impl<I> IntoIterator for RepeatN<A>impl<I> IntoIterator for MapWindows<I, F, N>impl<I> IntoIterator for EncodeUtf16<'a>impl<I> IntoIterator for Copied<I>impl<'a, T, E> IntoIterator for &'a Result<T, E>impl<I> IntoIterator for RSplitN<'a, P>impl<I> IntoIterator for RangeFromIter<A>impl<I> IntoIterator for SplitN<'a, P>impl<I> IntoIterator for RSplitTerminator<'a, P>impl<I> IntoIterator for IterMut<'a, T>impl<I> IntoIterator for SplitTerminator<'a, P>impl<I> IntoIterator for RSplit<'a, P>impl<I> IntoIterator for SplitMut<'a, T, P>impl<I> IntoIterator for ChunkByMut<'a, T, P>impl<I> IntoIterator for DecodeUtf16<I>impl<I> IntoIterator for RSplitN<'a, T, P>impl<I> IntoIterator for FlatMap<I, U, F>impl<I> IntoIterator for SplitInclusive<'a, P>impl<I> IntoIterator for TakeWhile<I, P>impl<I> IntoIterator for Split<'a, P>impl<A: Step> IntoIterator for RangeInclusive<A>impl<I> IntoIterator for IterMut<'a, A>impl<I> IntoIterator for IntersperseWith<I, G>impl<I> IntoIterator for SplitAsciiWhitespace<'a>impl<I> IntoIterator for Bytes<'a>impl<I> IntoIterator for Iter<'a, A>impl<I> IntoIterator for SplitWhitespace<'a>impl<I> IntoIterator for Zip<A, B>impl<I> IntoIterator for FromFn<F>impl<I> IntoIterator for LinesAny<'a>impl<I> IntoIterator for Chars<'a>impl<I> IntoIterator for RChunksMut<'a, T>impl<I> IntoIterator for ToUppercaseimpl<I> IntoIterator for IntoIter<A>impl<I> IntoIterator for SplitInclusive<'a, T, P>impl<'a, T> IntoIterator for &'a Option<T>impl<I> IntoIterator for Split<'a, T, P>impl<'a, T, N: usize> IntoIterator for &'a [T; N]impl<I> IntoIterator for OptionFlatten<A>impl<I> IntoIterator for Successors<T, F>impl<I> IntoIterator for Bytes<'a>impl<I> IntoIterator for ChunksMut<'a, T>impl<I> IntoIterator for RChunks<'a, T>impl<I> IntoIterator for ChunkBy<'a, T, P>impl<I> IntoIterator for MapWhile<I, P>impl<I> IntoIterator for Peekable<I>impl<I> IntoIterator for StepBy<I>impl<I> IntoIterator for CharIndices<'a>impl<I> IntoIterator for RChunksExact<'a, T>impl<I> IntoIterator for Intersperse<I>impl<'a, T, E> IntoIterator for &'a mut Result<T, E>impl<I> IntoIterator for Lines<'a>impl<I> IntoIterator for ArrayChunks<I, N>impl<I> IntoIterator for SplitN<'a, T, P>impl<I> IntoIterator for RMatches<'a, P>impl<I> IntoIterator for Chunks<'a, T>impl<I> IntoIterator for ArrayWindows<'a, T, N>impl<I> IntoIterator for RChunksExactMut<'a, T>impl<I> IntoIterator for EscapeDefaultimpl<I> IntoIterator for ChunksExact<'a, T>impl<I> IntoIterator for SkipWhile<I, P>impl<A: Step> IntoIterator for RangeFrom<A>impl<I> IntoIterator for RepeatWith<F>impl<I> IntoIterator for EscapeUnicode<'a>impl<I> IntoIterator for Windows<'a, T>impl<I> IntoIterator for Range<Idx>impl<I> IntoIterator for IntoIter<T, N>