pub trait LifecycleCallbacks {
// Provided methods
fn on_configure(&mut self) -> TransitionResult { ... }
fn on_activate(&mut self) -> TransitionResult { ... }
fn on_deactivate(&mut self) -> TransitionResult { ... }
fn on_cleanup(&mut self) -> TransitionResult { ... }
fn on_shutdown(&mut self) -> TransitionResult { ... }
fn on_error(&mut self) -> TransitionResult { ... }
}Expand description
Safe lifecycle-callback surface, symmetric with the C++ nros::LifecycleNode
(rclcpp LifecycleNodeInterface). Implement the transitions you need; the
rest default to Success (on_error to Failure), matching rclcpp’s
non-pure-virtual defaults. Register the node with
Executor::register_lifecycle_node,
which binds the five REP-2002 services and wires each transition here — no
unsafe in user code.
§Example
struct MyNode { configured: bool }
impl LifecycleCallbacks for MyNode {
fn on_configure(&mut self) -> TransitionResult {
self.configured = true;
TransitionResult::Success
}
}
executor.register_lifecycle_node(&mut my_node)?;Unlike rclcpp’s on_*(const State& previous), the callbacks take no
previous argument: the FFI callback boundary (LifecycleCallbackFnCtx)
carries only the user context, and the LifecyclePollingNode fn-pointer
API is likewise state-less. Read the current state via
Executor::lifecycle_state_machine
.state() if a transition needs it.
Provided Methods§
Sourcefn on_configure(&mut self) -> TransitionResult
fn on_configure(&mut self) -> TransitionResult
Unconfigured -> Inactive. Default: Success.
Sourcefn on_activate(&mut self) -> TransitionResult
fn on_activate(&mut self) -> TransitionResult
Inactive -> Active. Default: Success.
Sourcefn on_deactivate(&mut self) -> TransitionResult
fn on_deactivate(&mut self) -> TransitionResult
Active -> Inactive. Default: Success.
Sourcefn on_cleanup(&mut self) -> TransitionResult
fn on_cleanup(&mut self) -> TransitionResult
Inactive -> Unconfigured. Default: Success.
Sourcefn on_shutdown(&mut self) -> TransitionResult
fn on_shutdown(&mut self) -> TransitionResult
any state -> Finalized. Default: Success.
Sourcefn on_error(&mut self) -> TransitionResult
fn on_error(&mut self) -> TransitionResult
ErrorProcessing -> Unconfigured. Default: Failure (matching rclcpp).
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".