@@ -79,7 +79,7 @@ use crate::progress::Timestamp;
7979use crate :: progress:: { Source , Target } ;
8080use crate :: progress:: ChangeBatch ;
8181use crate :: progress:: { Location , Port } ;
82-
82+ use crate :: progress :: operate :: { Connectivity , PortConnectivity } ;
8383use crate :: progress:: frontier:: { Antichain , MutableAntichain } ;
8484use crate :: progress:: timestamp:: PathSummary ;
8585
@@ -132,7 +132,7 @@ pub struct Builder<T: Timestamp> {
132132 /// Indexed by operator index, then input port, then output port. This is the
133133 /// same format returned by `get_internal_summary`, as if we simply appended
134134 /// all of the summaries for the hosted nodes.
135- pub nodes : Vec < Vec < Vec < Antichain < T :: Summary > > > > ,
135+ pub nodes : Vec < Connectivity < T :: Summary > > ,
136136 /// Direct connections from sources to targets.
137137 ///
138138 /// Edges do not affect timestamps, so we only need to know the connectivity.
@@ -156,7 +156,7 @@ impl<T: Timestamp> Builder<T> {
156156 /// Add links internal to operators.
157157 ///
158158 /// This method overwrites any existing summary, instead of anything more sophisticated.
159- pub fn add_node ( & mut self , index : usize , inputs : usize , outputs : usize , summary : Vec < Vec < Antichain < T :: Summary > > > ) {
159+ pub fn add_node ( & mut self , index : usize , inputs : usize , outputs : usize , summary : Connectivity < T :: Summary > ) {
160160
161161 // Assert that all summaries exist.
162162 debug_assert_eq ! ( inputs, summary. len( ) ) ;
@@ -195,7 +195,7 @@ impl<T: Timestamp> Builder<T> {
195195 /// default summaries (a serious liveness issue).
196196 ///
197197 /// The optional logger information is baked into the resulting tracker.
198- pub fn build ( self , logger : Option < logging:: TrackerLogger < T > > ) -> ( Tracker < T > , Vec < Vec < Antichain < T :: Summary > > > ) {
198+ pub fn build ( self , logger : Option < logging:: TrackerLogger < T > > ) -> ( Tracker < T > , Connectivity < T :: Summary > ) {
199199
200200 if !self . is_acyclic ( ) {
201201 println ! ( "Cycle detected without timestamp increment" ) ;
@@ -361,7 +361,7 @@ pub struct Tracker<T:Timestamp> {
361361 /// Indexed by operator index, then input port, then output port. This is the
362362 /// same format returned by `get_internal_summary`, as if we simply appended
363363 /// all of the summaries for the hosted nodes.
364- nodes : Vec < Vec < Vec < Antichain < T :: Summary > > > > ,
364+ nodes : Vec < Connectivity < T :: Summary > > ,
365365 /// Direct connections from sources to targets.
366366 ///
367367 /// Edges do not affect timestamps, so we only need to know the connectivity.
@@ -433,7 +433,7 @@ pub struct PortInformation<T: Timestamp> {
433433 /// Current implications of active pointstamps across the dataflow.
434434 pub implications : MutableAntichain < T > ,
435435 /// Path summaries to each of the scope outputs.
436- pub output_summaries : Vec < Antichain < T :: Summary > > ,
436+ pub output_summaries : PortConnectivity < T :: Summary > ,
437437}
438438
439439impl < T : Timestamp > PortInformation < T > {
@@ -503,7 +503,7 @@ impl<T:Timestamp> Tracker<T> {
503503 /// output port.
504504 ///
505505 /// If the optional logger is provided, it will be used to log various tracker events.
506- pub fn allocate_from ( builder : Builder < T > , logger : Option < logging:: TrackerLogger < T > > ) -> ( Self , Vec < Vec < Antichain < T :: Summary > > > ) {
506+ pub fn allocate_from ( builder : Builder < T > , logger : Option < logging:: TrackerLogger < T > > ) -> ( Self , Connectivity < T :: Summary > ) {
507507
508508 // Allocate buffer space for each input and input port.
509509 let mut per_operator =
@@ -732,9 +732,9 @@ impl<T:Timestamp> Tracker<T> {
732732/// Graph locations may be missing from the output, in which case they have no
733733/// paths to scope outputs.
734734fn summarize_outputs < T : Timestamp > (
735- nodes : & [ Vec < Vec < Antichain < T :: Summary > > > ] ,
735+ nodes : & [ Connectivity < T :: Summary > ] ,
736736 edges : & [ Vec < Vec < Target > > ] ,
737- ) -> HashMap < Location , Vec < Antichain < T :: Summary > > >
737+ ) -> HashMap < Location , PortConnectivity < T :: Summary > >
738738{
739739 // A reverse edge map, to allow us to walk back up the dataflow graph.
740740 let mut reverse = HashMap :: new ( ) ;
@@ -749,7 +749,7 @@ fn summarize_outputs<T: Timestamp>(
749749 }
750750 }
751751
752- let mut results: HashMap < Location , Vec < Antichain < T :: Summary > > > = HashMap :: new ( ) ;
752+ let mut results: HashMap < Location , PortConnectivity < T :: Summary > > = HashMap :: new ( ) ;
753753 let mut worklist = VecDeque :: < ( Location , usize , T :: Summary ) > :: new ( ) ;
754754
755755 let outputs =
0 commit comments