diff options
Diffstat (limited to 'src/server/interaction/shared.rs')
| -rw-r--r-- | src/server/interaction/shared.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/interaction/shared.rs b/src/server/interaction/shared.rs new file mode 100644 index 0000000..fec5980 --- /dev/null +++ b/src/server/interaction/shared.rs @@ -0,0 +1,28 @@ +// Copyleft 2021-2021 Whirlsplash +// SPDX-License-Identifier: GPL-3.0-only + +use std::collections::HashMap; + +use bytes::BytesMut; + +use crate::server::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() } +} |