pub struct LifecyclePollingNode { /* private fields */ }Expand description
Standalone lifecycle state machine for no_std environments.
Uses function pointers instead of boxed closures. Does not wrap a
NodeHandle — the user manages the node separately.
§Example
fn on_configure() -> TransitionResult {
// Initialize hardware...
TransitionResult::Success
}
let mut lifecycle = LifecyclePollingNode::new();
lifecycle.register_on_configure(on_configure);
lifecycle.configure()?;Implementations§
Source§impl LifecyclePollingNode
impl LifecyclePollingNode
Sourcepub const fn new() -> LifecyclePollingNode
pub const fn new() -> LifecyclePollingNode
Create a new standalone lifecycle state machine.
Starts in the Unconfigured state.
Sourcepub const fn state(&self) -> LifecycleState
pub const fn state(&self) -> LifecycleState
Get the current lifecycle state.
Sourcepub fn trigger_transition(
&mut self,
transition: LifecycleTransition,
) -> Result<LifecycleState, LifecycleError>
pub fn trigger_transition( &mut self, transition: LifecycleTransition, ) -> Result<LifecycleState, LifecycleError>
Trigger a lifecycle transition.
Sourcepub fn configure(&mut self) -> Result<LifecycleState, LifecycleError>
pub fn configure(&mut self) -> Result<LifecycleState, LifecycleError>
Convenience: configure (Unconfigured -> Inactive)
Sourcepub fn activate(&mut self) -> Result<LifecycleState, LifecycleError>
pub fn activate(&mut self) -> Result<LifecycleState, LifecycleError>
Convenience: activate (Inactive -> Active)
Sourcepub fn deactivate(&mut self) -> Result<LifecycleState, LifecycleError>
pub fn deactivate(&mut self) -> Result<LifecycleState, LifecycleError>
Convenience: deactivate (Active -> Inactive)
Sourcepub fn cleanup(&mut self) -> Result<LifecycleState, LifecycleError>
pub fn cleanup(&mut self) -> Result<LifecycleState, LifecycleError>
Convenience: cleanup (Inactive -> Unconfigured)
Sourcepub fn shutdown(&mut self) -> Result<LifecycleState, LifecycleError>
pub fn shutdown(&mut self) -> Result<LifecycleState, LifecycleError>
Convenience: shutdown from the current state.
Sourcepub fn bring_up(&mut self) -> Result<LifecycleState, LifecycleError>
pub fn bring_up(&mut self) -> Result<LifecycleState, LifecycleError>
Convenience: configure then activate (stops on failure).
Sourcepub fn register_on_configure(&mut self, cb: fn() -> TransitionResult)
pub fn register_on_configure(&mut self, cb: fn() -> TransitionResult)
Register a callback for the configure transition.
Sourcepub fn register_on_activate(&mut self, cb: fn() -> TransitionResult)
pub fn register_on_activate(&mut self, cb: fn() -> TransitionResult)
Register a callback for the activate transition.
Sourcepub fn register_on_deactivate(&mut self, cb: fn() -> TransitionResult)
pub fn register_on_deactivate(&mut self, cb: fn() -> TransitionResult)
Register a callback for the deactivate transition.
Sourcepub fn register_on_cleanup(&mut self, cb: fn() -> TransitionResult)
pub fn register_on_cleanup(&mut self, cb: fn() -> TransitionResult)
Register a callback for the cleanup transition.
Sourcepub fn register_on_shutdown(&mut self, cb: fn() -> TransitionResult)
pub fn register_on_shutdown(&mut self, cb: fn() -> TransitionResult)
Register a callback for the shutdown transition.
Sourcepub fn register_on_error(&mut self, cb: fn() -> TransitionResult)
pub fn register_on_error(&mut self, cb: fn() -> TransitionResult)
Register a callback for the error transition (error recovery).