pub fn tick_transitions(&mut self) -> Vec<SPPath> {
        let temp_transition_map =
            SPTicker::create_transition_map(&self.transitions, &self.specs);

        let mut fired = Vec::new();
        let mut counter = 0;
        loop {
            let f = SPTicker::tick(
                &mut self.state,
                &temp_transition_map,
                &self.predicates,
            );
            self.state.take_transition();

            if f.is_empty() {
                // println!("f empty, fired is {:?}", fired);
                break;
            } else {
                counter += 1;
                if counter > 10 {
                    // there is probably a self loop in the model
                    let t_names = f
                        .iter()
                        .map(|p| p.to_string())
                        .collect::<Vec<_>>()
                        .join(",");
                    log_error!("self loop with transitions {}", t_names);
                    // panic!("self loop with transitions {}", t_names);
                    break;
                }
                println!("runner one more time! adding new fired {:?}", f);
                fired.extend(f);
            }
        }
        fired
    }
/// This function will execute the enabled transition and update the state.
/// The functions returns the updated state and the fired transitions
///
This function will execute the enabled transition and update the state.
The functions returns the updated state and the fired transitions
This function will execute the enabled transition and update the state . The functions returns the updated state and the fired transitions
pub fn tick_transitions(&mut self) -> Vec<SPPath> {
        let temp_transition_map =
            SPTicker::create_transition_map(&self.transitions, &self.specs);
        let mut fired = Vec::new();
        let mut counter = 0;
        loop {
            let f = SPTicker::tick(
                &mut self.state,
                &temp_transition_map,
                &self.predicates,
            );
            self.state.take_transition();
            if f.is_empty() {
                // println!("f empty, fired is {:?}", fired);
                break;
            } else {
                counter += 1;
                if counter > 10 {
                    // there is probably a self loop in the model
                    let t_names = f
                        .iter()
                        .map(|p| p.to_string())
                        .collect::<Vec<_>>()
                        .join(",");
                    log_error!("self loop with transitions {}", t_names);
                    // panic!("self loop with transitions {}", t_names);
                    break;
                }
                println!("runner one more time! adding new fired {:?}", f);
                fired.extend(f);
            }
        }
        fired
    }
pub fn tick_transitions ( & mut self ) -> Vec < SPPath > { let temp_transition_map = SPTicker :: create_transition_map ( & self . transitions , & self . specs ) ; let mut fired = Vec :: new ( ) ; let mut counter = 0 ; loop { let f = SPTicker :: tick ( & mut self . state , & temp_transition_map , & self . predicates , ) ; self . state . take_transition ( ) ; if f . is_empty ( ) { // println!("f empty, fired is {:?}", fired); break ; } else { counter += 1 ; if counter > 10 { // there is probably a self loop in the model let t_names = f . iter ( ) . map ( | p | p . to_string ( ) ) . collect :: < Vec < _ > > ( ) . join ( " " ) ; log_error ! ( " " t_names ) ; // panic!("self loop with transitions {}", t_names); break ; } println ! ( " " f ) ; fired . extend ( f ) ; } } fired }
This function will execute the enabled transition and update the state.
This function will execute the enabled transition and update the state .
&mut self