From 31072bbcde7eb70e84d4f2f3532928dc78f4ced8 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Tue, 28 Sep 2021 18:12:51 +0200 Subject: add handle_syncmessage to aliasmanager --- src/message/signalproxy/objects/aliasmanager.rs | 27 +++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'src/message') diff --git a/src/message/signalproxy/objects/aliasmanager.rs b/src/message/signalproxy/objects/aliasmanager.rs index 2a29865..61da289 100644 --- a/src/message/signalproxy/objects/aliasmanager.rs +++ b/src/message/signalproxy/objects/aliasmanager.rs @@ -1,8 +1,10 @@ +use std::convert::TryInto; + use libquassel_derive::{Network, NetworkList, NetworkMap}; use crate::message::{StatefulSyncable, SyncProxy, Syncable}; -use crate::message::signalproxy::translation::Network; +use crate::message::signalproxy::translation::{Network, NetworkMap}; use crate::primitive::{VariantList, VariantMap}; /// AliasManager @@ -22,6 +24,23 @@ impl AliasManager { self.aliases.push(alias) } } + + pub fn handle_syncmessage( + &mut self, + session: impl SyncProxy, + msg: crate::message::SyncMessage, + ) { + match msg.slot_name.as_str() { + "requestUpdate" => { + self.request_update(session, msg.params.get(0).unwrap().try_into().unwrap()) + } + "update" => { + *self = + AliasManager::from_network_map(&mut msg.params[0].clone().try_into().unwrap()) + } + _ => (), + } + } } impl StatefulSyncable for AliasManager {} @@ -37,15 +56,15 @@ impl Syncable for AliasManager { #[network(repr = "maplist")] pub struct Alias { #[network(rename = "names", variant = "StringList")] - name: String, + pub name: String, #[network(rename = "expansions", variant = "StringList")] - expansion: String, + pub expansion: String, } #[cfg(test)] mod tests { use super::*; - use crate::message::signalproxy::translation::Network; + use crate::message::signalproxy::translation::NetworkList; use crate::primitive::{Variant, VariantList}; -- cgit v1.2.3 ut type='hidden' name='id' value='8447b54b6309cf5ca75ffe101088a833d3b34b1e'/>
path: root/Cargo.toml (unfollow)
Commit message (Expand)AuthorLines
2025-03-01remove old quassel attributes from derive macrosMax Audron-37/+36
2025-02-27extend docs and reorganize filesMax Audron-1281/+321
2025-02-26implement NetworkId UserTypeMax Audron-108/+196
2025-02-26implement IdentityIdMax Audron-8/+79
2025-02-26refactor variant deserializationMax Audron-123/+59
2025-02-26refactor deserialize and serializevariant traitMax Audron-90/+80
2025-02-26refactor variant serialization codeMax Audron-256/+405
2025-02-26add MsgId and BufferId to objects where neededMax Audron-141/+157
2025-02-25enable transparent repr for msgid and bufferidMax Audron-0/+2
2025-02-25Implement BacklogManagerTobias Deiminger-59/+113
2025-02-25Use BufferId in BufferInfoTobias Deiminger-10/+11
2025-02-25Use BufferId in VariantTobias Deiminger-2/+33
2025-02-25Add BufferId as Rust typeTobias Deiminger-0/+39
2025-02-25Use MsgId in MessageTobias Deiminger-18/+6
2025-02-25Use MsgId in VariantTobias Deiminger-20/+37
2025-02-25Add MsgId as Rust typeTobias Deiminger-0/+56
2025-02-24added session manager comments and log messageMax Audron-1/+3
2025-02-23add identity syncable to SessionManagerMax Audron-1/+8
2025-02-23add syncables for IrcUserMax Audron-2/+53
2025-02-23move network config to it's own file and impl it's syncMax Audron-23/+84
2025-02-23add basic network syncablesMax Audron-39/+420
2025-02-23clean up unused_import and unused_variables a bitMax Audron-2/+8
2025-02-23fix server feature errorsMax Audron-28/+23
2025-02-23fix ircchannel and maplist network representationMax Audron-154/+137
2025-02-22replace deprecated failure crate with thiserrorMax Audron-278/+194
2025-02-22update dependencies and fix errorsMax Audron-508/+332
2025-02-22update flakeMax Audron-94/+117
2024-05-22add todos to readmeMax Audron-16/+35