rust-itertools / itertools

Extra iterator adaptors, iterator methods, free functions, and macros.
https://docs.rs/itertools/
Apache License 2.0
2.64k stars 299 forks source link

Isn't Positions == FilterMapSpecialCase<Enumerate<Iter>, FilterMapSpecialCasePositions>? #892

Open phimuemue opened 4 months ago

phimuemue commented 4 months ago

We have FilterMapOk and we have Positions.

I think we should make type FilterMapOk<Iter> = FilterMapSpecialCase<Iter, FilterMapSpecialCaseFnOk> and type Positions = FilterMapSpecialCase<Enumerate<Iter>, FilterMapSpecialCasePositions>.

Would enforce consitency for DoubleEndedIterator, fusedness, etc.

Philippe-Cholet commented 4 months ago

Wow... that's bold, intriguing and definitely interesting. I'm curious how it would impact benchmarks (for Positions mainly, since FilterMapOk might end up deprecated with #844).