itertools breaking changes

cargo

36 curated breaking changes across major versions of itertools. Use this as a migration checklist before bumping dependencies.

36
changes
Breaking changes by transition
  • 0.4.19 \u2192 0.5.0behavior

    `format` to `format_with` and `format_default` to `format`

  • 0.4.19 \u2192 0.5.0breaking

    `Unfold::new` to `unfold()`

  • 0.4.19 \u2192 0.5.0breaking

    `RepeatCall::new` to `repeat_call()`

  • 0.4.19 \u2192 0.5.0breaking

    `Zip::new` to `multizip`

  • 0.4.19 \u2192 0.5.0breaking

    `PutBack::new`, `PutBackN::new` to `put_back`, `put_back_n`

  • 0.4.19 \u2192 0.5.0breaking

    [Release announcement](https://bluss.github.io/rust/2016/09/26/itertools-0.5.0/)

  • 0.4.19 \u2192 0.5.0breaking

    `combinations` is now `tuple_combinations`

  • 0.4.19 \u2192 0.5.0breaking

    `combinations_n` to `combinations`

  • 0.4.19 \u2192 0.5.0breaking

    `group_by_lazy`, `chunks_lazy` to `group_by`, `chunks`

  • 0.4.19 \u2192 0.5.0breaking

    `MultiPeek::new`, `.multipeek()` to `multipeek()`

  • 0.4.19 \u2192 0.5.0breaking

    `.into_rc()` to `rciter`

  • 0.4.19 \u2192 0.5.0breaking

    `Partition` enum is now `Either`

  • 0.4.19 \u2192 0.5.0breaking

    Module reorganization:

  • 0.4.19 \u2192 0.5.0breaking

    All iterator structs are under `itertools::structs` but also reexported to the top level, for backwards compatibility

  • 0.4.19 \u2192 0.5.0breaking

    `PutBack::with_value` is now a builder setter, not a constructor

  • 0.4.19 \u2192 0.5.0breaking

    `ZipSlices`, use `.zip()` instead

  • 0.4.19 \u2192 0.5.0breaking

    `.enumerate_from()`, `ZipTrusted`, due to being unstable

  • 0.4.19 \u2192 0.5.0breaking

    `.mend_slices()`, moved to crate `odds`

  • 0.4.19 \u2192 0.5.0breaking

    Stride, StrideMut, moved to crate `odds`

  • 0.4.19 \u2192 0.5.0breaking

    `linspace()`, moved to crate `itertools-num`

  • 0.4.19 \u2192 0.5.0breaking

    `.sort_by()`, use `.sorted_by()`

  • 0.4.19 \u2192 0.5.0breaking

    `.is_empty_hint()`, use `.size_hint()`

  • 0.4.19 \u2192 0.5.0removed

    All free functions are reexported at the root, `itertools::free` will be removed in the next version

  • 0.3.25 \u2192 0.4.0breaking

    `.merge()`, `.unique()` and `.dedup()` now perform better due to not using function pointers

  • 0.3.25 \u2192 0.4.0breaking

    Add free functions `enumerate()` and `rev()`

  • 0.3.25 \u2192 0.4.0breaking

    Breaking changes:

  • 0.3.25 \u2192 0.4.0breaking

    `.interleave_shortest()` is no longer guaranteed to act like fused

  • 0.3.25 \u2192 0.4.0breaking

    `.merge_by()` now takes a closure that returns bool.

  • 0.3.25 \u2192 0.4.0breaking

    Return type of `.dedup()` changed

  • 0.3.25 \u2192 0.4.0breaking

    Return type of `.mend_slices()` changed

  • 0.3.25 \u2192 0.4.0breaking

    Return type of `.unique()` changed

  • 0.3.25 \u2192 0.4.0removed

    Removed deprecated macro `icompr!()`

  • 0.3.25 \u2192 0.4.0removed

    Method `Merge::new` removed

  • 0.3.25 \u2192 0.4.0removed

    Removed deprecated `FnMap` and method `.fn_map()`: use `.map_fn()`

  • 0.3.25 \u2192 0.4.0removed

    Removed function `times()`, struct `Times`: use a range instead

  • 0.3.25 \u2192 0.4.0renamed

    Return types of `.merge()` and `.merge_by()` renamed and changed

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/itertools
itertools breaking changes — Cargo migration guide | DepScope