From 44122d77d6382043be85ff0a72398748b9ab3493 Mon Sep 17 00:00:00 2001 From: Sofia Date: Thu, 16 Jul 2026 04:52:20 +0300 Subject: [PATCH] Add necessary utility functions --- src/connections.rs | 4 ++++ src/lib.rs | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/connections.rs b/src/connections.rs index a32ef42..dc74608 100644 --- a/src/connections.rs +++ b/src/connections.rs @@ -373,6 +373,10 @@ impl Connection messages } + + pub fn connections(&self) -> Vec> { + self.connections.values().cloned().collect() + } } /// Wrap UdpSocket with some helper methods diff --git a/src/lib.rs b/src/lib.rs index 519a736..31b0e02 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -207,8 +207,29 @@ impl Peer { self.connection_mgr.send(to, message, false); } + /// Send a reliable message to every connection currently connected + pub fn broadcast_reliable(&mut self, message: T) { + for connection in self.connections() { + self.connection_mgr + .send(&connection.address, message.clone(), true); + } + } + + /// Send an unreliable message to every connection currently connected + pub fn broadcast_unreliable(&mut self, message: T) { + for connection in self.connections() { + self.connection_mgr + .send(&connection.address, message.clone(), false); + } + } + /// Close the Peer, disconnecting all connections. pub fn close(&mut self) { self.connection_mgr.close(); } + + /// List of all current connections + pub fn connections(&self) -> Vec> { + self.connection_mgr.connections() + } }