Update Rust crate itertools to 0.13.0 #19
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.7.8
->0.13.0
Release Notes
rust-itertools/itertools (itertools)
v0.13.0
Compare Source
Breaking
DoubleEndedIterator
forConsTuples
(#853)MultiProduct
fused and fixed on an empty iterator (#835, #834)iproduct!
to return tuples for maxi one iterator too (#870)PutBack::put_back
to return the old value (#880)repeat_call, Itertools::{foreach, step, map_results, fold_results}
(#878)TakeWhileInclusive::new
(#912)Added
Itertools::{smallest_by, smallest_by_key, largest, largest_by, largest_by_key}
(#654, #885)Itertools::tail
(#899)DoubleEndedIterator
forProcessResults
(#910)Debug
forFormatWith
(#931)Itertools::get
(#891)Changed
Itertools::group_by
(renamedchunk_by
) (#866, #879)unfold
(usestd::iter::from_fn
instead) (#871)GroupingMapBy
(#873, #876)Fn
bounds toFnMut
indiff_with, Itertools::into_group_map_by
(#886)Debug/Clone
bounds forMapInto
(#889)use_alloc
feature (#887)Itertools::set_from
(#888)README.md
(#890)Cargo.toml
(#894)Itertools::k_smallest
on short unfused iterators (#900)Itertools::tree_fold1
(renamedtree_reduce
) (#895)GroupingMap::fold_first
(renamedreduce
) (#902)Itertools::k_smallest(0)
to consume the iterator, optimizedItertools::k_smallest(1)
(#909)Combinations::nth
(#914)MergeBy::fold
(#920)CombinationsWithReplacement::nth
(#923)FlattenOk::{fold, rfold}
(#927)Powerset::nth
(#924)assert_equal
for iterators longer thani32::MAX
(#932)must_use
message of non-lazyKMergeBy
andTupleCombinations
(#939)Notable Internal Changes
CONTRIBUTING.md
(#767)v0.12.1
Compare Source
Added
Itertools::[tuple_]combinations
(#822)iterate
(#842)Clone
andDebug
forDiff
(#845)Debug
forWithPosition
(#859)Eq
forMinMaxResult
(#838)From<EitherOrBoth<A, B>>
forOption<Either<A, B>>
(#843)PeekingNext
forRepeatN
(#855)Changed
CoalesceBy
lazy (#801)Filter[Map]Ok::next
,Itertools::partition
,Unique[By]::next[_back]
(#818)Itertools::find_position
(#837)Positions::next[_back]
(#816)ZipLongest::fold
(#854)Debug
bounds forGroupingMapBy
(#860)ExactlyOneError::fold
(#826)Interleave[Shortest]::fold
(#849)MultiPeek::fold
(#820)PadUsing::[r]fold
(#825)PeekNth::fold
(#824)Positions::[r]fold
(#813)PutBackN::fold
(#823)RepeatN::[r]fold
(#821)TakeWhileInclusive::fold
(#851)ZipLongest::rfold
(#848)Notable Internal Changes
clippy
in CI (#740)rustdoc
in CI (#840)v0.12.0
Compare Source
Breaking
take_while_inclusive
consume iterator by value (#709)Clone
bound toUnique
(#777)Added
Itertools::try_len
(#723)sort_unstable
(#796)GroupMap::fold_with
(#778, #785)PeekNth::{peek_mut, peek_nth_mut}
(#716)PeekNth::{next_if, next_if_eq}
(#734)(Option<A>,Option<B>)
toEitherOrBoth
(#713)Either<A, B>
toEitherOrBoth<A, B>
(#715)ExactSizeIterator
forTuples
(#761)ExactSizeIterator
for(Circular)TupleWindows
(#752)EitherOrBoth<T>
a shorthand forEitherOrBoth<T, T>
(#719)Changed
#[must_use]
annotations on iterator adaptors (#794)Combinations
lazy (#795)Intersperse(With)
lazy (#797)Permutations
lazy (#793)Product
lazy (#800)TupleWindows
lazy (#602)Combinations::{count, size_hint}
(#729)CombinationsWithReplacement::{count, size_hint}
(#737)Powerset::fold
(#765)Powerset::count
(#735)TupleCombinations::{count, size_hint}
(#763)TupleCombinations::fold
(#775)WhileSome::fold
(#780)WithPosition::fold
(#772)ZipLongest::fold
(#774){min, max}_set*
operations requirealloc
feature, instead ofstd
(#760)tree_fold1
(#787)permutations
(#724)multiunzip
(#770)Notable Internal Changes
Permutations
(#739, #748, #790)Merge
/MergeBy
/MergeJoinBy
implementations (#736)Permutations::size_hint
(#739)rustfmt
in CI (#751)cargo hack
to check MSRV (#754)v0.11.0
Compare Source
Breaking
Itertools::merge_join_by
also accept functions returning bool (#704)PeekingNext
transitively over mutable references (#643)with_position
to yield(Position, Item)
instead ofPosition<Item>
(#699)Added
Itertools::take_while_inclusive
(#616)PeekingNext
forPeekingTakeWhile
(#644)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)Clone
forCircularTupleWindows
(#686)Clone
forChunks
(#683)Itertools::process_results
(#680)Changed
Cell
instead ofRefCell
inFormat
andFormatWith
(#608)Itertools::max_set_by_key
(#692)Cargo.toml
(#672)equal
withIterator::eq
(#591)v0.10.5
Compare Source
v0.10.4
Compare Source
EitherOrBoth::or
andEitherOrBoth::or_else
(#593)min_set
,max_set
et al. (#613, #323)either/use_std
(#628)v0.10.3
Compare Source
v0.10.1
Compare Source
Itertools::contains
(#514)Itertools::counts_by
(#515)Itertools::partition_result
(#511)Itertools::all_unique
(#241)Itertools::duplicates
andItertools::duplicates_by
(#502)chain!
(#525)Itertools::at_most_one
(#523)Itertools::flatten_ok
(#527)EitherOrBoth::or_default
(#583)Itertools::find_or_last
andItertools::find_or_first
(#535)FusedIterator
forFilterOk
,FilterMapOk
,InterleaveShortest
,KMergeBy
,MergeBy
,PadUsing
,Positions
,Product
,RcIter
,TupleWindows
,Unique
,UniqueBy
,Update
,WhileSome
,Combinations
,CombinationsWithReplacement
,Powerset
,RepeatN
, andWithPosition
(#550)FusedIterator
forInterleave
,IntersperseWith
, andZipLongest
(#548)v0.10.0
Compare Source
Itertools::powerset
(#335)Itertools::sorted_unstable
,Itertools::sorted_unstable_by
, andItertools::sorted_unstable_by_key
(#494)Error
forExactlyOneError
(#484)Itertools::fold_while
(#476)use_alloc
feature for users who havealloc
, but notstd
(#474)Itertools::k_smallest
(#473)Itertools::into_grouping_map
andGroupingMap
(#465)Itertools::into_grouping_map_by
andGroupingMapBy
(#465)Itertools::counts
(#468)DoubleEndedIterator
forUnique
(#442)DoubleEndedIterator
forUniqueBy
(#442)DoubleEndedIterator
forZip
(#346)Itertools::multipeek
(#435)Itertools::dedup_with_count
andDedupWithCount
(#423)Itertools::dedup_by_with_count
andDedupByWithCount
(#423)Itertools::intersperse_with
andIntersperseWith
(#381)Itertools::filter_ok
andFilterOk
(#377)Itertools::filter_map_ok
andFilterMapOk
(#377)Itertools::fold_results
, useItertools::fold_ok
instead (#377)Itertools::map_results
, useItertools::map_ok
instead (#377)FoldResults
, useFoldOk
instead (#377)MapResults
, useMapOk
instead (#377)Itertools::circular_tuple_windows
andCircularTupleWindows
(#350)peek_nth
andPeekNth
(#303)v0.9.0
Compare Source
MergeJoinBy::size_hint
(#385)derive(Clone)
where possible (#382)try_collect
method (#394)HomogeneousTuple
trait (#389)combinations(0)
andcombinations_with_replacement(0)
(#383)ParitalEq
to theItem
ofDedupBy
(#397)PutBack
adaptor and on theMergeJoinBy
iterator (#372)position_*
methods (#412)Hash
forEitherOrBoth
(#417)v0.8.2
Compare Source
slice::iter
instead ofinto_iter
to avoid future breakage (#378, by @LukasKalbertodt)v0.8.1
Compare Source
.exactly_one()
iterator method that, on success, extracts the single value of an iterator ; by @XaeroxeAdded combinatory iterator adaptors:
.permutations(k)
:[0, 1, 2].iter().permutations(2)
yields; by @tobz1000
.combinations_with_replacement(k)
:[0, 1, 2].iter().combinations_with_replacement(2)
yields; by @tommilligan
For reference, these methods join the already existing
.combinations(k)
:[0, 1, 2].iter().combinations(2)
yieldsImproved the performance of
.fold()
-based internal iteration for the.intersperse()
iterator ; by @jswrennAdded
.dedup_by()
,.merge_by()
and.kmerge_by()
adaptors that work like.dedup()
,.merge()
and.kmerge()
, but taking an additional custom comparison closure parameter. ; by @phimuemueImproved the performance of
.all_equal()
; by @fyrchikLoosened the bounds on
.partition_map()
to take just aFnMut
closure rather than aFn
closure, and made its implementation use internal iteration for better performance ; by @danielhenrymantillaAdded convenience methods to
EitherOrBoth
elements yielded from the.zip_longest()
iterator adaptor ; by @Avi-D-coderAdded
.sum1()
and.product1()
iterator methods that respectively try to return the sum and the product of the elements of an iterator when it is not empty, otherwise they returnNone
; by @Emerentiusv0.8.0
Compare Source
.map_into()
for conversions usingInto
by @vornerItertools
docs by @JohnHeitmann.sorted_by_by_key()
is now an iterator, not a Vec.izip!(x, y)
macro with exactly two arguments is now the usualIterator::zip
..flatten()
in favour of std's.flatten()
.foreach()
in favour of std's.for_each()
.step()
in favour of std's.step_by()
repeat_call
in favour of std'srepeat_with
.fold_while()
in favour of std's.try_fold()
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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 this update again.