Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions rclrs/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -159,17 +159,17 @@ where
/// signatures and which returns a `()` (a.k.a. nothing).
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::test_msgs::srv::{Empty, Empty_Request, Empty_Response};
/// # use crate::rclrs::vendor::test_msgs;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit confused about the leading crate:: here since I thought doctests give a compilation error when you do use crate::. But I guess if the tests are passing then 🤷

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we even need crate::. Locally, doctests seem to be passing with out it

/// # let node = Context::default()
/// # .create_basic_executor()
/// # .create_node("test_node")?;
///
/// async fn print_hello(_response: Empty_Response) {
/// async fn print_hello(_response: test_msgs::srv::Empty_Response) {
/// print!("Hello!");
/// }
///
/// let client = node.create_client::<Empty>("my_service")?;
/// let request = Empty_Request::default();
/// let client = node.create_client::<test_msgs::srv::Empty>("my_service")?;
/// let request = test_msgs::srv::Empty_Request::default();
/// let promise = client.call_then_async(&request, print_hello)?;
/// # Ok::<(), RclrsError>(())
/// ```
Expand All @@ -187,21 +187,21 @@ where
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::test_msgs::srv::{Empty, Empty_Request, Empty_Response};
/// # use crate::rclrs::vendor::test_msgs;
/// # use std::future::Future;
/// # let node = Context::default()
/// # .create_basic_executor()
/// # .create_node("test_node")?;
///
/// fn print_greeting(_response: Empty_Response) -> impl Future<Output=()> {
/// fn print_greeting(_response: test_msgs::srv::Empty_Response) -> impl Future<Output=()> {
/// let greeting = "Hello!";
/// async move {
/// print!("Hello!");
/// }
/// }
///
/// let client = node.create_client::<Empty>("my_service")?;
/// let request = Empty_Request::default();
/// let client = node.create_client::<test_msgs::srv::Empty>("my_service")?;
/// let request = test_msgs::srv::Empty_Request::default();
/// let promise = client.call_then_async(
/// &request,
/// print_greeting)?;
Expand All @@ -216,17 +216,17 @@ where
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::test_msgs::srv::{Empty, Empty_Request, Empty_Response};
/// # use crate::rclrs::vendor::test_msgs;
/// # let node = Context::default()
/// # .create_basic_executor()
/// # .create_node("test_node")?;
///
/// let greeting = "Hello!";
/// let client = node.create_client::<Empty>("my_service")?;
/// let request = Empty_Request::default();
/// let client = node.create_client::<test_msgs::srv::Empty>("my_service")?;
/// let request = test_msgs::srv::Empty_Request::default();
/// let promise = client.call_then_async(
/// &request,
/// move |response: Empty_Response| {
/// move |response: test_msgs::srv::Empty_Response| {
/// async move {
/// print!("{greeting}");
/// }
Expand Down Expand Up @@ -568,12 +568,12 @@ unsafe impl Send for rcl_client_t {}
mod tests {
use super::*;
use crate::test_helpers::*;
use crate::vendor::test_msgs::srv;
use crate::vendor::test_msgs;

#[test]
fn traits() {
assert_send::<Client<srv::Arrays>>();
assert_sync::<Client<srv::Arrays>>();
assert_send::<Client<test_msgs::srv::Arrays>>();
assert_sync::<Client<test_msgs::srv::Arrays>>();
}

#[test]
Expand All @@ -582,7 +582,7 @@ mod tests {
let graph = construct_test_graph(namespace)?;
let _node_2_empty_client = graph
.node2
.create_client::<srv::Empty>("graph_test_topic_4")?;
.create_client::<test_msgs::srv::Empty>("graph_test_topic_4")?;

std::thread::sleep(std::time::Duration::from_millis(200));

Expand Down
11 changes: 5 additions & 6 deletions rclrs/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
//!
//! ```no_run
//! use rclrs::*;
//! use crate::rclrs::vendor::example_interfaces;
//! # use crate::rclrs::vendor::example_interfaces;
//!
//! let context = Context::default_from_env()?;
//! let mut executor = context.create_basic_executor();
Expand All @@ -59,8 +59,8 @@
//! # let context = Context::default_from_env()?;
//! # let mut executor = context.create_basic_executor();
//! # let node = executor.create_node("example_node")?;
//! # use rclrs::vendor::example_interfaces;
//!
//! # use crate::rclrs::vendor::example_interfaces;
//! #
//! // This worker will manage the data for us.
//! // The worker's data is called its payload.
//! let worker = node.create_worker::<Option<String>>(None);
Expand Down Expand Up @@ -99,8 +99,7 @@
//! The following is a simple example of using a mandatory parameter:
//! ```no_run
//! use rclrs::*;
//! use rclrs::vendor::example_interfaces;
//!
//! # use crate::rclrs::vendor::example_interfaces;
//! use std::sync::Arc;
//!
//! let mut executor = Context::default_from_env()?.create_basic_executor();
Expand Down Expand Up @@ -130,7 +129,7 @@
//!
//! ```no_run
//! use rclrs::*;
//! use rclrs::vendor::example_interfaces;
//! # use crate::rclrs::vendor::example_interfaces;
//! use std::time::Duration;
//!
//! let mut executor = Context::default_from_env()?.create_basic_executor();
Expand Down
54 changes: 26 additions & 28 deletions rclrs/src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ impl NodeState {
/// In some cases the payload type can be inferred by Rust:
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces;
/// # use crate::rclrs::vendor::example_interfaces;
/// let executor = Context::default().create_basic_executor();
/// let node = executor.create_node("my_node").unwrap();
///
Expand All @@ -270,7 +270,7 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// let worker = node.create_worker::<String>(String::new());
Expand All @@ -279,7 +279,7 @@ impl NodeState {
/// The data given to the worker can be any custom data type:
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
///
Expand Down Expand Up @@ -315,7 +315,7 @@ impl NodeState {
/// # use rclrs::*;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// # use rclrs::vendor::test_msgs;
/// # use crate::rclrs::vendor::test_msgs;
/// let client = node.create_client::<test_msgs::srv::Empty>(
/// "my_service"
/// )
Expand All @@ -329,7 +329,7 @@ impl NodeState {
/// # use rclrs::*;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// # use rclrs::vendor::test_msgs;
/// # use crate::rclrs::vendor::test_msgs;
/// let client = node.create_client::<test_msgs::srv::Empty>(
/// "my_service"
/// .keep_all()
Expand Down Expand Up @@ -362,7 +362,7 @@ impl NodeState {
/// # use rclrs::*;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// # use rclrs::vendor::test_msgs;
/// # use crate::rclrs::vendor::test_msgs;
/// let publisher = node.create_publisher::<test_msgs::msg::Empty>(
/// "my_topic"
/// )
Expand All @@ -374,7 +374,7 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::test_msgs;
/// # use crate::rclrs::vendor::test_msgs;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// let publisher = node.create_publisher::<test_msgs::msg::Empty>(
Expand Down Expand Up @@ -421,10 +421,9 @@ impl NodeState {
/// Pass in only the service name for the `options` argument to use all default service options:
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::test_msgs;
/// # use crate::rclrs::vendor::test_msgs;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
///
/// let service = node.create_service::<test_msgs::srv::Empty, _>(
/// "my_service",
/// |_request: test_msgs::srv::Empty_Request| {
Expand All @@ -439,10 +438,9 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::test_msgs;
/// # use crate::rclrs::vendor::test_msgs;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
///
/// let service = node.create_service::<test_msgs::srv::Empty, _>(
/// "my_service"
/// .keep_all()
Expand Down Expand Up @@ -479,19 +477,19 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces::srv::*;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// use std::sync::Mutex;
///
/// let counter = Mutex::new(0usize);
/// let service = node.create_service::<Trigger, _>(
/// let service = node.create_service::<example_interfaces::srv::Trigger, _>(
/// "trigger_counter",
/// move |_request: Trigger_Request| {
/// move |_request: example_interfaces::srv::Trigger_Request| {
/// let mut counter = counter.lock().unwrap();
/// *counter += 1;
/// println!("Triggered {} times", *counter);
/// Trigger_Response {
/// example_interfaces::srv::Trigger_Response {
/// success: true,
/// message: "no problems here".to_string(),
/// }
Expand All @@ -505,21 +503,21 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces::srv::*;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// use std::sync::{Arc, Mutex};
///
/// let counter = Arc::new(Mutex::new(0usize));
///
/// let counter_in_service = Arc::clone(&counter);
/// let service = node.create_service::<Trigger, _>(
/// let service = node.create_service::<example_interfaces::srv::Trigger, _>(
/// "trigger_counter",
/// move |_request: Trigger_Request| {
/// move |_request: example_interfaces::srv::Trigger_Request| {
/// let mut counter = counter_in_service.lock().unwrap();
/// *counter += 1;
/// println!("Triggered {} times", *counter);
/// Trigger_Response {
/// example_interfaces::srv::Trigger_Response {
/// success: true,
/// message: "no problems here".to_string(),
/// }
Expand Down Expand Up @@ -599,17 +597,17 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces::srv::*;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node")?;
/// use std::sync::Arc;
///
/// let worker_a = node.create_worker(0_i64);
/// let worker_b = node.create_worker(0_i64);
///
/// let service = node.create_async_service::<AddTwoInts, _>(
/// let service = node.create_async_service::<example_interfaces::srv::AddTwoInts, _>(
/// "add",
/// move |request: AddTwoInts_Request| {
/// move |request: example_interfaces::srv::AddTwoInts_Request| {
/// // Clone the workers so they can be captured into the async block
/// let worker_a = Arc::clone(&worker_a);
/// let worker_b = Arc::clone(&worker_b);
Expand All @@ -628,7 +626,7 @@ impl NodeState {
/// // Awaiting above ensures that each number from the
/// // request is saved in its respective worker before
/// // we give back a response.
/// AddTwoInts_Response { sum: a + b }
/// example_interfaces::srv::AddTwoInts_Response { sum: a + b }
/// }
/// }
/// )?;
Expand Down Expand Up @@ -671,7 +669,7 @@ impl NodeState {
/// Pass in only the topic name for the `options` argument to use all default subscription options:
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::test_msgs;
/// # use crate::rclrs::vendor::test_msgs;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// let subscription = node.create_subscription(
Expand All @@ -687,7 +685,7 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::test_msgs;
/// # use crate::rclrs::vendor::test_msgs;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// let subscription = node.create_subscription(
Expand Down Expand Up @@ -730,7 +728,7 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// use std::sync::Mutex;
Expand All @@ -753,7 +751,7 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// use std::sync::{Arc, Mutex};
Expand Down Expand Up @@ -854,7 +852,7 @@ impl NodeState {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
///
Expand Down
12 changes: 6 additions & 6 deletions rclrs/src/worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ impl<Payload: 'static + Send + Sync> WorkerState<Payload> {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
/// // The worker's payload is data that we want to share with other callbacks.
Expand Down Expand Up @@ -321,7 +321,7 @@ impl<Payload: 'static + Send + Sync> WorkerState<Payload> {
///
/// ```
/// # use rclrs::*;
/// # use rclrs::vendor::example_interfaces::srv::*;
/// # use crate::rclrs::vendor::example_interfaces;
/// # let executor = Context::default().create_basic_executor();
/// # let node = executor.create_node("my_node").unwrap();
///
Expand All @@ -339,17 +339,17 @@ impl<Payload: 'static + Send + Sync> WorkerState<Payload> {
/// // callback.
/// let mut count = 0_usize;
///
/// let service = worker.create_service::<AddTwoInts, _>(
/// let service = worker.create_service::<example_interfaces::srv::AddTwoInts, _>(
/// "add",
/// move |payload: &mut Operands, request: AddTwoInts_Request| {
/// move |payload: &mut Operands, request: example_interfaces::srv::AddTwoInts_Request| {
/// count += 1;
/// let AddTwoInts_Request { a, b } = request;
/// let example_interfaces::srv::AddTwoInts_Request { a, b } = request;
/// let sum = a + b;
/// println!("#{count} | {a} + {b} = {sum}");
///
/// *payload = Operands { a, b };
///
/// AddTwoInts_Response { sum }
/// example_interfaces::srv::AddTwoInts_Response { sum }
/// }
/// )?;
/// # Ok::<(), RclrsError>(())
Expand Down
Loading