@@ -4,7 +4,7 @@ use crate::progress::{Timestamp, PathSummary};
44use crate :: progress:: frontier:: Antichain ;
55use crate :: order:: Product ;
66
7- use crate :: dataflow:: channels:: pushers:: Tee ;
7+ use crate :: dataflow:: channels:: pushers:: TeeCore ;
88use crate :: dataflow:: channels:: pact:: Pipeline ;
99use crate :: dataflow:: { CoreStream , Scope , Stream } ;
1010use crate :: dataflow:: scopes:: child:: Iterative ;
@@ -35,7 +35,7 @@ pub trait Feedback<G: Scope> {
3535 /// .connect_loop(handle);
3636 /// });
3737 /// ```
38- fn feedback < D : Data > ( & mut self , summary : <G :: Timestamp as Timestamp >:: Summary ) -> ( Handle < G , Vec < D > > , Stream < G , D > ) ;
38+ fn feedback < D : Data > ( & mut self , summary : <G :: Timestamp as Timestamp >:: Summary ) -> ( Handle < G , D > , Stream < G , D > ) ;
3939
4040 /// Creates a `CoreStream` and a `Handle` to later bind the source of that `Stream`.
4141 ///
@@ -58,7 +58,7 @@ pub trait Feedback<G: Scope> {
5858 /// .connect_loop(handle);
5959 /// });
6060 /// ```
61- fn feedback_core < D : Container > ( & mut self , summary : <G :: Timestamp as Timestamp >:: Summary ) -> ( Handle < G , D > , CoreStream < G , D > ) ;
61+ fn feedback_core < D : Container > ( & mut self , summary : <G :: Timestamp as Timestamp >:: Summary ) -> ( HandleCore < G , D > , CoreStream < G , D > ) ;
6262}
6363
6464/// Creates a `Stream` and a `Handle` to later bind the source of that `Stream`.
@@ -86,25 +86,25 @@ pub trait LoopVariable<'a, G: Scope, T: Timestamp> {
8686 /// });
8787 /// });
8888 /// ```
89- fn loop_variable < D : Container > ( & mut self , summary : T :: Summary ) -> ( Handle < Iterative < ' a , G , T > , D > , CoreStream < Iterative < ' a , G , T > , D > ) ;
89+ fn loop_variable < D : Container > ( & mut self , summary : T :: Summary ) -> ( HandleCore < Iterative < ' a , G , T > , D > , CoreStream < Iterative < ' a , G , T > , D > ) ;
9090}
9191
9292impl < G : Scope > Feedback < G > for G {
93- fn feedback < D : Data > ( & mut self , summary : <G :: Timestamp as Timestamp >:: Summary ) -> ( Handle < G , Vec < D > > , Stream < G , D > ) {
93+ fn feedback < D : Data > ( & mut self , summary : <G :: Timestamp as Timestamp >:: Summary ) -> ( Handle < G , D > , Stream < G , D > ) {
9494 self . feedback_core ( summary)
9595 }
9696
97- fn feedback_core < D : Container > ( & mut self , summary : <G :: Timestamp as Timestamp >:: Summary ) -> ( Handle < G , D > , CoreStream < G , D > ) {
97+ fn feedback_core < D : Container > ( & mut self , summary : <G :: Timestamp as Timestamp >:: Summary ) -> ( HandleCore < G , D > , CoreStream < G , D > ) {
9898
9999 let mut builder = OperatorBuilder :: new ( "Feedback" . to_owned ( ) , self . clone ( ) ) ;
100100 let ( output, stream) = builder. new_output ( ) ;
101101
102- ( Handle { builder, summary, output } , stream)
102+ ( HandleCore { builder, summary, output } , stream)
103103 }
104104}
105105
106106impl < ' a , G : Scope , T : Timestamp > LoopVariable < ' a , G , T > for Iterative < ' a , G , T > {
107- fn loop_variable < D : Container > ( & mut self , summary : T :: Summary ) -> ( Handle < Iterative < ' a , G , T > , D > , CoreStream < Iterative < ' a , G , T > , D > ) {
107+ fn loop_variable < D : Container > ( & mut self , summary : T :: Summary ) -> ( HandleCore < Iterative < ' a , G , T > , D > , CoreStream < Iterative < ' a , G , T > , D > ) {
108108 self . feedback_core ( Product :: new ( Default :: default ( ) , summary) )
109109 }
110110}
@@ -128,11 +128,11 @@ pub trait ConnectLoop<G: Scope, D: Container> {
128128 /// .connect_loop(handle);
129129 /// });
130130 /// ```
131- fn connect_loop ( & self , _: Handle < G , D > ) ;
131+ fn connect_loop ( & self , _: HandleCore < G , D > ) ;
132132}
133133
134134impl < G : Scope , D : Container > ConnectLoop < G , D > for CoreStream < G , D > {
135- fn connect_loop ( & self , helper : Handle < G , D > ) {
135+ fn connect_loop ( & self , helper : HandleCore < G , D > ) {
136136
137137 let mut builder = helper. builder ;
138138 let summary = helper. summary ;
@@ -158,8 +158,11 @@ impl<G: Scope, D: Container> ConnectLoop<G, D> for CoreStream<G, D> {
158158
159159/// A handle used to bind the source of a loop variable.
160160#[ derive( Debug ) ]
161- pub struct Handle < G : Scope , D : Container > {
161+ pub struct HandleCore < G : Scope , D : Container > {
162162 builder : OperatorBuilder < G > ,
163163 summary : <G :: Timestamp as Timestamp >:: Summary ,
164- output : OutputWrapper < G :: Timestamp , D , Tee < G :: Timestamp , D > > ,
164+ output : OutputWrapper < G :: Timestamp , D , TeeCore < G :: Timestamp , D > > ,
165165}
166+
167+ /// A `HandleCore` specialized for using `Vec` as container
168+ pub type Handle < G , D > = HandleCore < G , Vec < D > > ;
0 commit comments