1
1
use core:: cmp:: { Ord , Ordering , Reverse } ;
2
2
use core:: mem:: { replace, transmute, MaybeUninit } ;
3
+ use alloc:: vec:: IntoIter ;
3
4
4
5
fn k_smallest_dynamic < T , I : Iterator < Item = T > > (
5
6
iter : I ,
6
7
k : usize ,
7
8
order : impl Fn ( & T , & T ) -> Ordering ,
8
- ) -> std :: vec :: IntoIter < T > {
9
+ ) -> IntoIter < T > {
9
10
let mut storage = Vec :: new ( ) ;
10
11
storage. resize_with ( k, MaybeUninit :: uninit) ;
11
12
let num_elements = capped_heapsort ( iter, & mut storage, order) ;
@@ -31,19 +32,19 @@ where
31
32
pub ( crate ) fn k_smallest < T : Ord , I : Iterator < Item = T > > (
32
33
iter : I ,
33
34
k : usize ,
34
- ) -> std :: vec :: IntoIter < T > {
35
+ ) -> IntoIter < T > {
35
36
k_smallest_dynamic ( iter, k, T :: cmp)
36
37
}
37
38
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 >
39
40
where
40
41
I : Iterator < Item = T > ,
41
42
F : Fn ( & T , & T ) -> Ordering ,
42
43
{
43
44
k_smallest_dynamic ( iter, k, cmp)
44
45
}
45
46
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 >
47
48
where
48
49
I : Iterator < Item = T > ,
49
50
F : Fn ( & T ) -> K ,
0 commit comments