@@ -17,28 +17,19 @@ use std::ops::Add;
17
17
18
18
/// computes the minimum of the input column
19
19
pub fn min < ' a , N > ( inp : impl Iterator < Item = ( & ' a N , ) > ) -> impl Iterator < Item = N >
20
- where
21
- N : Ord + Clone ,
22
- N : ' a ,
23
- {
20
+ where N : ' a + Ord + Clone {
24
21
inp. map ( |tuple| tuple. 0 ) . min ( ) . cloned ( ) . into_iter ( )
25
22
}
26
23
27
24
/// computes the maximum of the input column
28
25
pub fn max < ' a , N > ( inp : impl Iterator < Item = ( & ' a N , ) > ) -> impl Iterator < Item = N >
29
- where
30
- N : Ord + Clone ,
31
- N : ' a ,
32
- {
26
+ where N : ' a + Ord + Clone {
33
27
inp. map ( |tuple| tuple. 0 ) . max ( ) . cloned ( ) . into_iter ( )
34
28
}
35
29
36
30
/// computes the sum of the input column
37
31
pub fn sum < ' a , N > ( inp : impl Iterator < Item = ( & ' a N , ) > ) -> impl Iterator < Item = N >
38
- where
39
- N : Ord + Add + Clone + Sum < N > ,
40
- N : ' a ,
41
- {
32
+ where N : ' a + Ord + Add + Clone + Sum < N > {
42
33
let sum = inp. map ( |tuple| tuple. 0 ) . cloned ( ) . sum :: < N > ( ) ;
43
34
std:: iter:: once ( sum)
44
35
}
@@ -75,10 +66,7 @@ pub fn count(inp: impl Iterator<Item = ()>) -> impl Iterator<Item = usize> {
75
66
76
67
/// computes the average of the input column, returning an `f64`
77
68
pub fn mean < ' a , N > ( inp : impl Iterator < Item = ( & ' a N , ) > ) -> impl Iterator < Item = f64 >
78
- where
79
- N : Clone + Into < f64 > ,
80
- N : ' a ,
81
- {
69
+ where N : ' a + Clone + Into < f64 > {
82
70
let ( sum, count) = inp. fold ( ( 0.0 , 0usize ) , |( sum, count) , tuple| ( tuple. 0 . clone ( ) . into ( ) + sum, count + 1 ) ) ;
83
71
let res = if count == 0 { None } else { Some ( sum / count as f64 ) } ;
84
72
res. into_iter ( )
88
76
pub fn percentile < ' a , TItem , TInputIter > ( p : f64 ) -> impl Fn ( TInputIter ) -> std:: option:: IntoIter < TItem >
89
77
where
90
78
TInputIter : Iterator < Item = ( & ' a TItem , ) > ,
91
- TItem : Ord + Clone ,
92
- TItem : ' a ,
79
+ TItem : ' a + Ord + Clone ,
93
80
{
94
81
move |inp| {
95
82
let mut sorted: Vec < _ > = inp. map ( |tuple| tuple. 0 . clone ( ) ) . collect ( ) ;
0 commit comments