pub struct Fuse<I> { /* private fields */ }Expand description
An iterator that yields None forever after the underlying iterator
yields None once.
This struct is created by Iterator::fuse. See its documentation
for more.
Trait Implementationsยง
1.70.0 ยท Sourceยงimpl<I: Default> Default for Fuse<I>
impl<I: Default> Default for Fuse<I>
Sourceยงfn default() -> Self
fn default() -> Self
Creates a Fuse iterator from the default value of I.
This is equivalent to I::default().fuse()1; e.g. if
I::default() is not an empty iterator, then this will not be
an empty iterator.
#[derive(Default)]
struct Fourever;
impl Iterator for Fourever {
type Item = u32;
fn next(&mut self) -> Option<u32> {
Some(4)
}
}
let mut iter: Fuse<Fourever> = Default::default();
assert_eq!(iter.next(), Some(4));if
Idoes not overrideIterator::fuseโs default implementation โฉ
1.0.0 ยท Sourceยงimpl<I> DoubleEndedIterator for Fuse<I>where
I: DoubleEndedIterator,
impl<I> DoubleEndedIterator for Fuse<I>where
I: DoubleEndedIterator,
Sourceยงfn next_back(&mut self) -> Option<<I as Iterator>::Item>
fn next_back(&mut self) -> Option<<I as Iterator>::Item>
Removes and returns an element from the end of the iterator. Read more
Sourceยงfn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>
fn nth_back(&mut self, n: usize) -> Option<<I as Iterator>::Item>
Returns the
nth element from the end of the iterator. Read moreSourceยงfn try_rfold<Acc, Fold, R>(&mut self, acc: Acc, fold: Fold) -> R
fn try_rfold<Acc, Fold, R>(&mut self, acc: Acc, fold: Fold) -> R
This is the reverse version of
Iterator::try_fold(): it takes
elements starting from the back of the iterator. Read moreSourceยงfn rfold<Acc, Fold>(self, acc: Acc, fold: Fold) -> Acc
fn rfold<Acc, Fold>(self, acc: Acc, fold: Fold) -> Acc
An iterator method that reduces the iteratorโs elements to a single,
final value, starting from the back. Read more
Sourceยงfn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
fn rfind<P>(&mut self, predicate: P) -> Option<Self::Item>
Searches for an element of an iterator from the back that satisfies a predicate. Read more
Sourceยงfn next_chunk_back<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk_back<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
๐ฌThis is a nightly-only experimental API. (
iter_next_chunk #98326)Advances from the back of the iterator and returns an array containing the next
N values in sequence. Read more1.0.0 ยท Sourceยงimpl<I> ExactSizeIterator for Fuse<I>where
I: ExactSizeIterator,
impl<I> ExactSizeIterator for Fuse<I>where
I: ExactSizeIterator,
impl<I> FusedIterator for Fuse<I>where
I: Iterator,
1.0.0 ยท Sourceยงimpl<I> Iterator for Fuse<I>where
I: Iterator,
impl<I> Iterator for Fuse<I>where
I: Iterator,
Sourceยงfn next(&mut self) -> Option<Self::Item>
fn next(&mut self) -> Option<Self::Item>
Advances the iterator and returns the next value. Read more
Sourceยงfn nth(&mut self, n: usize) -> Option<I::Item>
fn nth(&mut self, n: usize) -> Option<I::Item>
Returns the
nth element of the iterator. Read moreSourceยงfn last(self) -> Option<Self::Item>
fn last(self) -> Option<Self::Item>
Consumes the iterator, returning the last element. Read more
Sourceยงfn count(self) -> usize
fn count(self) -> usize
Consumes the iterator, counting the number of iterations and returning it. Read more
Sourceยงfn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Returns the bounds on the remaining length of the iterator. Read more
Sourceยงfn try_fold<Acc, Fold, R>(&mut self, acc: Acc, fold: Fold) -> R
fn try_fold<Acc, Fold, R>(&mut self, acc: Acc, fold: Fold) -> R
An iterator method that applies a function as long as it returns
successfully, producing a single, final value. Read more
Sourceยงfn fold<Acc, Fold>(self, acc: Acc, fold: Fold) -> Acc
fn fold<Acc, Fold>(self, acc: Acc, fold: Fold) -> Acc
Folds every element into an accumulator by applying an operation,
returning the final result. Read more
Sourceยงfn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
Searches for an element of an iterator that satisfies a predicate. Read more
Sourceยงfn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
๐ฌThis is a nightly-only experimental API. (
iter_next_chunk #98326)Advances the iterator and returns an array containing the next
N values. Read moreSourceยงfn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
๐ฌThis is a nightly-only experimental API. (
iter_advance_by #77404)Advances the iterator by
n elements. Read more1.28.0 (const: unstable) ยท Sourceยงfn step_by(self, step: usize) -> StepBy<Self> โwhere
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self> โwhere
Self: Sized,
Creates an iterator starting at the same point, but stepping by
the given amount at each iteration. Read more
1.0.0 (const: unstable) ยท Sourceยงfn chain<U>(self, other: U) -> Chain<Self, U::IntoIter> โ
fn chain<U>(self, other: U) -> Chain<Self, U::IntoIter> โ
Takes two iterators and creates a new iterator over both in sequence. Read more
1.0.0 (const: unstable) ยท Sourceยงfn zip<U>(self, other: U) -> Zip<Self, U::IntoIter> โwhere
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, U::IntoIter> โwhere
Self: Sized,
U: IntoIterator,
โZips upโ two iterators into a single iterator of pairs. Read more
Sourceยงfn intersperse(self, separator: Self::Item) -> Intersperse<Self> โ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> โ
๐ฌThis is a nightly-only experimental API. (
iter_intersperse #79524)Creates a new iterator which places a copy of
separator between items
of the original iterator. Read moreSourceยงfn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> โ
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> โ
๐ฌThis is a nightly-only experimental API. (
iter_intersperse #79524)Creates a new iterator which places an item generated by
separator
between items of the original iterator. Read more1.0.0 (const: unstable) ยท Sourceยงfn map<B, F>(self, f: F) -> Map<Self, F> โ
fn map<B, F>(self, f: F) -> Map<Self, F> โ
Takes a closure and creates an iterator which calls that closure on each
element. Read more
1.21.0 (const: unstable) ยท Sourceยงfn for_each<F>(self, f: F)
fn for_each<F>(self, f: F)
Calls a closure on each element of an iterator. Read more
1.0.0 (const: unstable) ยท Sourceยงfn filter<P>(self, predicate: P) -> Filter<Self, P> โ
fn filter<P>(self, predicate: P) -> Filter<Self, P> โ
Creates an iterator which uses a closure to determine if an element
should be yielded. Read more
1.0.0 (const: unstable) ยท Sourceยงfn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> โ
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> โ
Creates an iterator that both filters and maps. Read more
1.0.0 (const: unstable) ยท Sourceยงfn enumerate(self) -> Enumerate<Self> โwhere
Self: Sized,
fn enumerate(self) -> Enumerate<Self> โwhere
Self: Sized,
Creates an iterator which gives the current iteration count as well as
the next value. Read more
1.0.0 (const: unstable) ยท Sourceยงfn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> โ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> โ
Creates an iterator that yields elements based on a predicate. Read more
1.57.0 (const: unstable) ยท Sourceยงfn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> โ
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> โ
Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 (const: unstable) ยท Sourceยงfn skip(self, n: usize) -> Skip<Self> โwhere
Self: Sized,
fn skip(self, n: usize) -> Skip<Self> โwhere
Self: Sized,
Creates an iterator that skips the first
n elements. Read more1.0.0 (const: unstable) ยท Sourceยงfn take(self, n: usize) -> Take<Self> โwhere
Self: Sized,
fn take(self, n: usize) -> Take<Self> โwhere
Self: Sized,
Creates an iterator that yields the first
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 (const: unstable) ยท Sourceยงfn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> โ
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F> โ
1.0.0 (const: unstable) ยท Sourceยงfn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> โ
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> โ
Creates an iterator that works like map, but flattens nested structure. Read more
1.29.0 (const: unstable) ยท Sourceยงfn flatten(self) -> Flatten<Self> โ
fn flatten(self) -> Flatten<Self> โ
Creates an iterator that flattens nested structure. Read more
Sourceยงfn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> โ
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> โ
๐ฌThis is a nightly-only experimental API. (
iter_map_windows #87155)Calls the given function
f for each contiguous window of size N over
self and returns an iterator over the outputs of f. Like slice::windows(),
the windows during mapping overlap as well. Read more1.0.0 (const: unstable) ยท Sourceยงfn inspect<F>(self, f: F) -> Inspect<Self, F> โ
fn inspect<F>(self, f: F) -> Inspect<Self, F> โ
Does something with each element of an iterator, passing the value on. Read more
1.0.0 (const: unstable) ยท Sourceยงfn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a โby referenceโ adapter for this instance of
Iterator. Read more1.0.0 (const: unstable) ยท Sourceยงfn collect<B: FromIterator<Self::Item>>(self) -> Bwhere
Self: Sized,
fn collect<B: FromIterator<Self::Item>>(self) -> Bwhere
Self: Sized,
Transforms an iterator into a collection. Read more
Sourceยงfn try_collect<B>(&mut self) -> <Self::Item::Residual as Residual<B>>::TryType
fn try_collect<B>(&mut self) -> <Self::Item::Residual as Residual<B>>::TryType
๐ฌThis is a nightly-only experimental API. (
iterator_try_collect #94047)Fallibly transforms an iterator into a collection, short circuiting if
a failure is encountered. Read more
Sourceยงfn collect_into<E: Extend<Self::Item>>(self, collection: &mut E) -> &mut Ewhere
Self: Sized,
fn collect_into<E: Extend<Self::Item>>(self, collection: &mut E) -> &mut Ewhere
Self: Sized,
๐ฌThis is a nightly-only experimental API. (
iter_collect_into #94780)Collects all the items from an iterator into a collection. Read more
1.0.0 (const: unstable) ยท Sourceยงfn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
Consumes an iterator, creating two collections from it. Read more
Sourceยงfn partition_in_place<'a, T: 'a, P>(self, predicate: P) -> usize
fn partition_in_place<'a, T: 'a, P>(self, predicate: P) -> usize
๐ฌThis is a nightly-only experimental API. (
iter_partition_in_place #62543)Reorders the elements of this iterator in-place according to the given predicate,
such that all those that return
true precede all those that return false.
Returns the number of true elements found. Read moreSourceยงfn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
๐ฌThis is a nightly-only experimental API. (
iter_is_partitioned #62544)Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return
true precede all those that return false. Read more1.27.0 (const: unstable) ยท Sourceยงfn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
An iterator method that applies a fallible function to each item in the
iterator, stopping at the first error and returning that error. Read more
1.51.0 (const: unstable) ยท Sourceยงfn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
Reduces the elements to a single one, by repeatedly applying a reducing
operation. Read more
Sourceยงfn try_reduce<R>(
&mut self,
f: impl FnMut(Self::Item, Self::Item) -> R,
) -> <R::Residual as Residual<Option<R::Output>>>::TryType
fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <R::Residual as Residual<Option<R::Output>>>::TryType
๐ฌThis is a nightly-only experimental API. (
iterator_try_reduce #87053)Reduces the elements to a single one by repeatedly applying a reducing operation. If the
closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.0.0 (const: unstable) ยท Sourceยงfn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
Tests if every element of the iterator matches a predicate. Read more
1.0.0 (const: unstable) ยท Sourceยงfn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
Tests if any element of the iterator matches a predicate. Read more
1.30.0 (const: unstable) ยท Sourceยงfn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Applies function to the elements of iterator and returns
the first non-none result. Read more
Sourceยงfn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <R::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <R::Residual as Residual<Option<Self::Item>>>::TryType
๐ฌThis is a nightly-only experimental API. (
try_find #63178)Applies function to the elements of iterator and returns
the first true result or the first error. Read more
1.0.0 (const: unstable) ยท Sourceยงfn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
Searches for an element in an iterator, returning its index. Read more
1.0.0 (const: unstable) ยท Sourceยงfn rposition<P>(&mut self, predicate: P) -> Option<usize>
fn rposition<P>(&mut self, predicate: P) -> Option<usize>
Searches for an element in an iterator from the right, returning its
index. Read more
1.0.0 (const: unstable) ยท Sourceยงfn max(self) -> Option<Self::Item>
fn max(self) -> Option<Self::Item>
Returns the maximum element of an iterator. Read more
1.0.0 (const: unstable) ยท Sourceยงfn min(self) -> Option<Self::Item>
fn min(self) -> Option<Self::Item>
Returns the minimum element of an iterator. Read more
1.6.0 (const: unstable) ยท Sourceยงfn max_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item>
Returns the element that gives the maximum value from the
specified function. Read more
1.15.0 (const: unstable) ยท Sourceยงfn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
Returns the element that gives the maximum value with respect to the
specified comparison function. Read more
1.6.0 (const: unstable) ยท Sourceยงfn min_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B: Ord, F>(self, f: F) -> Option<Self::Item>
Returns the element that gives the minimum value from the
specified function. Read more