diff options
| author | Max Audron <audron@cocaine.farm> | 2021-09-28 18:12:51 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2021-09-28 18:16:20 +0200 |
| commit | 31072bbcde7eb70e84d4f2f3532928dc78f4ced8 (patch) | |
| tree | 59512836756e8a2a476266192d7d22262314c5f6 /src/message/signalproxy/objects | |
| parent | make initdata fields public (diff) | |
add handle_syncmessage to aliasmanager
Diffstat (limited to '')
| -rw-r--r-- | src/message/signalproxy/objects/aliasmanager.rs | 27 |
1 files changed, 23 insertions, 4 deletions
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}; |
