Skip to content

Commit a3c6c40

Browse files
committed
Move create_node and create_node_builder back to the rclrs module
1 parent b7cedd9 commit a3c6c40

File tree

7 files changed

+59
-59
lines changed

7 files changed

+59
-59
lines changed

examples/message_demo/src/message_demo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ fn demonstrate_pubsub() -> Result<(), Error> {
132132
println!("================== Interoperability demo ==================");
133133
// Demonstrate interoperability between idiomatic and RMW-native message types
134134
let context = rclrs::Context::new(env::args())?;
135-
let mut node = context.create_node("message_demo")?;
135+
let mut node = rclrs::create_node(&context, "message_demo")?;
136136

137137
let idiomatic_publisher = node.create_publisher::<rclrs_example_msgs::msg::VariousTypes>(
138138
"topic",

examples/minimal_pub_sub/src/minimal_publisher.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use std::env;
44
fn main() -> Result<(), Error> {
55
let context = rclrs::Context::new(env::args())?;
66

7-
let node = context.create_node("minimal_publisher")?;
7+
let node = rclrs::create_node(&context, "minimal_publisher")?;
88

99
let publisher =
1010
node.create_publisher::<std_msgs::msg::String>("topic", rclrs::QOS_PROFILE_DEFAULT)?;

examples/minimal_pub_sub/src/minimal_subscriber.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use anyhow::{Error, Result};
55
fn main() -> Result<(), Error> {
66
let context = rclrs::Context::new(env::args())?;
77

8-
let mut node = context.create_node("minimal_subscriber")?;
8+
let mut node = rclrs::create_node(&context, "minimal_subscriber")?;
99

1010
let mut num_messages: usize = 0;
1111

rclrs/src/context.rs

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::rcl_bindings::*;
2-
use crate::{Node, NodeBuilder, RclrsError, ToResult};
2+
use crate::{RclrsError, ToResult};
33

44
use std::ffi::CString;
55
use std::os::raw::c_char;
@@ -105,47 +105,6 @@ impl Context {
105105
})
106106
}
107107

108-
/// Creates a new node in the empty namespace.
109-
///
110-
/// Convenience function equivalent to [`Node::new`][1].
111-
/// Please see that function's documentation.
112-
///
113-
/// [1]: crate::Node::new
114-
///
115-
/// # Example
116-
/// ```
117-
/// # use rclrs::{Context, RclrsError};
118-
/// let ctx = Context::new([])?;
119-
/// let node = ctx.create_node("my_node");
120-
/// assert!(node.is_ok());
121-
/// # Ok::<(), RclrsError>(())
122-
/// ```
123-
pub fn create_node(&self, node_name: &str) -> Result<Node, RclrsError> {
124-
Node::builder(self, node_name).build()
125-
}
126-
127-
/// Creates a [`NodeBuilder`][1].
128-
///
129-
/// Convenience function equivalent to [`NodeBuilder::new()`][2] and [`Node::builder()`][3].
130-
/// Please see that function's documentation.
131-
///
132-
/// [1]: crate::NodeBuilder
133-
/// [2]: crate::NodeBuilder::new
134-
/// [3]: crate::Node::builder
135-
///
136-
/// # Example
137-
/// ```
138-
/// # use rclrs::{Context, RclrsError};
139-
/// let context = Context::new([])?;
140-
/// let node_builder = context.create_node_builder("my_node");
141-
/// let node = node_builder.build()?;
142-
/// assert_eq!(node.name(), "my_node");
143-
/// # Ok::<(), RclrsError>(())
144-
/// ```
145-
pub fn create_node_builder(&self, node_name: &str) -> NodeBuilder {
146-
Node::builder(self, node_name)
147-
}
148-
149108
/// Checks if the context is still valid.
150109
///
151110
/// This will return `false` when a signal has caused the context to shut down (currently

rclrs/src/lib.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,44 @@ pub fn spin(node: &Node) -> Result<(), RclrsError> {
7575

7676
Ok(())
7777
}
78+
79+
/// Creates a new node in the empty namespace.
80+
///
81+
/// Convenience function equivalent to [`Node::new`][1].
82+
/// Please see that function's documentation.
83+
///
84+
/// [1]: crate::Node::new
85+
///
86+
/// # Example
87+
/// ```
88+
/// # use rclrs::{Context, RclrsError};
89+
/// let ctx = Context::new([])?;
90+
/// let node = rclrs::create_node(&ctx, "my_node");
91+
/// assert!(node.is_ok());
92+
/// # Ok::<(), RclrsError>(())
93+
/// ```
94+
pub fn create_node(context: &Context, node_name: &str) -> Result<Node, RclrsError> {
95+
Node::builder(context, node_name).build()
96+
}
97+
98+
/// Creates a [`NodeBuilder`][1].
99+
///
100+
/// Convenience function equivalent to [`NodeBuilder::new()`][2] and [`Node::builder()`][3].
101+
/// Please see that function's documentation.
102+
///
103+
/// [1]: crate::NodeBuilder
104+
/// [2]: crate::NodeBuilder::new
105+
/// [3]: crate::Node::builder
106+
///
107+
/// # Example
108+
/// ```
109+
/// # use rclrs::{Context, RclrsError};
110+
/// let context = Context::new([])?;
111+
/// let node_builder = rclrs::create_node_builder(&context, "my_node");
112+
/// let node = node_builder.build()?;
113+
/// assert_eq!(node.name(), "my_node");
114+
/// # Ok::<(), RclrsError>(())
115+
/// ```
116+
pub fn create_node_builder(context: &Context, node_name: &str) -> NodeBuilder {
117+
Node::builder(context, node_name)
118+
}

rclrs/src/node.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,12 @@ impl Node {
106106
/// # use rclrs::{Context, RclrsError};
107107
/// // Without remapping
108108
/// let context = Context::new([])?;
109-
/// let node = context.create_node("my_node")?;
109+
/// let node = rclrs::create_node(&context, "my_node")?;
110110
/// assert_eq!(node.name(), "my_node");
111111
/// // With remapping
112112
/// let remapping = ["--ros-args", "-r", "__node:=your_node"].map(String::from);
113113
/// let context_r = Context::new(remapping)?;
114-
/// let node_r = context_r.create_node("my_node")?;
114+
/// let node_r = rclrs::create_node(&context_r, "my_node")?;
115115
/// assert_eq!(node_r.name(), "your_node");
116116
/// # Ok::<(), RclrsError>(())
117117
/// ```
@@ -129,15 +129,15 @@ impl Node {
129129
/// # use rclrs::{Context, RclrsError};
130130
/// // Without remapping
131131
/// let context = Context::new([])?;
132-
/// let node = context
133-
/// .create_node_builder("my_node")
132+
/// let node =
133+
/// rclrs::create_node_builder(&context, "my_node")
134134
/// .namespace("/my/namespace")
135135
/// .build()?;
136136
/// assert_eq!(node.namespace(), "/my/namespace");
137137
/// // With remapping
138138
/// let remapping = ["--ros-args", "-r", "__ns:=/your_namespace"].map(String::from);
139139
/// let context_r = Context::new(remapping)?;
140-
/// let node_r = context_r.create_node("my_node")?;
140+
/// let node_r = rclrs::create_node(&context_r, "my_node")?;
141141
/// assert_eq!(node_r.namespace(), "/your_namespace");
142142
/// # Ok::<(), RclrsError>(())
143143
/// ```
@@ -154,8 +154,8 @@ impl Node {
154154
/// ```
155155
/// # use rclrs::{Context, RclrsError};
156156
/// let context = Context::new([])?;
157-
/// let node = context
158-
/// .create_node_builder("my_node")
157+
/// let node =
158+
/// rclrs::create_node_builder(&context, "my_node")
159159
/// .namespace("/my/namespace")
160160
/// .build()?;
161161
/// assert_eq!(node.fully_qualified_name(), "/my/namespace/my_node");
@@ -240,7 +240,7 @@ impl Node {
240240
/// // Set default ROS domain ID to 10 here
241241
/// std::env::set_var("ROS_DOMAIN_ID", "10");
242242
/// let context = Context::new([])?;
243-
/// let node = context.create_node("domain_id_node")?;
243+
/// let node = rclrs::create_node(&context, "domain_id_node")?;
244244
/// let domain_id = node.domain_id();
245245
/// assert_eq!(domain_id, 10);
246246
/// # Ok::<(), RclrsError>(())

rclrs/src/node/builder.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,14 @@ impl NodeBuilder {
159159
/// .map(String::from);
160160
/// let context = Context::new(context_args)?;
161161
/// // Ignore the global arguments:
162-
/// let node_without_global_args = context
163-
/// .create_node_builder("my_node")
162+
/// let node_without_global_args =
163+
/// rclrs::create_node_builder(&context, "my_node")
164164
/// .use_global_arguments(false)
165165
/// .build()?;
166166
/// assert_eq!(node_without_global_args.name(), "my_node");
167167
/// // Do not ignore the global arguments:
168-
/// let node_with_global_args = context
169-
/// .create_node_builder("my_other_node")
168+
/// let node_with_global_args =
169+
/// rclrs::create_node_builder(&context, "my_other_node")
170170
/// .use_global_arguments(true)
171171
/// .build()?;
172172
/// assert_eq!(node_with_global_args.name(), "your_node");
@@ -197,8 +197,8 @@ impl NodeBuilder {
197197
/// // But the node arguments will change it to "node_args_node":
198198
/// let node_args = ["--ros-args", "--remap", "my_node:__node:=node_args_node"]
199199
/// .map(String::from);
200-
/// let node = context
201-
/// .create_node_builder("my_node")
200+
/// let node =
201+
/// rclrs::create_node_builder(&context, "my_node")
202202
/// .arguments(node_args)
203203
/// .build()?;
204204
/// assert_eq!(node.name(), "node_args_node");

0 commit comments

Comments
 (0)