aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy
diff options
context:
space:
mode:
Diffstat (limited to 'src/message/signalproxy')
-rw-r--r--src/message/signalproxy/mod.rs1
-rw-r--r--src/message/signalproxy/objects/aliasmanager.rs9
-rw-r--r--src/message/signalproxy/objects/mod.rs6
-rw-r--r--src/message/signalproxy/translation/mod.rs11
4 files changed, 17 insertions, 10 deletions
diff --git a/src/message/signalproxy/mod.rs b/src/message/signalproxy/mod.rs
index b06bcee..23694c8 100644
--- a/src/message/signalproxy/mod.rs
+++ b/src/message/signalproxy/mod.rs
@@ -61,7 +61,6 @@ pub trait Syncable {
}
}
-// TODO handle client vs server with feature flag
/// A Stateful Syncable Object
#[allow(unused_variables)]
pub trait StatefulSyncable: Syncable {
diff --git a/src/message/signalproxy/objects/aliasmanager.rs b/src/message/signalproxy/objects/aliasmanager.rs
index d0e5d5b..2a29865 100644
--- a/src/message/signalproxy/objects/aliasmanager.rs
+++ b/src/message/signalproxy/objects/aliasmanager.rs
@@ -1,12 +1,15 @@
-use libquassel_derive::Network;
+use libquassel_derive::{Network, NetworkList, NetworkMap};
use crate::message::{StatefulSyncable, SyncProxy, Syncable};
+use crate::message::signalproxy::translation::Network;
+use crate::primitive::{VariantList, VariantMap};
+
/// AliasManager
/// keeps a list of all registered aliases
/// syncable
-#[derive(Clone, Debug, std::cmp::PartialEq, Network)]
-#[network(repr = "list")]
+#[derive(Clone, Debug, std::cmp::PartialEq, NetworkList, NetworkMap)]
+#[network]
pub struct AliasManager {
#[network(rename = "Aliases", variant = "VariantMap", network)]
pub aliases: Vec<Alias>,
diff --git a/src/message/signalproxy/objects/mod.rs b/src/message/signalproxy/objects/mod.rs
index 59c196d..124ed10 100644
--- a/src/message/signalproxy/objects/mod.rs
+++ b/src/message/signalproxy/objects/mod.rs
@@ -29,7 +29,7 @@ pub use networkinfo::*;
use libquassel_derive::From;
use log::debug;
-use super::Network;
+use super::{Network, NetworkList, NetworkMap};
use crate::primitive::VariantList;
/// Central Enum containing and identifying all Quassel Protocol Types:
@@ -72,7 +72,7 @@ impl Types {
pub fn to_network(&self) -> VariantList {
debug!("converting to network object: {:#?}", self);
match self {
- Types::AliasManager(val) => val.to_network(),
+ Types::AliasManager(val) => val.to_network_list(),
Types::BufferSyncer(val) => val.to_network(),
Types::BufferViewConfig(val) => val.to_network(),
Types::BufferViewManager(val) => val.to_network(),
@@ -94,7 +94,7 @@ impl Types {
class_name, input
);
match class_name {
- "AliasManager" => Types::AliasManager(AliasManager::from_network(input)),
+ "AliasManager" => Types::AliasManager(AliasManager::from_network_list(input)),
"BufferSyncer" => Types::BufferSyncer(BufferSyncer::from_network(input)),
"BufferViewConfig" => Types::BufferViewConfig(BufferViewConfig::from_network(input)),
"BufferViewManager" => Types::BufferViewManager(BufferViewManager::from_network(input)),
diff --git a/src/message/signalproxy/translation/mod.rs b/src/message/signalproxy/translation/mod.rs
index 6a21ec0..3587ab6 100644
--- a/src/message/signalproxy/translation/mod.rs
+++ b/src/message/signalproxy/translation/mod.rs
@@ -84,7 +84,7 @@ VariantMap({
})
```
**/
-use crate::primitive::VariantMap;
+use crate::primitive::{VariantList, VariantMap};
pub trait Network {
type Item;
@@ -94,6 +94,11 @@ pub trait Network {
}
pub trait NetworkMap {
- fn to_variantmap(&self) -> VariantMap;
- fn from_variantmap(input: &mut VariantMap) -> Self;
+ fn to_network_map(&self) -> VariantMap;
+ fn from_network_map(input: &mut VariantMap) -> Self;
+}
+
+pub trait NetworkList {
+ fn to_network_list(&self) -> VariantList;
+ fn from_network_list(input: &mut VariantList) -> Self;
}