pub trait FsmTimer<F, S> where
F: FsmBackend,
Self: Default, {
fn setup(
ctx: &mut <F as FsmBackend>::Context,
settings: &mut TimerFsmSettings
);
fn trigger(
ctx: &<F as FsmBackend>::Context,
state: &S
) -> Option<<F as FsmBackend>::Events>;
fn get_instance(&self) -> &Option<TimerInstance<F>>;
fn get_instance_mut(&mut self) -> &mut Option<TimerInstance<F>>;
fn execute_on_enter<I: Inspect, T: FsmTimers<F>>(
&mut self,
id: F::Timers,
ctx: &mut <F as FsmBackend>::Context,
inspect: &mut I,
timers: &mut T
) { ... }
fn execute_on_exit<I: Inspect, T: FsmTimers<F>>(
&mut self,
id: F::Timers,
inspect: &mut I,
timers: &mut T
) { ... }
fn execute_trigger<'a, 'b, 'c, 'd, Q, I, T>(
id: F::Timers,
context: &'d mut DispatchContext<'a, 'b, 'c, F, Q, I, T>,
inspect: &mut I
)
where
Q: FsmEventQueue<F>,
I: Inspect,
<F as FsmBackend>::States: AsRef<S>,
<F as FsmBackend>::States: AsRef<Self>,
T: FsmTimers<F>,
{ ... }
}