@@ -4,7 +4,7 @@ use crate::HashableChar;
4
4
pub trait MetricUsize {
5
5
fn maximum ( & self , len1 : usize , len2 : usize ) -> usize ;
6
6
7
- fn _distance < Iter1 , Iter2 , Elem1 , Elem2 > (
7
+ fn _distance < Iter1 , Iter2 > (
8
8
& self ,
9
9
s1 : Iter1 ,
10
10
len1 : usize ,
@@ -14,10 +14,10 @@ pub trait MetricUsize {
14
14
score_hint : Option < usize > ,
15
15
) -> Option < usize >
16
16
where
17
- Iter1 : Iterator < Item = Elem1 > + DoubleEndedIterator + Clone ,
18
- Iter2 : Iterator < Item = Elem2 > + DoubleEndedIterator + Clone ,
19
- Elem1 : PartialEq < Elem2 > + HashableChar + Copy ,
20
- Elem2 : PartialEq < Elem1 > + HashableChar + Copy ,
17
+ Iter1 : DoubleEndedIterator + Clone ,
18
+ Iter2 : DoubleEndedIterator + Clone ,
19
+ Iter1 :: Item : PartialEq < Iter2 :: Item > + HashableChar + Copy ,
20
+ Iter2 :: Item : PartialEq < Iter1 :: Item > + HashableChar + Copy ,
21
21
{
22
22
let maximum = self . maximum ( len1, len2) ;
23
23
@@ -35,7 +35,7 @@ pub trait MetricUsize {
35
35
Some ( dist)
36
36
}
37
37
38
- fn _similarity < Iter1 , Iter2 , Elem1 , Elem2 > (
38
+ fn _similarity < Iter1 , Iter2 > (
39
39
& self ,
40
40
s1 : Iter1 ,
41
41
len1 : usize ,
@@ -45,10 +45,10 @@ pub trait MetricUsize {
45
45
mut score_hint : Option < usize > ,
46
46
) -> Option < usize >
47
47
where
48
- Iter1 : Iterator < Item = Elem1 > + DoubleEndedIterator + Clone ,
49
- Iter2 : Iterator < Item = Elem2 > + DoubleEndedIterator + Clone ,
50
- Elem1 : PartialEq < Elem2 > + HashableChar + Copy ,
51
- Elem2 : PartialEq < Elem1 > + HashableChar + Copy ,
48
+ Iter1 : DoubleEndedIterator + Clone ,
49
+ Iter2 : DoubleEndedIterator + Clone ,
50
+ Iter1 :: Item : PartialEq < Iter2 :: Item > + HashableChar + Copy ,
51
+ Iter2 :: Item : PartialEq < Iter1 :: Item > + HashableChar + Copy ,
52
52
{
53
53
let maximum = self . maximum ( len1, len2) ;
54
54
if let Some ( cutoff) = score_cutoff {
@@ -73,7 +73,7 @@ pub trait MetricUsize {
73
73
Some ( sim)
74
74
}
75
75
76
- fn _normalized_distance < Iter1 , Iter2 , Elem1 , Elem2 > (
76
+ fn _normalized_distance < Iter1 , Iter2 > (
77
77
& self ,
78
78
s1 : Iter1 ,
79
79
len1 : usize ,
@@ -83,10 +83,10 @@ pub trait MetricUsize {
83
83
score_hint : Option < f64 > ,
84
84
) -> Option < f64 >
85
85
where
86
- Iter1 : Iterator < Item = Elem1 > + DoubleEndedIterator + Clone ,
87
- Iter2 : Iterator < Item = Elem2 > + DoubleEndedIterator + Clone ,
88
- Elem1 : PartialEq < Elem2 > + HashableChar + Copy ,
89
- Elem2 : PartialEq < Elem1 > + HashableChar + Copy ,
86
+ Iter1 : DoubleEndedIterator + Clone ,
87
+ Iter2 : DoubleEndedIterator + Clone ,
88
+ Iter1 :: Item : PartialEq < Iter2 :: Item > + HashableChar + Copy ,
89
+ Iter2 :: Item : PartialEq < Iter1 :: Item > + HashableChar + Copy ,
90
90
{
91
91
let maximum = self . maximum ( len1, len2) ;
92
92
@@ -121,7 +121,7 @@ pub trait MetricUsize {
121
121
Some ( norm_dist)
122
122
}
123
123
124
- fn _normalized_similarity < Iter1 , Iter2 , Elem1 , Elem2 > (
124
+ fn _normalized_similarity < Iter1 , Iter2 > (
125
125
& self ,
126
126
s1 : Iter1 ,
127
127
len1 : usize ,
@@ -131,10 +131,10 @@ pub trait MetricUsize {
131
131
score_hint : Option < f64 > ,
132
132
) -> Option < f64 >
133
133
where
134
- Iter1 : Iterator < Item = Elem1 > + DoubleEndedIterator + Clone ,
135
- Iter2 : Iterator < Item = Elem2 > + DoubleEndedIterator + Clone ,
136
- Elem1 : PartialEq < Elem2 > + HashableChar + Copy ,
137
- Elem2 : PartialEq < Elem1 > + HashableChar + Copy ,
134
+ Iter1 : DoubleEndedIterator + Clone ,
135
+ Iter2 : DoubleEndedIterator + Clone ,
136
+ Iter1 :: Item : PartialEq < Iter2 :: Item > + HashableChar + Copy ,
137
+ Iter2 :: Item : PartialEq < Iter1 :: Item > + HashableChar + Copy ,
138
138
{
139
139
let cutoff_score = score_cutoff. map ( norm_sim_to_norm_dist) ;
140
140
let hint_score = score_hint. map ( norm_sim_to_norm_dist) ;
@@ -154,7 +154,7 @@ pub trait MetricUsize {
154
154
pub trait Metricf64 {
155
155
fn maximum ( & self , len1 : usize , len2 : usize ) -> f64 ;
156
156
157
- fn _distance < Iter1 , Iter2 , Elem1 , Elem2 > (
157
+ fn _distance < Iter1 , Iter2 > (
158
158
& self ,
159
159
s1 : Iter1 ,
160
160
len1 : usize ,
@@ -164,10 +164,10 @@ pub trait Metricf64 {
164
164
score_hint : Option < f64 > ,
165
165
) -> Option < f64 >
166
166
where
167
- Iter1 : Iterator < Item = Elem1 > + DoubleEndedIterator + Clone ,
168
- Iter2 : Iterator < Item = Elem2 > + DoubleEndedIterator + Clone ,
169
- Elem1 : PartialEq < Elem2 > + HashableChar + Copy ,
170
- Elem2 : PartialEq < Elem1 > + HashableChar + Copy ,
167
+ Iter1 : DoubleEndedIterator + Clone ,
168
+ Iter2 : DoubleEndedIterator + Clone ,
169
+ Iter1 :: Item : PartialEq < Iter2 :: Item > + HashableChar + Copy ,
170
+ Iter2 :: Item : PartialEq < Iter1 :: Item > + HashableChar + Copy ,
171
171
{
172
172
let maximum = self . maximum ( len1, len2) ;
173
173
@@ -185,7 +185,7 @@ pub trait Metricf64 {
185
185
Some ( dist)
186
186
}
187
187
188
- fn _similarity < Iter1 , Iter2 , Elem1 , Elem2 > (
188
+ fn _similarity < Iter1 , Iter2 > (
189
189
& self ,
190
190
s1 : Iter1 ,
191
191
len1 : usize ,
@@ -195,10 +195,10 @@ pub trait Metricf64 {
195
195
mut score_hint : Option < f64 > ,
196
196
) -> Option < f64 >
197
197
where
198
- Iter1 : Iterator < Item = Elem1 > + DoubleEndedIterator + Clone ,
199
- Iter2 : Iterator < Item = Elem2 > + DoubleEndedIterator + Clone ,
200
- Elem1 : PartialEq < Elem2 > + HashableChar + Copy ,
201
- Elem2 : PartialEq < Elem1 > + HashableChar + Copy ,
198
+ Iter1 : DoubleEndedIterator + Clone ,
199
+ Iter2 : DoubleEndedIterator + Clone ,
200
+ Iter1 :: Item : PartialEq < Iter2 :: Item > + HashableChar + Copy ,
201
+ Iter2 :: Item : PartialEq < Iter1 :: Item > + HashableChar + Copy ,
202
202
{
203
203
let maximum = self . maximum ( len1, len2) ;
204
204
if let Some ( cutoff) = score_cutoff {
@@ -223,7 +223,7 @@ pub trait Metricf64 {
223
223
Some ( sim)
224
224
}
225
225
226
- fn _normalized_distance < Iter1 , Iter2 , Elem1 , Elem2 > (
226
+ fn _normalized_distance < Iter1 , Iter2 > (
227
227
& self ,
228
228
s1 : Iter1 ,
229
229
len1 : usize ,
@@ -233,10 +233,10 @@ pub trait Metricf64 {
233
233
score_hint : Option < f64 > ,
234
234
) -> Option < f64 >
235
235
where
236
- Iter1 : Iterator < Item = Elem1 > + DoubleEndedIterator + Clone ,
237
- Iter2 : Iterator < Item = Elem2 > + DoubleEndedIterator + Clone ,
238
- Elem1 : PartialEq < Elem2 > + HashableChar + Copy ,
239
- Elem2 : PartialEq < Elem1 > + HashableChar + Copy ,
236
+ Iter1 : DoubleEndedIterator + Clone ,
237
+ Iter2 : DoubleEndedIterator + Clone ,
238
+ Iter1 :: Item : PartialEq < Iter2 :: Item > + HashableChar + Copy ,
239
+ Iter2 :: Item : PartialEq < Iter1 :: Item > + HashableChar + Copy ,
240
240
{
241
241
let maximum = self . maximum ( len1, len2) ;
242
242
@@ -253,7 +253,7 @@ pub trait Metricf64 {
253
253
Some ( norm_dist)
254
254
}
255
255
256
- fn _normalized_similarity < Iter1 , Iter2 , Elem1 , Elem2 > (
256
+ fn _normalized_similarity < Iter1 , Iter2 > (
257
257
& self ,
258
258
s1 : Iter1 ,
259
259
len1 : usize ,
@@ -263,10 +263,10 @@ pub trait Metricf64 {
263
263
score_hint : Option < f64 > ,
264
264
) -> Option < f64 >
265
265
where
266
- Iter1 : Iterator < Item = Elem1 > + DoubleEndedIterator + Clone ,
267
- Iter2 : Iterator < Item = Elem2 > + DoubleEndedIterator + Clone ,
268
- Elem1 : PartialEq < Elem2 > + HashableChar + Copy ,
269
- Elem2 : PartialEq < Elem1 > + HashableChar + Copy ,
266
+ Iter1 : DoubleEndedIterator + Clone ,
267
+ Iter2 : DoubleEndedIterator + Clone ,
268
+ Iter1 :: Item : PartialEq < Iter2 :: Item > + HashableChar + Copy ,
269
+ Iter2 :: Item : PartialEq < Iter1 :: Item > + HashableChar + Copy ,
270
270
{
271
271
let cutoff_score = score_cutoff. map ( norm_sim_to_norm_dist) ;
272
272
let hint_score = score_hint. map ( norm_sim_to_norm_dist) ;
0 commit comments