From e12b29dcc6b16aba72b0a33db6cd5d7bf1aba3db Mon Sep 17 00:00:00 2001 From: haixuanTao Date: Fri, 26 Jan 2024 09:57:00 +0100 Subject: [PATCH] Make type setting available for both forward slash and `::` --- libraries/extensions/ros2-bridge/python/src/lib.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libraries/extensions/ros2-bridge/python/src/lib.rs b/libraries/extensions/ros2-bridge/python/src/lib.rs index f072ceb8..c9492dca 100644 --- a/libraries/extensions/ros2-bridge/python/src/lib.rs +++ b/libraries/extensions/ros2-bridge/python/src/lib.rs @@ -101,12 +101,13 @@ impl Ros2Node { message_type: String, qos: qos::Ros2QosPolicies, ) -> eyre::Result { - let (namespace_name, message_name) = message_type.split_once("/").with_context(|| { - format!( - "message type must be of form `package::type`, is `{}`", - message_type - ) - })?; + let (namespace_name, message_name) = + match (message_type.split_once("/"), message_type.split_once("::")) { + (Some(msg), None) => msg, + (None, Some(msg)) => msg, + _ => eyre::bail!("Expected message type in the format `namespace/message` or `namespace::message`, such as `std_msgs/UInt8` but got: {}", message_type), + }; + let message_type_name = ros2_client::MessageTypeName::new(namespace_name, message_name); let topic_name = ros2_client::Name::parse(name) .map_err(|err| eyre!("failed to parse ROS2 topic name: {err}"))?;