Update Rust crate itertools to v0.13.0 (#17048)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [itertools](https://togithub.com/rust-itertools/itertools) |
dependencies | minor | `0.10` -> `0.13` |
| [itertools](https://togithub.com/rust-itertools/itertools) |
workspace.dependencies | minor | `0.11.0` -> `0.13.0` |
---
### Release Notes
<details>
<summary>rust-itertools/itertools (itertools)</summary>
###
[`v0.13.0`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0130)
[Compare
Source](https://togithub.com/rust-itertools/itertools/compare/v0.12.1...v0.13.0)
##### Breaking
- Removed implementation of `DoubleEndedIterator` for `ConsTuples`
([#​853](https://togithub.com/rust-itertools/itertools/issues/853))
- Made `MultiProduct` fused and fixed on an empty iterator
([#​835](https://togithub.com/rust-itertools/itertools/issues/835),
[#​834](https://togithub.com/rust-itertools/itertools/issues/834))
- Changed `iproduct!` to return tuples for maxi one iterator too
([#​870](https://togithub.com/rust-itertools/itertools/issues/870))
- Changed `PutBack::put_back` to return the old value
([#​880](https://togithub.com/rust-itertools/itertools/issues/880))
- Removed deprecated `repeat_call, Itertools::{foreach, step,
map_results, fold_results}`
([#​878](https://togithub.com/rust-itertools/itertools/issues/878))
- Removed `TakeWhileInclusive::new`
([#​912](https://togithub.com/rust-itertools/itertools/issues/912))
##### Added
- Added `Itertools::{smallest_by, smallest_by_key, largest, largest_by,
largest_by_key}`
([#​654](https://togithub.com/rust-itertools/itertools/issues/654),
[#​885](https://togithub.com/rust-itertools/itertools/issues/885))
- Added `Itertools::tail`
([#​899](https://togithub.com/rust-itertools/itertools/issues/899))
- Implemented `DoubleEndedIterator` for `ProcessResults`
([#​910](https://togithub.com/rust-itertools/itertools/issues/910))
- Implemented `Debug` for `FormatWith`
([#​931](https://togithub.com/rust-itertools/itertools/issues/931))
- Added `Itertools::get`
([#​891](https://togithub.com/rust-itertools/itertools/issues/891))
##### Changed
- Deprecated `Itertools::group_by` (renamed `chunk_by`)
([#​866](https://togithub.com/rust-itertools/itertools/issues/866),
[#​879](https://togithub.com/rust-itertools/itertools/issues/879))
- Deprecated `unfold` (use `std::iter::from_fn` instead)
([#​871](https://togithub.com/rust-itertools/itertools/issues/871))
- Optimized `GroupingMapBy`
([#​873](https://togithub.com/rust-itertools/itertools/issues/873),
[#​876](https://togithub.com/rust-itertools/itertools/issues/876))
- Relaxed `Fn` bounds to `FnMut` in `diff_with,
Itertools::into_group_map_by`
([#​886](https://togithub.com/rust-itertools/itertools/issues/886))
- Relaxed `Debug/Clone` bounds for `MapInto`
([#​889](https://togithub.com/rust-itertools/itertools/issues/889))
- Documented the `use_alloc` feature
([#​887](https://togithub.com/rust-itertools/itertools/issues/887))
- Optimized `Itertools::set_from`
([#​888](https://togithub.com/rust-itertools/itertools/issues/888))
- Removed badges in `README.md`
([#​890](https://togithub.com/rust-itertools/itertools/issues/890))
- Added "no-std" categories in `Cargo.toml`
([#​894](https://togithub.com/rust-itertools/itertools/issues/894))
- Fixed `Itertools::k_smallest` on short unfused iterators
([#​900](https://togithub.com/rust-itertools/itertools/issues/900))
- Deprecated `Itertools::tree_fold1` (renamed `tree_reduce`)
([#​895](https://togithub.com/rust-itertools/itertools/issues/895))
- Deprecated `GroupingMap::fold_first` (renamed `reduce`)
([#​902](https://togithub.com/rust-itertools/itertools/issues/902))
- Fixed `Itertools::k_smallest(0)` to consume the iterator, optimized
`Itertools::k_smallest(1)`
([#​909](https://togithub.com/rust-itertools/itertools/issues/909))
- Specialized `Combinations::nth`
([#​914](https://togithub.com/rust-itertools/itertools/issues/914))
- Specialized `MergeBy::fold`
([#​920](https://togithub.com/rust-itertools/itertools/issues/920))
- Specialized `CombinationsWithReplacement::nth`
([#​923](https://togithub.com/rust-itertools/itertools/issues/923))
- Specialized `FlattenOk::{fold, rfold}`
([#​927](https://togithub.com/rust-itertools/itertools/issues/927))
- Specialized `Powerset::nth`
([#​924](https://togithub.com/rust-itertools/itertools/issues/924))
- Documentation fixes
([#​882](https://togithub.com/rust-itertools/itertools/issues/882),
[#​936](https://togithub.com/rust-itertools/itertools/issues/936))
- Fixed `assert_equal` for iterators longer than `i32::MAX`
([#​932](https://togithub.com/rust-itertools/itertools/issues/932))
- Updated the `must_use` message of non-lazy `KMergeBy` and
`TupleCombinations`
([#​939](https://togithub.com/rust-itertools/itertools/issues/939))
##### Notable Internal Changes
- Tested iterator laziness
([#​792](https://togithub.com/rust-itertools/itertools/issues/792))
- Created `CONTRIBUTING.md`
([#​767](https://togithub.com/rust-itertools/itertools/issues/767))
###
[`v0.12.1`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0121)
[Compare
Source](https://togithub.com/rust-itertools/itertools/compare/v0.12.0...v0.12.1)
##### Added
- Documented iteration order guarantee for
`Itertools::[tuple_]combinations`
([#​822](https://togithub.com/rust-itertools/itertools/issues/822))
- Documented possible panic in `iterate`
([#​842](https://togithub.com/rust-itertools/itertools/issues/842))
- Implemented `Clone` and `Debug` for `Diff`
([#​845](https://togithub.com/rust-itertools/itertools/issues/845))
- Implemented `Debug` for `WithPosition`
([#​859](https://togithub.com/rust-itertools/itertools/issues/859))
- Implemented `Eq` for `MinMaxResult`
([#​838](https://togithub.com/rust-itertools/itertools/issues/838))
- Implemented `From<EitherOrBoth<A, B>>` for `Option<Either<A, B>>`
([#​843](https://togithub.com/rust-itertools/itertools/issues/843))
- Implemented `PeekingNext` for `RepeatN`
([#​855](https://togithub.com/rust-itertools/itertools/issues/855))
##### Changed
- Made `CoalesceBy` lazy
([#​801](https://togithub.com/rust-itertools/itertools/issues/801))
- Optimized `Filter[Map]Ok::next`, `Itertools::partition`,
`Unique[By]::next[_back]`
([#​818](https://togithub.com/rust-itertools/itertools/issues/818))
- Optimized `Itertools::find_position`
([#​837](https://togithub.com/rust-itertools/itertools/issues/837))
- Optimized `Positions::next[_back]`
([#​816](https://togithub.com/rust-itertools/itertools/issues/816))
- Optimized `ZipLongest::fold`
([#​854](https://togithub.com/rust-itertools/itertools/issues/854))
- Relaxed `Debug` bounds for `GroupingMapBy`
([#​860](https://togithub.com/rust-itertools/itertools/issues/860))
- Specialized `ExactlyOneError::fold`
([#​826](https://togithub.com/rust-itertools/itertools/issues/826))
- Specialized `Interleave[Shortest]::fold`
([#​849](https://togithub.com/rust-itertools/itertools/issues/849))
- Specialized `MultiPeek::fold`
([#​820](https://togithub.com/rust-itertools/itertools/issues/820))
- Specialized `PadUsing::[r]fold`
([#​825](https://togithub.com/rust-itertools/itertools/issues/825))
- Specialized `PeekNth::fold`
([#​824](https://togithub.com/rust-itertools/itertools/issues/824))
- Specialized `Positions::[r]fold`
([#​813](https://togithub.com/rust-itertools/itertools/issues/813))
- Specialized `PutBackN::fold`
([#​823](https://togithub.com/rust-itertools/itertools/issues/823))
- Specialized `RepeatN::[r]fold`
([#​821](https://togithub.com/rust-itertools/itertools/issues/821))
- Specialized `TakeWhileInclusive::fold`
([#​851](https://togithub.com/rust-itertools/itertools/issues/851))
- Specialized `ZipLongest::rfold`
([#​848](https://togithub.com/rust-itertools/itertools/issues/848))
##### Notable Internal Changes
- Added test coverage in CI
([#​847](https://togithub.com/rust-itertools/itertools/issues/847),
[#​856](https://togithub.com/rust-itertools/itertools/issues/856))
- Added semver check in CI
([#​784](https://togithub.com/rust-itertools/itertools/issues/784))
- Enforced `clippy` in CI
([#​740](https://togithub.com/rust-itertools/itertools/issues/740))
- Enforced `rustdoc` in CI
([#​840](https://togithub.com/rust-itertools/itertools/issues/840))
- Improved specialization tests
([#​807](https://togithub.com/rust-itertools/itertools/issues/807))
- More specialization benchmarks
([#​806](https://togithub.com/rust-itertools/itertools/issues/806))
###
[`v0.12.0`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0120)
[Compare
Source](https://togithub.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0)
##### Breaking
- Made `take_while_inclusive` consume iterator by value
([#​709](https://togithub.com/rust-itertools/itertools/issues/709))
- Added `Clone` bound to `Unique`
([#​777](https://togithub.com/rust-itertools/itertools/issues/777))
##### Added
- Added `Itertools::try_len`
([#​723](https://togithub.com/rust-itertools/itertools/issues/723))
- Added free function `sort_unstable`
([#​796](https://togithub.com/rust-itertools/itertools/issues/796))
- Added `GroupMap::fold_with`
([#​778](https://togithub.com/rust-itertools/itertools/issues/778),
[#​785](https://togithub.com/rust-itertools/itertools/issues/785))
- Added `PeekNth::{peek_mut, peek_nth_mut}`
([#​716](https://togithub.com/rust-itertools/itertools/issues/716))
- Added `PeekNth::{next_if, next_if_eq}`
([#​734](https://togithub.com/rust-itertools/itertools/issues/734))
- Added conversion into `(Option<A>,Option<B>)` to `EitherOrBoth`
([#​713](https://togithub.com/rust-itertools/itertools/issues/713))
- Added conversion from `Either<A, B>` to `EitherOrBoth<A, B>`
([#​715](https://togithub.com/rust-itertools/itertools/issues/715))
- Implemented `ExactSizeIterator` for `Tuples`
([#​761](https://togithub.com/rust-itertools/itertools/issues/761))
- Implemented `ExactSizeIterator` for `(Circular)TupleWindows`
([#​752](https://togithub.com/rust-itertools/itertools/issues/752))
- Made `EitherOrBoth<T>` a shorthand for `EitherOrBoth<T, T>`
([#​719](https://togithub.com/rust-itertools/itertools/issues/719))
##### Changed
- Added missing `#[must_use]` annotations on iterator adaptors
([#​794](https://togithub.com/rust-itertools/itertools/issues/794))
- Made `Combinations` lazy
([#​795](https://togithub.com/rust-itertools/itertools/issues/795))
- Made `Intersperse(With)` lazy
([#​797](https://togithub.com/rust-itertools/itertools/issues/797))
- Made `Permutations` lazy
([#​793](https://togithub.com/rust-itertools/itertools/issues/793))
- Made `Product` lazy
([#​800](https://togithub.com/rust-itertools/itertools/issues/800))
- Made `TupleWindows` lazy
([#​602](https://togithub.com/rust-itertools/itertools/issues/602))
- Specialized `Combinations::{count, size_hint}`
([#​729](https://togithub.com/rust-itertools/itertools/issues/729))
- Specialized `CombinationsWithReplacement::{count, size_hint}`
([#​737](https://togithub.com/rust-itertools/itertools/issues/737))
- Specialized `Powerset::fold`
([#​765](https://togithub.com/rust-itertools/itertools/issues/765))
- Specialized `Powerset::count`
([#​735](https://togithub.com/rust-itertools/itertools/issues/735))
- Specialized `TupleCombinations::{count, size_hint}`
([#​763](https://togithub.com/rust-itertools/itertools/issues/763))
- Specialized `TupleCombinations::fold`
([#​775](https://togithub.com/rust-itertools/itertools/issues/775))
- Specialized `WhileSome::fold`
([#​780](https://togithub.com/rust-itertools/itertools/issues/780))
- Specialized `WithPosition::fold`
([#​772](https://togithub.com/rust-itertools/itertools/issues/772))
- Specialized `ZipLongest::fold`
([#​774](https://togithub.com/rust-itertools/itertools/issues/774))
- Changed `{min, max}_set*` operations require `alloc` feature, instead
of `std`
([#​760](https://togithub.com/rust-itertools/itertools/issues/760))
- Improved documentation of `tree_fold1`
([#​787](https://togithub.com/rust-itertools/itertools/issues/787))
- Improved documentation of `permutations`
([#​724](https://togithub.com/rust-itertools/itertools/issues/724))
- Fixed typo in documentation of `multiunzip`
([#​770](https://togithub.com/rust-itertools/itertools/issues/770))
##### Notable Internal Changes
- Improved specialization tests
([#​799](https://togithub.com/rust-itertools/itertools/issues/799),
[#​786](https://togithub.com/rust-itertools/itertools/issues/786),
[#​782](https://togithub.com/rust-itertools/itertools/issues/782))
- Simplified implementation of `Permutations`
([#​739](https://togithub.com/rust-itertools/itertools/issues/739),
[#​748](https://togithub.com/rust-itertools/itertools/issues/748),
[#​790](https://togithub.com/rust-itertools/itertools/issues/790))
- Combined `Merge`/`MergeBy`/`MergeJoinBy` implementations
([#​736](https://togithub.com/rust-itertools/itertools/issues/736))
- Simplified `Permutations::size_hint`
([#​739](https://togithub.com/rust-itertools/itertools/issues/739))
- Fix wrapping arithmetic in benchmarks
([#​770](https://togithub.com/rust-itertools/itertools/issues/770))
- Enforced `rustfmt` in CI
([#​751](https://togithub.com/rust-itertools/itertools/issues/751))
- Disallowed compile warnings in CI
([#​720](https://togithub.com/rust-itertools/itertools/issues/720))
- Used `cargo hack` to check MSRV
([#​754](https://togithub.com/rust-itertools/itertools/issues/754))
###
[`v0.11.0`](https://togithub.com/rust-itertools/itertools/blob/HEAD/CHANGELOG.md#0110)
[Compare
Source](https://togithub.com/rust-itertools/itertools/compare/v0.10.5...v0.11.0)
##### Breaking
- Make `Itertools::merge_join_by` also accept functions returning bool
([#​704](https://togithub.com/rust-itertools/itertools/issues/704))
- Implement `PeekingNext` transitively over mutable references
([#​643](https://togithub.com/rust-itertools/itertools/issues/643))
- Change `with_position` to yield `(Position, Item)` instead of
`Position<Item>`
([#​699](https://togithub.com/rust-itertools/itertools/issues/699))
##### Added
- Add `Itertools::take_while_inclusive`
([#​616](https://togithub.com/rust-itertools/itertools/issues/616))
- Implement `PeekingNext` for `PeekingTakeWhile`
([#​644](https://togithub.com/rust-itertools/itertools/issues/644))
- Add `EitherOrBoth::{just_left, just_right, into_left, into_right,
as_deref, as_deref_mut, left_or_insert, right_or_insert,
left_or_insert_with, right_or_insert_with, insert_left, insert_right,
insert_both}`
([#​629](https://togithub.com/rust-itertools/itertools/issues/629))
- Implement `Clone` for `CircularTupleWindows`
([#​686](https://togithub.com/rust-itertools/itertools/issues/686))
- Implement `Clone` for `Chunks`
([#​683](https://togithub.com/rust-itertools/itertools/issues/683))
- Add `Itertools::process_results`
([#​680](https://togithub.com/rust-itertools/itertools/issues/680))
##### Changed
- Use `Cell` instead of `RefCell` in `Format` and `FormatWith`
([#​608](https://togithub.com/rust-itertools/itertools/issues/608))
- CI tweaks
([#​674](https://togithub.com/rust-itertools/itertools/issues/674),
[#​675](https://togithub.com/rust-itertools/itertools/issues/675))
- Document and test the difference between stable and unstable sorts
([#​653](https://togithub.com/rust-itertools/itertools/issues/653))
- Fix documentation error on `Itertools::max_set_by_key`
([#​692](https://togithub.com/rust-itertools/itertools/issues/692))
- Move MSRV metadata to `Cargo.toml`
([#​672](https://togithub.com/rust-itertools/itertools/issues/672))
- Implement `equal` with `Iterator::eq`
([#​591](https://togithub.com/rust-itertools/itertools/issues/591))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
Release Notes:
- N/A
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mikayla <mikayla@zed.dev>