pub trait FsmAction<F: FsmBackend, E, State> {
fn action<'a, Q: FsmEventQueue<F>>(
event: &E,
context: &mut EventContext<'a, F, Q>,
state: &mut State
);
fn should_trigger_state_actions() -> bool;
fn execute_action<'a, 'b, 'c, 'd, Q: FsmEventQueue<F>, I, T>(
context: &'d mut DispatchContext<'a, 'b, 'c, F, Q, I, T>,
event: &E,
region: FsmRegionId
)
where
<F as FsmBackend>::States: AsMut<State>,
I: Inspect,
T: FsmTimers<F>,
{ ... }
fn execute_transition<'a, 'b, 'c, 'd, Q: FsmEventQueue<F>, I, T>(
context: &'d mut DispatchContext<'a, 'b, 'c, F, Q, I, T>,
event: &E,
region: FsmRegionId,
inspect_event_ctx: &mut I
)
where
I: Inspect,
State: FsmState<F>,
<F as FsmBackend>::States: AsMut<State>,
Self: Sized,
T: FsmTimers<F>,
{ ... }
}
Expand description
An internal or self action can only mutate itself.
Required methods
fn action<'a, Q: FsmEventQueue<F>>(
event: &E,
context: &mut EventContext<'a, F, Q>,
state: &mut State
)
fn action<'a, Q: FsmEventQueue<F>>(
event: &E,
context: &mut EventContext<'a, F, Q>,
state: &mut State
)
This action is executed as part of an internal or self transition.
Is this a self transition which should trigger the state’s exit and entry actions?