itertools
itertools copied to clipboard
Extra iterator adaptors, iterator methods, free functions, and macros.
A typical use-case for process-results is e.g. ```rust let final_map = itertools::process_results( some .long() .chain() .of() .iterator() .adapters(), |it| it.into_group_map(), )?; ``` With the chain of iterator adapters getting longer...
It might be useful to add a chain_with function to the itertools that does the same thing as chain but lazily calling the function that builds the iterator. This would...
I don't know how to properly write this down, so bear with me please. I constantly have the "issue" that I can chain a lot of functions together, but in...
The motivation for this is when using `union`, `intersection`, `difference`, and `symmetric_difference` the items have to be cloned, this avoids that and can return borrowed items. What I was shooting...
- [x] `.foreach()` -- when `Iterator::for_each` stabilizes and it's old enough so that the deprecation is not annoying. Introduced in Rust 1.21. **Deprecated in 0.8** - [x] `.step()` #133 --...
I made a series of `try_{filter_map,flat_map, ...}` adaptors in my [iterator-ext](https://docs.rs/iterator-ext/0.2.0/iterator_ext/trait.IteratorExt.html). I wish `itertools` can have them. Not sure if this feature was proposed or worked out before. If yes,...
I wanted to use `zip_eq(..).rev()` and that required a `DoubleEndedIterator` implementation, so I added one. I checked the other "marker" traits and it was pretty easy to add a `FusedIterator`...
I'm working to make two variants of the (really nice) merging system -- one that allows you to add more iterators to `KMergeBy` after you've popped some entries out, and...
I was looking at the code and it turns out that `InterleaveShortest` will resume iterating after a `None` if one of its iterators is not fused. ```rust use itertools::Itertools; fn...
Calling `iterator.chunks(10).into_iter()` (or similar with GroupBy) returns something that references a temporary value, and can't be used as owned. This is often unexpected as it does not respect the usual...