36 curated breaking changes across major versions of itertools. Use this as a migration checklist before bumping dependencies.
`format` to `format_with` and `format_default` to `format`
`Unfold::new` to `unfold()`
`RepeatCall::new` to `repeat_call()`
`Zip::new` to `multizip`
`PutBack::new`, `PutBackN::new` to `put_back`, `put_back_n`
[Release announcement](https://bluss.github.io/rust/2016/09/26/itertools-0.5.0/)
`combinations` is now `tuple_combinations`
`combinations_n` to `combinations`
`group_by_lazy`, `chunks_lazy` to `group_by`, `chunks`
`MultiPeek::new`, `.multipeek()` to `multipeek()`
`.into_rc()` to `rciter`
`Partition` enum is now `Either`
Module reorganization:
All iterator structs are under `itertools::structs` but also reexported to the top level, for backwards compatibility
`PutBack::with_value` is now a builder setter, not a constructor
`ZipSlices`, use `.zip()` instead
`.enumerate_from()`, `ZipTrusted`, due to being unstable
`.mend_slices()`, moved to crate `odds`
Stride, StrideMut, moved to crate `odds`
`linspace()`, moved to crate `itertools-num`
`.sort_by()`, use `.sorted_by()`
`.is_empty_hint()`, use `.size_hint()`
All free functions are reexported at the root, `itertools::free` will be removed in the next version
`.merge()`, `.unique()` and `.dedup()` now perform better due to not using function pointers
Add free functions `enumerate()` and `rev()`
Breaking changes:
`.interleave_shortest()` is no longer guaranteed to act like fused
`.merge_by()` now takes a closure that returns bool.
Return type of `.dedup()` changed
Return type of `.mend_slices()` changed
Return type of `.unique()` changed
Removed deprecated macro `icompr!()`
Method `Merge::new` removed
Removed deprecated `FnMap` and method `.fn_map()`: use `.map_fn()`
Removed function `times()`, struct `Times`: use a range instead
Return types of `.merge()` and `.merge_by()` renamed and changed
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/breaking/cargo/itertools