pub fn build(self, previous: &ControlSet<T>) -> ControlSet<T> {
        assert_eq!(0, self.count.unwrap_or(0));
        let mut frontier = Antichain::new();
        for f in self.frontier {frontier.insert(f);}

        let mut map = previous.map().clone();

        for inst in self.instructions {
            match inst {
                ControlInst::Map(ref new_map) => {
                    assert_eq!(1 << BIN_SHIFT, new_map.len(), "provided map does not have correct len: {} != {}", 1 << BIN_SHIFT, new_map.len());
                    map.clear();
                    map.extend( new_map.iter());
                },
                ControlInst::Move(BinId(bin), target) => {
                    assert!(bin < (1 << BIN_SHIFT));
                    map[bin] = target
                },
                ControlInst::None => {},
            }
        }

        ControlSet {
            sequence: self.sequence.unwrap(),
            frontier,
            map,
        }
    }
/// Build a `ControlSet` by consuming this builder.
Build a `ControlSet` by consuming this builder.
Build a ` ControlSet ` by consuming this builder .
pub fn build(self, previous: &ControlSet<T>) -> ControlSet<T> {
        assert_eq!(0, self.count.unwrap_or(0));
        let mut frontier = Antichain::new();
        for f in self.frontier {frontier.insert(f);}
        let mut map = previous.map().clone();
        for inst in self.instructions {
            match inst {
                ControlInst::Map(ref new_map) => {
                    assert_eq!(1 << BIN_SHIFT, new_map.len(), "provided map does not have correct len: {} != {}", 1 << BIN_SHIFT, new_map.len());
                    map.clear();
                    map.extend( new_map.iter());
                },
                ControlInst::Move(BinId(bin), target) => {
                    assert!(bin < (1 << BIN_SHIFT));
                    map[bin] = target
                },
                ControlInst::None => {},
            }
        }
        ControlSet {
            sequence: self.sequence.unwrap(),
            frontier,
            map,
        }
    }
pub fn build ( self , previous : & ControlSet < T > ) -> ControlSet < T > { assert_eq ! ( 0 self count unwrap_or ( 0 ) ) ; let mut frontier = Antichain :: new ( ) ; for f in self . frontier { frontier . insert ( f ) ; } let mut map = previous . map ( ) . clone ( ) ; for inst in self . instructions { match inst { ControlInst :: Map ( ref new_map ) => { assert_eq ! ( 1 BIN_SHIFT new_map len ( ) " " 1 BIN_SHIFT new_map len ( ) ) ; map . clear ( ) ; map . extend ( new_map . iter ( ) ) ; } , ControlInst :: Move ( BinId ( bin ) , target ) => { assert ! ( bin ( 1 BIN_SHIFT ) ) ; map [ bin ] = target } , ControlInst :: None => { } , } } ControlSet { sequence : self . sequence . unwrap ( ) , frontier , map , } }
Build a `ControlSet` by consuming this builder.
Build a ` ControlSet ` by consuming this builder .
self
previous
&ControlSet<T>
self
previous
&ControlSet<T>