diff --git a/rclrs/src/publisher.rs b/rclrs/src/publisher.rs index b1cdd93b9..6114aea32 100644 --- a/rclrs/src/publisher.rs +++ b/rclrs/src/publisher.rs @@ -146,6 +146,20 @@ where } } + /// Returns the number of subscriptions of the publisher. + pub fn get_subscription_count(&self) -> usize { + let mut subscription_count = 0; + // SAFETY: No preconditions for the function called. + let ret = unsafe { + rcl_publisher_get_subscription_count( + &*self.handle.rcl_publisher.lock().unwrap(), + &mut subscription_count, + ) + }; + debug_assert_eq!(ret, 0); + subscription_count + } + /// Publishes a message. /// /// The [`MessageCow`] trait is implemented by any