3
3
use std:: collections:: HashMap ;
4
4
use std:: hash:: Hash ;
5
5
use std:: iter:: Iterator ;
6
+ use alloc:: Vec ;
6
7
7
8
/// Return a `HashMap` of keys mapped to a list of their corresponding values.
8
9
///
9
10
/// See [`.into_group_map()`](../trait.Itertools.html#method.into_group_map)
10
11
/// for more information.
11
12
pub fn into_group_map < I , K , V > ( iter : I ) -> HashMap < K , Vec < V > >
12
- where I : Iterator < Item =( K , V ) > ,
13
- K : Hash + Eq ,
13
+ where
14
+ I : Iterator < Item = ( K , V ) > ,
15
+ K : Hash + Eq ,
14
16
{
15
17
let mut lookup = HashMap :: new ( ) ;
16
18
@@ -22,8 +24,9 @@ pub fn into_group_map<I, K, V>(iter: I) -> HashMap<K, Vec<V>>
22
24
}
23
25
24
26
pub fn into_group_map_by < I , K , V > ( iter : I , f : impl Fn ( & V ) -> K ) -> HashMap < K , Vec < V > >
25
- where I : Iterator < Item =V > ,
26
- K : Hash + Eq ,
27
+ where
28
+ I : Iterator < Item = V > ,
29
+ K : Hash + Eq ,
27
30
{
28
31
let mut lookup = HashMap :: new ( ) ;
29
32
@@ -35,15 +38,16 @@ pub fn into_group_map_by<I, K, V>(iter: I, f: impl Fn(&V) -> K) -> HashMap<K, Ve
35
38
lookup
36
39
}
37
40
38
- pub fn into_group_map_by_fold < I , K , V , Acc , Fold > ( iter : I , f_key : impl Fn ( & V ) -> K ,
39
- init : Acc ,
40
- fold : Fold ) -> HashMap < K , Acc >
41
- where I : Iterator < Item =V > ,
42
- K : Hash + Eq ,
43
- Acc : Clone ,
44
- Fold : FnMut ( Acc , V ) -> Acc + Clone
45
-
46
-
41
+ pub fn into_group_map_by_fold < I , K , V , Acc , Fold > (
42
+ iter : impl Iterator < Item =V > ,
43
+ f_key : impl Fn ( & V ) -> K ,
44
+ init : Acc ,
45
+ fold : Fold ,
46
+ ) -> HashMap < K , Acc >
47
+ where
48
+ K : Hash + Eq ,
49
+ Acc : Clone ,
50
+ Fold : FnMut ( Acc , V ) -> Acc + Clone ,
47
51
{
48
52
let mut lookup = HashMap :: new ( ) ;
49
53
@@ -54,7 +58,6 @@ pub fn into_group_map_by_fold<I, K, V, Acc, Fold>(iter: I, f_key: impl Fn(&V) ->
54
58
55
59
lookup
56
60
. into_iter ( )
57
- . map ( move |( key, value) | ( key, value. into_iter ( ) . fold ( init. clone ( ) , fold. clone ( ) ) ) )
61
+ . map ( move |( key, value) | ( key, value. into_iter ( ) . fold ( init. clone ( ) , fold. clone ( ) ) ) )
58
62
. collect ( )
59
63
}
60
-
0 commit comments