1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//! # rosrustext_rosrs
//!
//! This crate provides ROS 2 lifecycle + parameters parity for `rclrs`.
//!
//! - Start here: API + parity guide (in-repo): `docs/API.md`
//! - Specs: `docs/spec/lifecycle.md`, `docs/spec/parameters.md`
//! - Parity tables: `docs/parity/*`
//!
//! ## Feature matrix
//! See README for `ros2`, `bond`, and docs-only `docsrs`.
//!
//! (Keep this page short; it’s a signpost, not a novel.)
//!
//! ## Builder quick start
//! Managed (lifecycle-gated):
//! ```rust,no_run
//! use rclrs::{Context, CreateBasicExecutor};
//! use rosrustext_rosrs::lifecycle::LifecycleNode;
//! use rosrustext_rosrs::lifecycle_msgs::msg::State;
//!
//! # fn main() -> rosrustext_rosrs::Result<()> {
//! let context = Context::default();
//! let executor = context.create_basic_executor();
//! let lifecycle = LifecycleNode::create(&executor, "demo")?;
//! let _pub = lifecycle.publisher::<State>("state").create()?;
//! # Ok(()) }
//! ```
//!
//! Raw (non-managed):
//! ```rust,no_run
//! use rclrs::{Context, CreateBasicExecutor};
//! use rosrustext_rosrs::NodeBuilderExt;
//! use rosrustext_rosrs::lifecycle_msgs::msg::State;
//!
//! # fn main() -> rosrustext_rosrs::Result<()> {
//! let context = Context::default();
//! let executor = context.create_basic_executor();
//! let node = executor.create_node("demo")?;
//! let _pub = node.publisher::<State>("state").create()?;
//! # Ok(()) }
//! ```
// Adapter error type
pub use ;
// Re-export core types that wrapper users will commonly need
pub use CoreError;
pub use ;
// Node builder extension APIs (raw rclrs resources)
pub use NodeBuilderExt;
pub use PublisherBuilder;
pub use SubscriptionBuilder;
pub use TimerBuilder;
// Message compatibility re-exports