pub struct Map<I, F> { /* private fields */ }ferrocene_certified only.Expand description
An iterator that maps the values of iter with f.
This struct is created by the map method on Iterator. See its
documentation for more.
§Notes about side effects
The map iterator implements DoubleEndedIterator, meaning that
you can also map backwards:
But if your closure has state, iterating backwards may act in a way you do not expect. Let’s go through an example. First, in the forward direction:
let mut c = 0;
for pair in ['a', 'b', 'c'].into_iter()
.map(|letter| { c += 1; (letter, c) }) {
println!("{pair:?}");
}This will print ('a', 1), ('b', 2), ('c', 3).
Now consider this twist where we add a call to rev. This version will
print ('c', 1), ('b', 2), ('a', 3). Note that the letters are reversed,
but the values of the counter still go in order. This is because map() is
still being called lazily on each item, but we are popping items off the
back of the vector now, instead of shifting them from the front.
Trait Implementations§
1.0.0 · Source§impl<B, I: DoubleEndedIterator, F> DoubleEndedIterator for Map<I, F>
impl<B, I: DoubleEndedIterator, F> DoubleEndedIterator for Map<I, F>
Source§fn next_back(&mut self) -> Option<B>
fn next_back(&mut self) -> Option<B>
Source§fn try_rfold<Acc, G, R>(&mut self, init: Acc, g: G) -> R
fn try_rfold<Acc, G, R>(&mut self, init: Acc, g: G) -> R
Iterator::try_fold(): it takes
elements starting from the back of the iterator. Read moreSource§fn rfold<Acc, G>(self, init: Acc, g: G) -> Acc
fn rfold<Acc, G>(self, init: Acc, g: G) -> Acc
Source§fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by #77404)n elements. Read more1.0.0 · Source§impl<B, I: ExactSizeIterator, F> ExactSizeIterator for Map<I, F>
impl<B, I: ExactSizeIterator, F> ExactSizeIterator for Map<I, F>
1.0.0 · Source§impl<B, I: Iterator, F> Iterator for Map<I, F>
impl<B, I: Iterator, F> Iterator for Map<I, F>
Source§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Source§fn try_fold<Acc, G, R>(&mut self, init: Acc, g: G) -> R
fn try_fold<Acc, G, R>(&mut self, init: Acc, g: G) -> R
ferrocene_certified only.Source§fn fold<Acc, G>(self, init: Acc, g: G) -> Acc
fn fold<Acc, G>(self, init: Acc, g: G) -> Acc
ferrocene_certified only.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,
iter_next_chunk #98326)ferrocene_certified only.N values. Read more1.0.0 · Source§fn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
ferrocene_certified only.1.0.0 · Source§fn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
ferrocene_certified only.Source§fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by #77404)ferrocene_certified only.n elements. Read more1.0.0 · Source§fn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
ferrocene_certified only.nth element of the iterator. Read more1.28.0 · Source§fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,
ferrocene_certified only.1.0.0 · Source§fn chain<U>(self, other: U) -> Chain<Self, U::IntoIter> ⓘ
fn chain<U>(self, other: U) -> Chain<Self, U::IntoIter> ⓘ
ferrocene_certified only.1.0.0 · 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,
ferrocene_certified only.Source§fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
iter_intersperse #79524)ferrocene_certified only.separator between adjacent
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> ⓘ
iter_intersperse #79524)ferrocene_certified only.separator
between adjacent items of the original iterator. Read more1.0.0 · Source§fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
1.21.0 · Source§fn for_each<F>(self, f: F)
fn for_each<F>(self, f: F)
ferrocene_certified only.1.0.0 · Source§fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
ferrocene_certified only.1.0.0 · Source§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
ferrocene_certified only.1.0.0 · Source§fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
ferrocene_certified only.1.0.0 · Source§fn peekable(self) -> Peekable<Self> ⓘwhere
Self: Sized,
fn peekable(self) -> Peekable<Self> ⓘwhere
Self: Sized,
ferrocene_certified only.1.0.0 · Source§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> ⓘ
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> ⓘ
ferrocene_certified only.1.0.0 · Source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
ferrocene_certified only.1.57.0 · Source§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
ferrocene_certified only.1.0.0 · Source§fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,
fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,
ferrocene_certified only.n elements. Read more1.0.0 · Source§fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,
fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,
ferrocene_certified only.n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 · 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> ⓘ
ferrocene_certified only.1.0.0 · 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> ⓘ
ferrocene_certified only.1.29.0 · Source§fn flatten(self) -> Flatten<Self> ⓘ
fn flatten(self) -> Flatten<Self> ⓘ
ferrocene_certified only.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> ⓘ
iter_map_windows #87155)ferrocene_certified only.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 · Source§fn fuse(self) -> Fuse<Self> ⓘwhere
Self: Sized,
fn fuse(self) -> Fuse<Self> ⓘwhere
Self: Sized,
ferrocene_certified only.1.0.0 · Source§fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
ferrocene_certified only.1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
ferrocene_certified only.Iterator. Read more1.0.0 · Source§fn collect<B: FromIterator<Self::Item>>(self) -> Bwhere
Self: Sized,
fn collect<B: FromIterator<Self::Item>>(self) -> Bwhere
Self: Sized,
ferrocene_certified only.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
iterator_try_collect #94047)ferrocene_certified only.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,
iter_collect_into #94780)ferrocene_certified only.1.0.0 · Source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
ferrocene_certified only.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
iter_partition_in_place #62543)ferrocene_certified only.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
iter_is_partitioned #62544)ferrocene_certified only.true precede all those that return false. Read more1.27.0 · Source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
ferrocene_certified only.1.51.0 · Source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
ferrocene_certified only.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
iterator_try_reduce #87053)ferrocene_certified only.1.0.0 · Source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
ferrocene_certified only.1.0.0 · Source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
ferrocene_certified only.1.0.0 · Source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
ferrocene_certified only.1.30.0 · Source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
ferrocene_certified only.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
try_find #63178)ferrocene_certified only.1.0.0 · Source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
ferrocene_certified only.1.0.0 · Source§fn rposition<P>(&mut self, predicate: P) -> Option<usize>
fn rposition<P>(&mut self, predicate: P) -> Option<usize>
ferrocene_certified only.1.0.0 · Source§fn max(self) -> Option<Self::Item>
fn max(self) -> Option<Self::Item>
ferrocene_certified only.1.0.0 · Source§fn min(self) -> Option<Self::Item>
fn min(self) -> Option<Self::Item>
ferrocene_certified only.1.6.0 · 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>
ferrocene_certified only.1.15.0 · Source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
ferrocene_certified only.1.6.0 · 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>
ferrocene_certified only.1.15.0 · Source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
ferrocene_certified only.1.0.0 · Source§fn rev(self) -> Rev<Self> ⓘwhere
Self: Sized + DoubleEndedIterator,
fn rev(self) -> Rev<Self> ⓘwhere
Self: Sized + DoubleEndedIterator,
ferrocene_certified only.1.0.0 · Source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
ferrocene_certified only.1.36.0 · Source§fn copied<'a, T>(self) -> Copied<Self> ⓘ
fn copied<'a, T>(self) -> Copied<Self> ⓘ
ferrocene_certified only.1.0.0 · Source§fn cycle(self) -> Cycle<Self> ⓘ
fn cycle(self) -> Cycle<Self> ⓘ
ferrocene_certified only.Source§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘwhere
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘwhere
Self: Sized,
iter_array_chunks #100450)ferrocene_certified only.N elements of the iterator at a time. Read more1.11.0 · Source§fn product<P>(self) -> P
fn product<P>(self) -> P
ferrocene_certified only.1.5.0 · Source§fn cmp<I>(self, other: I) -> Ordering
fn cmp<I>(self, other: I) -> Ordering
ferrocene_certified only.Source§fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
iter_order_by #64295)ferrocene_certified only.Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 · Source§fn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
ferrocene_certified only.PartialOrd elements of
this Iterator with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read moreSource§fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>
iter_order_by #64295)ferrocene_certified only.Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 · Source§fn eq<I>(self, other: I) -> bool
fn eq<I>(self, other: I) -> bool
ferrocene_certified only.Source§fn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
iter_order_by #64295)ferrocene_certified only.1.5.0 · Source§fn ne<I>(self, other: I) -> bool
fn ne<I>(self, other: I) -> bool
ferrocene_certified only.1.5.0 · Source§fn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
ferrocene_certified only.Iterator are lexicographically
less than those of another. Read more1.5.0 · Source§fn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
ferrocene_certified only.Iterator are lexicographically
less or equal to those of another. Read more1.5.0 · Source§fn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
ferrocene_certified only.Iterator are lexicographically
greater than those of another. Read more1.5.0 · Source§fn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
ferrocene_certified only.Iterator are lexicographically
greater than or equal to those of another. Read more1.82.0 · Source§fn is_sorted(self) -> bool
fn is_sorted(self) -> bool
ferrocene_certified only.1.82.0 · Source§fn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
ferrocene_certified only.1.82.0 · Source§fn is_sorted_by_key<F, K>(self, f: F) -> bool
fn is_sorted_by_key<F, K>(self, f: F) -> bool
ferrocene_certified only.impl<B, I: FusedIterator, F> FusedIterator for Map<I, F>
impl<B, I, F> TrustedLen for Map<I, F>
Auto Trait Implementations§
impl<I, F> Freeze for Map<I, F>
impl<I, F> RefUnwindSafe for Map<I, F>where
I: RefUnwindSafe,
F: RefUnwindSafe,
impl<I, F> Send for Map<I, F>
impl<I, F> Sync for Map<I, F>
impl<I, F> Unpin for Map<I, F>
impl<I, F> UnwindSafe for Map<I, F>where
I: UnwindSafe,
F: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
ferrocene_certified only.