From f7bbf8563f0b2f248d395f91aefa9d2c92a1a1b5 Mon Sep 17 00:00:00 2001 From: Martin Dahl Date: Fri, 17 May 2024 11:47:26 +0200 Subject: [PATCH] rustfmt --- r2r/examples/client.rs | 3 +- r2r/examples/service.rs | 9 ++++-- r2r/examples/tokio_client.rs | 3 +- r2r/examples/tokio_examples.rs | 3 +- r2r/examples/tokio_service.rs | 3 +- r2r/examples/untyped_client.rs | 7 +++-- r2r/src/clients.rs | 3 +- r2r/src/nodes.rs | 57 +++++++++++++++++++++++----------- r2r/src/services.rs | 5 +-- 9 files changed, 63 insertions(+), 30 deletions(-) diff --git a/r2r/examples/client.rs b/r2r/examples/client.rs index 0e13864..93d8234 100644 --- a/r2r/examples/client.rs +++ b/r2r/examples/client.rs @@ -29,7 +29,8 @@ async fn requester_task( fn main() -> Result<(), Box> { let ctx = r2r::Context::create()?; let mut node = r2r::Node::create(ctx, "testnode", "")?; - let client = node.create_client::("/add_two_ints", QosProfile::default())?; + let client = + node.create_client::("/add_two_ints", QosProfile::default())?; let service_available = r2r::Node::is_available(&client)?; diff --git a/r2r/examples/service.rs b/r2r/examples/service.rs index d4f6ee8..051f0fb 100644 --- a/r2r/examples/service.rs +++ b/r2r/examples/service.rs @@ -11,9 +11,12 @@ use r2r::{example_interfaces::srv::AddTwoInts, QosProfile}; fn main() -> Result<(), Box> { let ctx = r2r::Context::create()?; let mut node = r2r::Node::create(ctx, "testnode", "")?; - let mut service = node.create_service::("/add_two_ints", QosProfile::default())?; - let service_delayed = node.create_service::("/add_two_ints_delayed", QosProfile::default())?; - let client = node.create_client::("/add_two_ints_delayed", QosProfile::default())?; + let mut service = + node.create_service::("/add_two_ints", QosProfile::default())?; + let service_delayed = + node.create_service::("/add_two_ints_delayed", QosProfile::default())?; + let client = + node.create_client::("/add_two_ints_delayed", QosProfile::default())?; let mut timer = node.create_wall_timer(std::time::Duration::from_millis(250))?; let mut timer2 = node.create_wall_timer(std::time::Duration::from_millis(2000))?; // wait for service to be available diff --git a/r2r/examples/tokio_client.rs b/r2r/examples/tokio_client.rs index bd8c54e..c9d6867 100644 --- a/r2r/examples/tokio_client.rs +++ b/r2r/examples/tokio_client.rs @@ -7,7 +7,8 @@ async fn main() -> Result<(), Box> { let duration = std::time::Duration::from_millis(2500); use r2r::example_interfaces::srv::AddTwoInts; - let client = node.create_client::("/add_two_ints", QosProfile::default())?; + let client = + node.create_client::("/add_two_ints", QosProfile::default())?; let mut timer = node.create_wall_timer(duration)?; let waiting = r2r::Node::is_available(&client)?; diff --git a/r2r/examples/tokio_examples.rs b/r2r/examples/tokio_examples.rs index fac6367..90b4ee0 100644 --- a/r2r/examples/tokio_examples.rs +++ b/r2r/examples/tokio_examples.rs @@ -75,7 +75,8 @@ async fn client(arc_node: Arc>) -> Result<(), r2r::Error> { let (client, mut timer, service_available) = { // Limiting the scope when locking the arc let mut node = arc_node.lock().unwrap(); - let client = node.create_client::("/add_two_ints", QosProfile::default())?; + let client = + node.create_client::("/add_two_ints", QosProfile::default())?; let timer = node.create_wall_timer(std::time::Duration::from_secs(2))?; let service_available = r2r::Node::is_available(&client)?; (client, timer, service_available) diff --git a/r2r/examples/tokio_service.rs b/r2r/examples/tokio_service.rs index 1715c93..85e28a0 100644 --- a/r2r/examples/tokio_service.rs +++ b/r2r/examples/tokio_service.rs @@ -7,7 +7,8 @@ async fn main() -> Result<(), Box> { let mut node = r2r::Node::create(ctx, "testnode", "")?; use r2r::example_interfaces::srv::AddTwoInts; - let mut service = node.create_service::("/add_two_ints", QosProfile::default())?; + let mut service = + node.create_service::("/add_two_ints", QosProfile::default())?; let handle = tokio::task::spawn_blocking(move || loop { node.spin_once(std::time::Duration::from_millis(100)); diff --git a/r2r/examples/untyped_client.rs b/r2r/examples/untyped_client.rs index 3318cea..6018d5f 100644 --- a/r2r/examples/untyped_client.rs +++ b/r2r/examples/untyped_client.rs @@ -25,8 +25,11 @@ async fn requester_task( fn main() -> Result<(), Box> { let ctx = r2r::Context::create()?; let mut node = r2r::Node::create(ctx, "testnode", "")?; - let client = - node.create_client_untyped("/add_two_ints", "example_interfaces/srv/AddTwoInts", QosProfile::default())?; + let client = node.create_client_untyped( + "/add_two_ints", + "example_interfaces/srv/AddTwoInts", + QosProfile::default(), + )?; let service_available = r2r::Node::is_available(&client)?; diff --git a/r2r/src/clients.rs b/r2r/src/clients.rs index 2ea6d22..67d2d68 100644 --- a/r2r/src/clients.rs +++ b/r2r/src/clients.rs @@ -319,7 +319,8 @@ impl Client_ for UntypedClient_ { } pub fn create_client_helper( - node: *mut rcl_node_t, service_name: &str, service_ts: *const rosidl_service_type_support_t, qos_profile: QosProfile, + node: *mut rcl_node_t, service_name: &str, service_ts: *const rosidl_service_type_support_t, + qos_profile: QosProfile, ) -> Result { let mut client_handle = unsafe { rcl_get_zero_initialized_client() }; let service_name_c_string = diff --git a/r2r/src/nodes.rs b/r2r/src/nodes.rs index c458c2c..f8404f7 100644 --- a/r2r/src/nodes.rs +++ b/r2r/src/nodes.rs @@ -287,11 +287,10 @@ impl Node { let node_name = self.name()?; let set_params_request_stream = self - .create_service::(&format!( - "{}/set_parameters", - node_name - ), - QosProfile::default())?; + .create_service::( + &format!("{}/set_parameters", node_name), + QosProfile::default(), + )?; let params = self.params.clone(); let params_struct_clone = params_struct.clone(); @@ -352,8 +351,9 @@ impl Node { // rcl_interfaces/srv/GetParameters let get_params_request_stream = self .create_service::( - &format!("{}/get_parameters",node_name), - QosProfile::default())?; + &format!("{}/get_parameters", node_name), + QosProfile::default(), + )?; let params = self.params.clone(); let params_struct_clone = params_struct.clone(); @@ -391,8 +391,10 @@ impl Node { // rcl_interfaces/srv/ListParameters use rcl_interfaces::srv::ListParameters; - let list_params_request_stream = self - .create_service::(&format!("{}/list_parameters", node_name), QosProfile::default())?; + let list_params_request_stream = self.create_service::( + &format!("{}/list_parameters", node_name), + QosProfile::default(), + )?; let params = self.params.clone(); let list_params_future = list_params_request_stream.for_each( @@ -406,7 +408,9 @@ impl Node { // rcl_interfaces/srv/DescribeParameters use rcl_interfaces::srv::DescribeParameters; let desc_params_request_stream = self.create_service::( - &format!("{node_name}/describe_parameters"), QosProfile::default())?; + &format!("{node_name}/describe_parameters"), + QosProfile::default(), + )?; let params = self.params.clone(); let desc_params_future = desc_params_request_stream.for_each( @@ -421,7 +425,8 @@ impl Node { use rcl_interfaces::srv::GetParameterTypes; let get_param_types_request_stream = self.create_service::( &format!("{node_name}/get_parameter_types"), - QosProfile::default())?; + QosProfile::default(), + )?; let params = self.params.clone(); let get_param_types_future = get_param_types_request_stream.for_each( @@ -654,8 +659,12 @@ impl Node { where T: WrappedServiceTypeSupport, { - let service_handle = - create_service_helper(self.node_handle.as_mut(), service_name, T::get_ts(), qos_profile)?; + let service_handle = create_service_helper( + self.node_handle.as_mut(), + service_name, + T::get_ts(), + qos_profile, + )?; let (sender, receiver) = mpsc::channel::>(10); let ws = TypedService:: { @@ -672,12 +681,17 @@ impl Node { /// /// A service client is used to make requests to a ROS service server. pub fn create_client( - &mut self, service_name: &str, qos_profile: QosProfile,) -> Result> + &mut self, service_name: &str, qos_profile: QosProfile, + ) -> Result> where T: WrappedServiceTypeSupport, { - let client_handle = - create_client_helper(self.node_handle.as_mut(), service_name, T::get_ts(), qos_profile)?; + let client_handle = create_client_helper( + self.node_handle.as_mut(), + service_name, + T::get_ts(), + qos_profile, + )?; let ws = TypedClient:: { rcl_handle: client_handle, response_channels: Vec::new(), @@ -700,8 +714,12 @@ impl Node { &mut self, service_name: &str, service_type: &str, qos_profile: QosProfile, ) -> Result { let service_type = UntypedServiceSupport::new_from(service_type)?; - let client_handle = - create_client_helper(self.node_handle.as_mut(), service_name, service_type.ts, qos_profile)?; + let client_handle = create_client_helper( + self.node_handle.as_mut(), + service_name, + service_type.ts, + qos_profile, + )?; let client = UntypedClient_ { service_type, rcl_handle: client_handle, @@ -1490,6 +1508,9 @@ impl Drop for Node { for s in &mut self.subscribers { s.destroy(&mut self.node_handle); } + for c in &mut self.clients { + c.lock().unwrap().destroy(&mut self.node_handle); + } for s in &mut self.services { s.lock().unwrap().destroy(&mut self.node_handle); } diff --git a/r2r/src/services.rs b/r2r/src/services.rs index ca9d18e..a97f343 100644 --- a/r2r/src/services.rs +++ b/r2r/src/services.rs @@ -113,7 +113,8 @@ where } pub fn create_service_helper( - node: &mut rcl_node_t, service_name: &str, service_ts: *const rosidl_service_type_support_t, qos_profile: QosProfile, + node: &mut rcl_node_t, service_name: &str, service_ts: *const rosidl_service_type_support_t, + qos_profile: QosProfile, ) -> Result { let mut service_handle = unsafe { rcl_get_zero_initialized_service() }; let service_name_c_string = @@ -121,7 +122,7 @@ pub fn create_service_helper( let result = unsafe { let mut service_options = rcl_service_get_default_options(); - service_options.qos = qos_profile.into(); + service_options.qos = qos_profile.into(); rcl_service_init( &mut service_handle, node,