@@ -35,7 +35,6 @@ use crate::trace::implementations::{KeyBatcher, KeyBuilder, KeySpine, ValBatcher
3535use trace:: wrappers:: enter:: { TraceEnter , BatchEnter , } ;
3636use trace:: wrappers:: enter_at:: TraceEnter as TraceEnterAt ;
3737use trace:: wrappers:: enter_at:: BatchEnter as BatchEnterAt ;
38- use trace:: wrappers:: filter:: { TraceFilter , BatchFilter } ;
3938
4039use super :: TraceAgent ;
4140
@@ -131,44 +130,6 @@ where
131130 }
132131 }
133132
134- /// Filters an arranged collection.
135- ///
136- /// This method produces a new arrangement backed by the same shared
137- /// arrangement as `self`, paired with user-specified logic that can
138- /// filter by key and value. The resulting collection is restricted
139- /// to the keys and values that return true under the user predicate.
140- ///
141- /// # Examples
142- ///
143- /// ```
144- /// use differential_dataflow::input::Input;
145- /// use differential_dataflow::operators::arrange::ArrangeByKey;
146- ///
147- /// ::timely::example(|scope| {
148- ///
149- /// let arranged =
150- /// scope.new_collection_from(0 .. 10).1
151- /// .map(|x| (x, x+1))
152- /// .arrange_by_key();
153- ///
154- /// arranged
155- /// .filter(|k,v| k == v)
156- /// .as_collection(|k,v| (*k,*v))
157- /// .assert_empty();
158- /// });
159- /// ```
160- pub fn filter < F > ( & self , logic : F )
161- -> Arranged < G , TraceFilter < Tr , F > >
162- where
163- F : FnMut ( Tr :: Key < ' _ > , Tr :: Val < ' _ > ) ->bool +Clone +' static ,
164- {
165- let logic1 = logic. clone ( ) ;
166- let logic2 = logic. clone ( ) ;
167- Arranged {
168- trace : TraceFilter :: make_from ( self . trace . clone ( ) , logic1) ,
169- stream : self . stream . map ( move |bw| BatchFilter :: make_from ( bw, logic2. clone ( ) ) ) ,
170- }
171- }
172133 /// Flattens the stream into a `Collection`.
173134 ///
174135 /// The underlying `Stream<G, BatchWrapper<T::Batch>>` is a much more efficient way to access the data,
0 commit comments