@@ -151,8 +151,8 @@ pub trait Threshold<G: Scope, K: Data, R1: Semigroup> where G::Timestamp: Lattic
151
151
R2 : Abelian ,
152
152
F : FnMut ( & K , & R1 ) -> R2 + ' static ,
153
153
Tr : Trace + TraceReader < Key = K , Val = ( ) , Time = G :: Timestamp , R = R2 > + ' static ,
154
- Tr :: Batch : Batch < K , ( ) , G :: Timestamp , R2 > ,
155
- Tr :: Cursor : Cursor < K , ( ) , G :: Timestamp , R2 > ;
154
+ Tr :: Batch : Batch < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
155
+ Tr :: Cursor : Cursor < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ;
156
156
157
157
/// Reduces the collection to one occurrence of each distinct element.
158
158
///
@@ -209,8 +209,8 @@ pub trait Threshold<G: Scope, K: Data, R1: Semigroup> where G::Timestamp: Lattic
209
209
where
210
210
R2 : Abelian + From < i8 > ,
211
211
Tr : Trace + TraceReader < Key = K , Val = ( ) , Time = G :: Timestamp , R = R2 > + ' static ,
212
- Tr :: Batch : Batch < K , ( ) , G :: Timestamp , R2 > ,
213
- Tr :: Cursor : Cursor < K , ( ) , G :: Timestamp , R2 > ,
212
+ Tr :: Batch : Batch < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
213
+ Tr :: Cursor : Cursor < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
214
214
{
215
215
self . threshold_core ( name, |_, _| R2 :: from ( 1i8 ) )
216
216
}
@@ -226,8 +226,8 @@ where
226
226
R2 : Abelian ,
227
227
F : FnMut ( & K , & R1 ) -> R2 + ' static ,
228
228
Tr : Trace + TraceReader < Key = K , Val = ( ) , Time = G :: Timestamp , R = R2 > + ' static ,
229
- Tr :: Batch : Batch < K , ( ) , G :: Timestamp , R2 > ,
230
- Tr :: Cursor : Cursor < K , ( ) , G :: Timestamp , R2 > ,
229
+ Tr :: Batch : Batch < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
230
+ Tr :: Cursor : Cursor < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
231
231
{
232
232
self . arrange_by_self_named ( & format ! ( "Arrange: {}" , name) )
233
233
. threshold_core ( name, thresh)
@@ -246,8 +246,8 @@ where
246
246
R2 : Abelian ,
247
247
F : FnMut ( & K , & R1 ) -> R2 + ' static ,
248
248
Tr : Trace + TraceReader < Key = K , Val = ( ) , Time = G :: Timestamp , R = R2 > + ' static ,
249
- Tr :: Batch : Batch < K , ( ) , G :: Timestamp , R2 > ,
250
- Tr :: Cursor : Cursor < K , ( ) , G :: Timestamp , R2 > ,
249
+ Tr :: Batch : Batch < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
250
+ Tr :: Cursor : Cursor < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
251
251
{
252
252
self . reduce_abelian :: < _ , Tr > ( name, move |k, s, t| {
253
253
t. push ( ( ( ) , thresh ( k, & s[ 0 ] . 1 ) ) ) ;
@@ -292,22 +292,23 @@ pub trait Count<G: Scope, K: Data, R: Semigroup> where G::Timestamp: Lattice+Ord
292
292
///
293
293
/// use differential_dataflow::input::Input;
294
294
/// use differential_dataflow::operators::Count;
295
+ /// use differential_dataflow::operators::arrange::OrdValSpine;
295
296
///
296
297
/// fn main() {
297
298
/// ::timely::example(|scope| {
298
299
/// // report the number of occurrences of each key
299
300
/// scope.new_collection_from(1 .. 10).1
300
301
/// .map(|x| x / 3)
301
- /// .count ();
302
+ /// .count_core::<isize, OrdValSpine<_, _, _, _> ();
302
303
/// });
303
304
/// }
304
305
/// ```
305
306
fn count_core < R2 , Tr > ( & self ) -> Arranged < G , TraceAgent < Tr > >
306
307
where
307
308
R2 : Abelian + From < i8 > ,
308
309
Tr : Trace + TraceReader < Key = K , Val = R , Time = G :: Timestamp , R = R2 > + ' static ,
309
- Tr :: Batch : Batch < K , R , G :: Timestamp , R2 > ,
310
- Tr :: Cursor : Cursor < K , R , G :: Timestamp , R2 > ;
310
+ Tr :: Batch : Batch < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
311
+ Tr :: Cursor : Cursor < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ;
311
312
}
312
313
313
314
impl < G : Scope , K : ExchangeData +Hashable , R : ExchangeData +Semigroup > Count < G , K , R > for Collection < G , K , R >
@@ -318,8 +319,8 @@ where
318
319
where
319
320
R2 : Abelian + From < i8 > ,
320
321
Tr : Trace + TraceReader < Key = K , Val = R , Time = G :: Timestamp , R = R2 > + ' static ,
321
- Tr :: Batch : Batch < K , R , G :: Timestamp , R2 > ,
322
- Tr :: Cursor : Cursor < K , R , G :: Timestamp , R2 > ,
322
+ Tr :: Batch : Batch < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
323
+ Tr :: Cursor : Cursor < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
323
324
{
324
325
self . arrange_by_self_named ( "Arrange: Count" )
325
326
. count_core ( )
@@ -337,8 +338,8 @@ where
337
338
where
338
339
R2 : Abelian + From < i8 > ,
339
340
Tr : Trace + TraceReader < Key = K , Val = R , Time = G :: Timestamp , R = R2 > + ' static ,
340
- Tr :: Batch : Batch < K , R , G :: Timestamp , R2 > ,
341
- Tr :: Cursor : Cursor < K , R , G :: Timestamp , R2 > ,
341
+ Tr :: Batch : Batch < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
342
+ Tr :: Cursor : Cursor < Tr :: Key , Tr :: Val , Tr :: Time , Tr :: R > ,
342
343
{
343
344
self . reduce_abelian :: < _ , Tr > ( "Count" , |_k, s, t| t. push ( ( s[ 0 ] . 1 . clone ( ) , R2 :: from ( 1 ) ) ) )
344
345
}
0 commit comments