Open
Description
Feature gate: #![feature(iter_map_windows)]
This is a tracking issue for Iterator::map_windows
:
Calls the given function
f
for each contiguous window of sizeN
overself
and returns an iterator over the outputs off
.In the following example, the closure is called three times with the arguments
&['a', 'b']
,&['b', 'c']
and&['c', 'd']
respectively.#![feature(iter_map_windows)] let strings = "abcd".chars() .map_windows(|[x, y]| format!("{}+{}", x, y)) .collect::<Vec<String>>(); assert_eq!(strings, vec!["a+b", "b+c", "c+d"]);
Public API
impl Iterator {
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where
Self: Sized,
F: FnMut(&[Self::Item; N]) -> R;
}
struct MapWindows<I: Iterator, F, const N: usize> { ... }
impl<I, F, R, const N: usize> Iterator for MapWindows<I, F, N>
where
I: Iterator,
F: FnMut(&[I::Item; N]) -> R;
impl<I: Iterator + fmt::Debug, F, const N: usize> fmt::Debug for MapWindows<I, F, N>;
Steps / History
-
Implementation: AddIterator::map_windows
#82413 - Implementation: Add
Iterator::map_windows
#94667 - Optimize with buffer of size
2 * N
- Any other iterator-related traits?
-
DoubleEndedIterator
-
FusedIterator
-
TrustedLen
-
- Compile fail on N=0, rather than panic. Blocked on a solution for compile errors in callers that are generic over
N
and would want a fallback for N=0. - Final comment period (FCP)
- Stabilization PR
Unresolved Questions
&[I::Item; N]
vsArrayView<'_, I::Item, N>
Tracking Issue forIterator::map_windows
(featureiter_map_windows
) #87155 (comment)