diff options
| author | Max Audron <audron@cocaine.farm> | 2022-10-04 09:16:26 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2022-10-04 09:16:26 +0200 |
| commit | 492cf38cbb67d14d7a4b56aba3076fcc37e8967d (patch) | |
| tree | c28a7f2c4c9ead2aa857a82dafff7ccd39d7b20c /src/message/signalproxy/objects/aliasmanager.rs | |
| parent | set network prefixes and channel_modes fields (diff) | |
derive default for all signalproxy objects and make singalmessage class
an enum
Diffstat (limited to '')
| -rw-r--r-- | src/message/signalproxy/objects/aliasmanager.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/message/signalproxy/objects/aliasmanager.rs b/src/message/signalproxy/objects/aliasmanager.rs index 6aa7b06..489d8c8 100644 --- a/src/message/signalproxy/objects/aliasmanager.rs +++ b/src/message/signalproxy/objects/aliasmanager.rs @@ -1,5 +1,8 @@ +#[allow(unused_imports)] +use libquassel_derive::sync; use libquassel_derive::{NetworkList, NetworkMap}; +use crate::message::Class; #[allow(unused_imports)] use crate::message::StatefulSyncableClient; #[allow(unused_imports)] @@ -15,7 +18,7 @@ use crate::primitive::VariantMap; /// AliasManager /// keeps a list of all registered aliases /// syncable -#[derive(Clone, Debug, std::cmp::PartialEq, NetworkList, NetworkMap)] +#[derive(Clone, Default, Debug, std::cmp::PartialEq, NetworkList, NetworkMap)] pub struct AliasManager { #[network(rename = "Aliases", variant = "VariantMap", network, map)] pub aliases: Vec<Alias>, @@ -23,7 +26,9 @@ pub struct AliasManager { impl AliasManager { pub fn add_alias(&mut self, alias: Alias) { - // TODO check if name is equal + #[cfg(feature = "server")] + sync!("addAlias", [alias.to_network_map()]); + if !self.aliases.contains(&alias) { self.aliases.push(alias) } @@ -49,7 +54,7 @@ impl StatefulSyncableServer for AliasManager { } impl Syncable for AliasManager { - const CLASS: &'static str = "AliasManager"; + const CLASS: Class = Class::AliasManager; } /// Alias |
