pub trait FsmTransitionAction<F: FsmBackend, E, TStateFrom, TStateTo> {
    fn action<'a, Q: FsmEventQueue<F>>(
        event: &E,
        context: &mut EventContext<'a, F, Q>,
        from: &mut TStateFrom,
        to: &mut TStateTo
    ); 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,
        <F as FsmBackend>::States: FsmStateTransitionAsMut<TStateFrom, TStateTo>,
        <F as FsmBackend>::States: AsMut<TStateFrom>,
        <F as FsmBackend>::States: AsMut<TStateTo>,
        TStateFrom: FsmState<F>,
        TStateTo: FsmState<F>,
        Self: Sized,
        T: FsmTimers<F>
, { ... }
fn execute_on_sub_entry<'a, 'b, 'c, 'd, Q, I, T>(
        context: &'d mut DispatchContext<'a, 'b, 'c, F, Q, I, T>,
        _region: FsmRegionId,
        inspect_event_ctx: &mut I
    ) -> FsmDispatchResult
    where
        TStateTo: FsmBackend,
        Q: FsmEventQueue<F>,
        I: Inspect,
        <F as FsmBackend>::Events: From<<TStateTo as FsmBackend>::Events>,
        <F as FsmBackend>::States: AsMut<TStateTo>,
        TStateTo: DerefMut<Target = FsmBackendImpl<TStateTo>>,
        T: FsmTimers<F>,
        <F as FsmBackend>::Timers: From<<TStateTo as FsmBackend>::Timers>
, { ... } }
Expand description

A transition’s action that operates on both the exit and entry states.

Required methods

This action is executed after the first state’s exit event, and just before the second event’s entry action. It can mutate both states.

Provided methods

fn execute_on_sub_entry<'a, 'b, 'c, 'd, Q, I, T>(
    context: &'d mut DispatchContext<'a, 'b, 'c, F, Q, I, T>,
    _region: FsmRegionId,
    inspect_event_ctx: &mut I
) -> FsmDispatchResult where
    TStateTo: FsmBackend,
    Q: FsmEventQueue<F>,
    I: Inspect,
    <F as FsmBackend>::Events: From<<TStateTo as FsmBackend>::Events>,
    <F as FsmBackend>::States: AsMut<TStateTo>,
    TStateTo: DerefMut<Target = FsmBackendImpl<TStateTo>>,
    T: FsmTimers<F>,
    <F as FsmBackend>::Timers: From<<TStateTo as FsmBackend>::Timers>, 

Executed after the transition on the parent FSM (F) and triggers the first start() call if necessary. Subsequent dispatches are handled using the main dispatch table.

Implementors