11use core:: cmp:: { Ord , Ordering , Reverse } ;
22use core:: mem:: { replace, transmute, MaybeUninit } ;
3+ use alloc:: vec:: IntoIter ;
34
45fn k_smallest_dynamic < T , I : Iterator < Item = T > > (
56 iter : I ,
67 k : usize ,
78 order : impl Fn ( & T , & T ) -> Ordering ,
8- ) -> std :: vec :: IntoIter < T > {
9+ ) -> IntoIter < T > {
910 let mut storage = Vec :: new ( ) ;
1011 storage. resize_with ( k, MaybeUninit :: uninit) ;
1112 let num_elements = capped_heapsort ( iter, & mut storage, order) ;
@@ -31,19 +32,19 @@ where
3132pub ( crate ) fn k_smallest < T : Ord , I : Iterator < Item = T > > (
3233 iter : I ,
3334 k : usize ,
34- ) -> std :: vec :: IntoIter < T > {
35+ ) -> IntoIter < T > {
3536 k_smallest_dynamic ( iter, k, T :: cmp)
3637}
3738
38- pub ( crate ) fn k_smallest_by < T , I , F > ( iter : I , k : usize , cmp : F ) -> std :: vec :: IntoIter < T >
39+ pub ( crate ) fn k_smallest_by < T , I , F > ( iter : I , k : usize , cmp : F ) -> IntoIter < T >
3940where
4041 I : Iterator < Item = T > ,
4142 F : Fn ( & T , & T ) -> Ordering ,
4243{
4344 k_smallest_dynamic ( iter, k, cmp)
4445}
4546
46- pub ( crate ) fn k_smallest_by_key < T , I , F , K > ( iter : I , k : usize , key : F ) -> std :: vec :: IntoIter < T >
47+ pub ( crate ) fn k_smallest_by_key < T , I , F , K > ( iter : I , k : usize , key : F ) -> IntoIter < T >
4748where
4849 I : Iterator < Item = T > ,
4950 F : Fn ( & T ) -> K ,
0 commit comments