@@ -3006,7 +3006,7 @@ pub trait Itertools: Iterator {
3006
3006
fn k_smallest_by < F > ( self , k : usize , cmp : F ) -> VecIntoIter < Self :: Item >
3007
3007
where
3008
3008
Self : Sized ,
3009
- F : Fn ( & Self :: Item , & Self :: Item ) -> Ordering ,
3009
+ F : FnMut ( & Self :: Item , & Self :: Item ) -> Ordering ,
3010
3010
{
3011
3011
k_smallest:: k_smallest_general ( self , k, cmp) . into_iter ( )
3012
3012
}
@@ -3038,7 +3038,7 @@ pub trait Itertools: Iterator {
3038
3038
fn k_smallest_by_key < F , K > ( self , k : usize , key : F ) -> VecIntoIter < Self :: Item >
3039
3039
where
3040
3040
Self : Sized ,
3041
- F : Fn ( & Self :: Item ) -> K ,
3041
+ F : FnMut ( & Self :: Item ) -> K ,
3042
3042
K : Ord ,
3043
3043
{
3044
3044
self . k_smallest_by ( k, k_smallest:: key_to_cmp ( key) )
@@ -3096,10 +3096,10 @@ pub trait Itertools: Iterator {
3096
3096
/// itertools::assert_equal(five_largest, vec![13, 6, 12, 5, 11]);
3097
3097
/// ```
3098
3098
#[ cfg( feature = "use_alloc" ) ]
3099
- fn k_largest_by < F > ( self , k : usize , cmp : F ) -> VecIntoIter < Self :: Item >
3099
+ fn k_largest_by < F > ( self , k : usize , mut cmp : F ) -> VecIntoIter < Self :: Item >
3100
3100
where
3101
3101
Self : Sized ,
3102
- F : Fn ( & Self :: Item , & Self :: Item ) -> Ordering ,
3102
+ F : FnMut ( & Self :: Item , & Self :: Item ) -> Ordering ,
3103
3103
{
3104
3104
self . k_smallest_by ( k, move |a, b| cmp ( b, a) )
3105
3105
}
@@ -3128,7 +3128,7 @@ pub trait Itertools: Iterator {
3128
3128
fn k_largest_by_key < F , K > ( self , k : usize , key : F ) -> VecIntoIter < Self :: Item >
3129
3129
where
3130
3130
Self : Sized ,
3131
- F : Fn ( & Self :: Item ) -> K ,
3131
+ F : FnMut ( & Self :: Item ) -> K ,
3132
3132
K : Ord ,
3133
3133
{
3134
3134
self . k_largest_by ( k, k_smallest:: key_to_cmp ( key) )
0 commit comments