diff options
Diffstat (limited to 'src/message/signalproxy')
| -rw-r--r-- | src/message/signalproxy/mod.rs | 20 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/aliasmanager.rs | 5 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/mod.rs | 2 |
3 files changed, 13 insertions, 14 deletions
diff --git a/src/message/signalproxy/mod.rs b/src/message/signalproxy/mod.rs index 23694c8..41057ca 100644 --- a/src/message/signalproxy/mod.rs +++ b/src/message/signalproxy/mod.rs @@ -26,7 +26,7 @@ pub use rpccall::*; pub use syncmessage::*; /// SyncProxy sends sync and rpc messages -pub trait SyncProxy: Session { +pub trait SyncProxy { fn sync( &self, class_name: &str, @@ -63,34 +63,34 @@ pub trait Syncable { /// A Stateful Syncable Object #[allow(unused_variables)] -pub trait StatefulSyncable: Syncable { +pub trait StatefulSyncable: Syncable + translation::NetworkMap { /// Client -> Server: Update the whole object with received data - fn update(&mut self, session: impl SyncProxy, params: VariantMap) + fn update(&mut self, session: impl SyncProxy, param: VariantMap) where - Self: Sized + From<VariantMap>, + Self: Sized, { #[cfg(feature = "client")] { - self.sync(session, "update", vec![params.into()]); + self.sync(session, "update", vec![self.to_network_map().into()]); } #[cfg(feature = "server")] { - *self = params.try_into().unwrap(); + *self = Self::from_network_map(&mut param); } } /// Server -> Client: Update the whole object with received data - fn request_update(&mut self, session: impl SyncProxy, params: VariantMap) + fn request_update(&mut self, session: impl SyncProxy, mut param: VariantMap) where - Self: Sized + From<VariantMap>, + Self: Sized, { #[cfg(feature = "client")] { - *self = params.try_into().unwrap(); + *self = Self::from_network_map(&mut param); } #[cfg(feature = "server")] { - self.sync(session, "requestUpdate", vec![params.into()]); + self.sync(session, "requestUpdate", vec![self.to_network_map().into()]); } } } diff --git a/src/message/signalproxy/objects/aliasmanager.rs b/src/message/signalproxy/objects/aliasmanager.rs index 61da289..cb634ba 100644 --- a/src/message/signalproxy/objects/aliasmanager.rs +++ b/src/message/signalproxy/objects/aliasmanager.rs @@ -11,7 +11,6 @@ use crate::primitive::{VariantList, VariantMap}; /// keeps a list of all registered aliases /// syncable #[derive(Clone, Debug, std::cmp::PartialEq, NetworkList, NetworkMap)] -#[network] pub struct AliasManager { #[network(rename = "Aliases", variant = "VariantMap", network)] pub aliases: Vec<Alias>, @@ -115,11 +114,11 @@ mod tests { #[test] fn aliasmanager_to_network() { - assert_eq!(get_src().to_network(), get_dest()) + assert_eq!(get_src().to_network_list(), get_dest()) } #[test] fn aliasmanager_from_network() { - assert_eq!(AliasManager::from_network(&mut get_dest()), get_src()) + assert_eq!(AliasManager::from_network_list(&mut get_dest()), get_src()) } } diff --git a/src/message/signalproxy/objects/mod.rs b/src/message/signalproxy/objects/mod.rs index 124ed10..72737a0 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, NetworkList, NetworkMap}; +use super::{Network, NetworkList}; use crate::primitive::VariantList; /// Central Enum containing and identifying all Quassel Protocol Types: |
