/// Advances domain traces up to the specified frontier minus
/// their configured slack.
Advances domain traces up to the specified frontier minus
their configured slack.
Advances domain traces up to the specified frontier minus their configured slack .
pub fn advance_traces(&mut self, frontier: &[T]) -> Result<(), Error> {
        let last_advance = AntichainRef::new(&self.last_advance);
        if frontier.iter().any(|t| last_advance.less_than(t)) {
            trace!("Advancing traces to {:?}", frontier);
            self.last_advance = frontier.to_vec();
            let frontier = AntichainRef::new(frontier);
            for (aid, config) in self.attributes.iter() {
                if let Some(ref trace_slack) = config.trace_slack {
                    let slacking_frontier = frontier
                        .iter()
                        .map(|t| t.rewind(trace_slack.clone().into()))
                        .collect::<Vec<T>>();;
                    if let Some(trace) = self.forward_count.get_mut(aid) {
                        trace.advance_by(&slacking_frontier);
                        trace.distinguish_since(&slacking_frontier);
                    }
                    if let Some(trace) = self.forward_propose.get_mut(aid) {
                        trace.advance_by(&slacking_frontier);
                        trace.distinguish_since(&slacking_frontier);
                    }
                    if let Some(trace) = self.forward_validate.get_mut(aid) {
                        trace.advance_by(&slacking_frontier);
                        trace.distinguish_since(&slacking_frontier);
                    }
                    if let Some(trace) = self.reverse_count.get_mut(aid) {
                        trace.advance_by(&slacking_frontier);
                        trace.distinguish_since(&slacking_frontier);
                    }
                    if let Some(trace) = self.reverse_propose.get_mut(aid) {
                        trace.advance_by(&slacking_frontier);
                        trace.distinguish_since(&slacking_frontier);
                    }
                    if let Some(trace) = self.reverse_validate.get_mut(aid) {
                        trace.advance_by(&slacking_frontier);
                        trace.distinguish_since(&slacking_frontier);
                    }
                }
            }
        }
        Ok(())
    }
pub fn advance_traces ( & mut self , frontier : & [ T ] ) -> Result < ( ) , Error > { let last_advance = AntichainRef :: new ( & self . last_advance ) ; if frontier . iter ( ) . any ( | t | last_advance . less_than ( t ) ) { trace ! ( " " frontier ) ; self . last_advance = frontier . to_vec ( ) ; let frontier = AntichainRef :: new ( frontier ) ; for ( aid , config ) in self . attributes . iter ( ) { if let Some ( ref trace_slack ) = config . trace_slack { let slacking_frontier = frontier . iter ( ) . map ( | t | t . rewind ( trace_slack . clone ( ) . into ( ) ) ) . collect :: < Vec < T > > ( ) ; ; if let Some ( trace ) = self . forward_count . get_mut ( aid ) { trace . advance_by ( & slacking_frontier ) ; trace . distinguish_since ( & slacking_frontier ) ; } if let Some ( trace ) = self . forward_propose . get_mut ( aid ) { trace . advance_by ( & slacking_frontier ) ; trace . distinguish_since ( & slacking_frontier ) ; } if let Some ( trace ) = self . forward_validate . get_mut ( aid ) { trace . advance_by ( & slacking_frontier ) ; trace . distinguish_since ( & slacking_frontier ) ; } if let Some ( trace ) = self . reverse_count . get_mut ( aid ) { trace . advance_by ( & slacking_frontier ) ; trace . distinguish_since ( & slacking_frontier ) ; } if let Some ( trace ) = self . reverse_propose . get_mut ( aid ) { trace . advance_by ( & slacking_frontier ) ; trace . distinguish_since ( & slacking_frontier ) ; } if let Some ( trace ) = self . reverse_validate . get_mut ( aid ) { trace . advance_by ( & slacking_frontier ) ; trace . distinguish_since ( & slacking_frontier ) ; } } } } Ok ( ( ) ) }
Advances domain traces up to the specified frontier minus
their configured slack.
Advances domain traces up to the specified frontier minus their configured slack .
&mut self
frontier
&[T]