pub fn execute_input<E, EM>(
        &mut self,
        state: &mut S,
        executor: &mut E,
        event_mgr: &mut EM,
        input: &I,
    ) -> Result<ExitKind, Error>
    where
        E: Executor<EM, I, S, Self> + HasObservers<I, OT, S>,
        OT: ObserversTuple<I, S>,
    {
        start_timer!(state);
        executor.observers_mut().pre_exec_all(state, input)?;
        mark_feature_time!(state, PerfFeature::PreExecObservers);

        start_timer!(state);
        let exit_kind = executor.run_target(self, state, event_mgr, input)?;
        mark_feature_time!(state, PerfFeature::TargetExecution);

        *state.executions_mut() += 1;

        start_timer!(state);
        executor.observers_mut().post_exec_all(state, input)?;
        mark_feature_time!(state, PerfFeature::PostExecObservers);

        Ok(exit_kind)
    }
/// Runs the input and triggers observers and feedback
Runs the input and triggers observers and feedback
Runs the input and triggers observers and feedback
pub fn execute_input<E, EM>(
        &mut self,
        state: &mut S,
        executor: &mut E,
        event_mgr: &mut EM,
        input: &I,
    ) -> Result<ExitKind, Error>
    where
        E: Executor<EM, I, S, Self> + HasObservers<I, OT, S>,
        OT: ObserversTuple<I, S>,
    {
        start_timer!(state);
        executor.observers_mut().pre_exec_all(state, input)?;
        mark_feature_time!(state, PerfFeature::PreExecObservers);
        start_timer!(state);
        let exit_kind = executor.run_target(self, state, event_mgr, input)?;
        mark_feature_time!(state, PerfFeature::TargetExecution);
        *state.executions_mut() += 1;
        start_timer!(state);
        executor.observers_mut().post_exec_all(state, input)?;
        mark_feature_time!(state, PerfFeature::PostExecObservers);
        Ok(exit_kind)
    }
pub fn execute_input < E , EM > ( & mut self , state : & mut S , executor : & mut E , event_mgr : & mut EM , input : & I , ) -> Result < ExitKind , Error > where E : Executor < EM , I , S , Self > + HasObservers < I , OT , S > , OT : ObserversTuple < I , S > , { start_timer ! ( state ) ; executor . observers_mut ( ) . pre_exec_all ( state , input ) ? ; mark_feature_time ! ( state PerfFeature PreExecObservers ) ; start_timer ! ( state ) ; let exit_kind = executor . run_target ( self , state , event_mgr , input ) ? ; mark_feature_time ! ( state PerfFeature TargetExecution ) ; * state . executions_mut ( ) += 1 ; start_timer ! ( state ) ; executor . observers_mut ( ) . post_exec_all ( state , input ) ? ; mark_feature_time ! ( state PerfFeature PostExecObservers ) ; Ok ( exit_kind ) }
Runs the input and triggers observers and feedback
Runs the input and triggers observers and feedback
&mut self
state
&mut S
executor
&mut E
event_mgr
&mut EM
input
&I
&mut self
state
&mut S
executor
&mut E
event_mgr
&mut EM
input
&I