aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects
diff options
context:
space:
mode:
Diffstat (limited to 'src/message/signalproxy/objects')
-rw-r--r--src/message/signalproxy/objects/aliasmanager.rs43
1 files changed, 27 insertions, 16 deletions
diff --git a/src/message/signalproxy/objects/aliasmanager.rs b/src/message/signalproxy/objects/aliasmanager.rs
index d696aae..61a68ce 100644
--- a/src/message/signalproxy/objects/aliasmanager.rs
+++ b/src/message/signalproxy/objects/aliasmanager.rs
@@ -1,10 +1,16 @@
-use std::convert::TryInto;
+use std::convert::TryFrom;
use libquassel_derive::{NetworkList, NetworkMap};
-use crate::message::{StatefulSyncable, SyncProxy, Syncable};
+#[allow(unused_imports)]
+use crate::message::StatefulSyncableClient;
+#[allow(unused_imports)]
+use crate::message::StatefulSyncableServer;
+
+use crate::message::{SyncProxy, Syncable};
use crate::message::signalproxy::translation::NetworkMap;
+use crate::primitive::VariantMap;
/// AliasManager
/// keeps a list of all registered aliases
@@ -22,28 +28,33 @@ impl AliasManager {
self.aliases.push(alias)
}
}
+}
- pub fn handle_syncmessage(
- &mut self,
- session: impl SyncProxy,
- msg: crate::message::SyncMessage,
- ) {
+#[cfg(feature = "client")]
+impl StatefulSyncableClient for AliasManager {}
+
+#[cfg(feature = "server")]
+impl StatefulSyncableServer for AliasManager {
+ fn sync_custom(&mut self, _session: impl SyncProxy, mut msg: crate::message::SyncMessage)
+ where
+ Self: Sized,
+ {
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())
- }
+ "addAlias" => self.add_alias(Alias::from_network_map(
+ &mut VariantMap::try_from(msg.params.pop().unwrap()).unwrap(),
+ )),
_ => (),
}
}
}
-impl StatefulSyncable for AliasManager {}
impl Syncable for AliasManager {
- fn sync(&self, session: impl SyncProxy, function: &str, params: crate::primitive::VariantList) {
+ fn send_sync(
+ &self,
+ session: impl SyncProxy,
+ function: &str,
+ params: crate::primitive::VariantList,
+ ) {
session.sync("AliasManager", None, function, params)
}
}
n title='2025-02-26 19:03:33 +0100'>2025-02-26refactor variant deserializationMax Audron-123/+59 2025-02-26refactor deserialize and serializevariant traitMax Audron-90/+80 move stuff around a bit to sepperate it out for deserializevariant 2025-02-26refactor variant serialization codeMax Audron-256/+405 Factored out a lot of the serialization of variants into trait's that have auto impl so code duplication is much reduced 2025-02-26add MsgId and BufferId to objects where neededMax Audron-141/+157 some objects where still handling BufferId or MsgId as their raw types which lead to errors now that the Types are properly parsed in the varinats 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 Up to now it was represented as i32. If we introduce a newtype for it, we can handle it idiomatically as dedicated Variant::BufferId variant (instead of having it mashed into Variant::UserType). 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 Up to now it was handled implicitely in Variant::UserType. Making it an explicit type allows to centralize the i32/i64 cfg dependency and to use the type for arguments in signalproxy::objects functions. 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 this changes the public API in that all our methods now return a proper ProtocolError crate. Needed change anyways to properly deal with all our errors in the long run. Will still need to do a pass through the crate to remove all existing unwraps where it makes sense. 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