diff options
Diffstat (limited to 'crates/whirl_server/src/interaction/shared.rs')
| -rw-r--r-- | crates/whirl_server/src/interaction/shared.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/crates/whirl_server/src/interaction/shared.rs b/crates/whirl_server/src/interaction/shared.rs new file mode 100644 index 0000000..c2ee671 --- /dev/null +++ b/crates/whirl_server/src/interaction/shared.rs @@ -0,0 +1,28 @@ +// Copyleft (ɔ) 2021-2021 The Whirlsplash Collective +// SPDX-License-Identifier: GPL-3.0-only + +use std::collections::HashMap; + +use bytes::BytesMut; + +use crate::types::Tx; + +pub struct Shared { + pub peers: HashMap<String, Tx>, +} +impl Shared { + pub fn new() -> Self { + Shared { + peers: HashMap::new(), + } + } + + pub async fn broadcast(&mut self, message: &[u8]) { + for peer in self.peers.iter_mut() { + peer.1.send(BytesMut::from(message)).unwrap(); + } + } +} +impl Default for Shared { + fn default() -> Self { Self::new() } +} |