summaryrefslogtreecommitdiffstats
path: root/src/message_subscriptions.rs
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@bunny.garden>2025-06-02 19:50:45 +0100
committerLibravatar cel 🌸 <cel@bunny.garden>2025-06-02 19:50:45 +0100
commitab654372e4d3766c8df17623a6de8922fc2a1960 (patch)
tree59ff88ab5da68af23ad84bc2310730e29eb89410 /src/message_subscriptions.rs
parent6ee4190a26f32bfa953302ee363ad3bb6c384ebb (diff)
downloadmacaw-web-ab654372e4d3766c8df17623a6de8922fc2a1960.tar.gz
macaw-web-ab654372e4d3766c8df17623a6de8922fc2a1960.tar.bz2
macaw-web-ab654372e4d3766c8df17623a6de8922fc2a1960.zip
feat: make `MacawUser`, `MacawChat` and `MacawMessage` arena-allocated
Diffstat (limited to 'src/message_subscriptions.rs')
-rw-r--r--src/message_subscriptions.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/message_subscriptions.rs b/src/message_subscriptions.rs
index 5b1d276..17d924f 100644
--- a/src/message_subscriptions.rs
+++ b/src/message_subscriptions.rs
@@ -4,11 +4,11 @@ use jid::BareJID;
use tokio::sync::mpsc::{self, Receiver};
use uuid::Uuid;
-use crate::message::MacawMessage;
+use crate::message::{ArcMacawMessage, MacawMessage};
pub struct MessageSubscriptions {
- all: HashMap<Uuid, mpsc::Sender<(BareJID, MacawMessage)>>,
- subset: HashMap<BareJID, HashMap<Uuid, mpsc::Sender<MacawMessage>>>,
+ all: HashMap<Uuid, mpsc::Sender<(BareJID, ArcMacawMessage)>>,
+ subset: HashMap<BareJID, HashMap<Uuid, mpsc::Sender<ArcMacawMessage>>>,
}
impl MessageSubscriptions {
@@ -19,7 +19,7 @@ impl MessageSubscriptions {
}
}
- pub async fn broadcast(&mut self, to: BareJID, message: MacawMessage) {
+ pub async fn broadcast(&mut self, to: BareJID, message: ArcMacawMessage) {
// subscriptions to all
let mut removals = Vec::new();
for (id, sender) in &self.all {
@@ -54,14 +54,14 @@ impl MessageSubscriptions {
}
}
- pub fn subscribe_all(&mut self) -> (Uuid, Receiver<(BareJID, MacawMessage)>) {
+ pub fn subscribe_all(&mut self) -> (Uuid, Receiver<(BareJID, ArcMacawMessage)>) {
let (send, recv) = mpsc::channel(10);
let id = Uuid::new_v4();
self.all.insert(id, send);
(id, recv)
}
- pub fn subscribe_chat(&mut self, chat: BareJID) -> (Uuid, Receiver<MacawMessage>) {
+ pub fn subscribe_chat(&mut self, chat: BareJID) -> (Uuid, Receiver<ArcMacawMessage>) {
let (send, recv) = mpsc::channel(10);
let id = Uuid::new_v4();
if let Some(chat_subscribers) = self.subset.get_mut(&chat) {