summaryrefslogtreecommitdiffstats
path: root/src/views/macaw.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/views/macaw.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/views/macaw.rs')
-rw-r--r--src/views/macaw.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/views/macaw.rs b/src/views/macaw.rs
index 18e0ad3..1b7051f 100644
--- a/src/views/macaw.rs
+++ b/src/views/macaw.rs
@@ -10,7 +10,7 @@ use tokio::sync::mpsc::Receiver;
use tracing::debug;
use uuid::Uuid;
-use crate::{client::Client, components::sidebar::Sidebar, contact::MacawContact, message::MacawMessage, message_subscriptions::MessageSubscriptions, open_chats::OpenChatsPanel, roster::{Roster, RosterStoreFields}, state_store::StateStore, user::MacawUser, user_presences::{Presences, UserPresences}};
+use crate::{client::Client, components::sidebar::Sidebar, contact::{ArcMacawContact, MacawContact}, message::{ArcMacawMessage, MacawMessage}, message_subscriptions::MessageSubscriptions, open_chats::OpenChatsPanel, roster::{Roster, RosterStoreFields}, state_store::StateStore, user::{ArcMacawUser, MacawUser}, user_presences::{Presences, UserPresences}};
use super::AppState;
@@ -49,11 +49,11 @@ pub fn Macaw(
let user_presences = Store::new(UserPresences::new());
provide_context(user_presences);
- let client_user = LocalResource::new(move || {
+ let client_user: LocalResource<MacawUser> = LocalResource::new(move || {
async move {
let client = use_context::<Client>().expect("client not in context");
let user = client.get_user((*client.jid).clone()).await.unwrap();
- MacawUser::got_user(user)
+ ArcMacawUser::got_user(user).into()
}
});
provide_context(client_user);
@@ -74,7 +74,7 @@ pub fn Macaw(
.map(|(contact, user)| {
(
contact.user_jid.clone(),
- MacawContact::got_contact_and_user(contact, user),
+ ArcMacawContact::got_contact_and_user(contact, user).into(),
)
})
.collect();
@@ -90,7 +90,7 @@ pub fn Macaw(
macaw_contact.set(contact);
} else {
let jid = contact.user_jid.clone();
- let contact = MacawContact::got_contact_and_user(contact, user);
+ let contact = ArcMacawContact::got_contact_and_user(contact, user).into();
roster.insert(jid, contact);
}
});
@@ -116,7 +116,7 @@ pub fn Macaw(
}
UpdateMessage::Message { to, from, message } => {
debug!("before got message");
- let new_message = MacawMessage::got_message_and_user(message, from);
+ let new_message = ArcMacawMessage::got_message_and_user(message, from);
debug!("after got message");
spawn_local(async move {
message_subscriptions