@@ -3006,7 +3006,7 @@ pub trait Itertools: Iterator {
30063006 fn k_smallest_by < F > ( self , k : usize , cmp : F ) -> VecIntoIter < Self :: Item >
30073007 where
30083008 Self : Sized ,
3009- F : Fn ( & Self :: Item , & Self :: Item ) -> Ordering ,
3009+ F : FnMut ( & Self :: Item , & Self :: Item ) -> Ordering ,
30103010 {
30113011 k_smallest:: k_smallest_general ( self , k, cmp) . into_iter ( )
30123012 }
@@ -3038,7 +3038,7 @@ pub trait Itertools: Iterator {
30383038 fn k_smallest_by_key < F , K > ( self , k : usize , key : F ) -> VecIntoIter < Self :: Item >
30393039 where
30403040 Self : Sized ,
3041- F : Fn ( & Self :: Item ) -> K ,
3041+ F : FnMut ( & Self :: Item ) -> K ,
30423042 K : Ord ,
30433043 {
30443044 self . k_smallest_by ( k, k_smallest:: key_to_cmp ( key) )
@@ -3096,10 +3096,10 @@ pub trait Itertools: Iterator {
30963096 /// itertools::assert_equal(five_largest, vec![13, 6, 12, 5, 11]);
30973097 /// ```
30983098 #[ 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 >
31003100 where
31013101 Self : Sized ,
3102- F : Fn ( & Self :: Item , & Self :: Item ) -> Ordering ,
3102+ F : FnMut ( & Self :: Item , & Self :: Item ) -> Ordering ,
31033103 {
31043104 self . k_smallest_by ( k, move |a, b| cmp ( b, a) )
31053105 }
@@ -3128,7 +3128,7 @@ pub trait Itertools: Iterator {
31283128 fn k_largest_by_key < F , K > ( self , k : usize , key : F ) -> VecIntoIter < Self :: Item >
31293129 where
31303130 Self : Sized ,
3131- F : Fn ( & Self :: Item ) -> K ,
3131+ F : FnMut ( & Self :: Item ) -> K ,
31323132 K : Ord ,
31333133 {
31343134 self . k_largest_by ( k, k_smallest:: key_to_cmp ( key) )
0 commit comments