diff options
| author | Max Audron <audron@cocaine.farm> | 2021-09-28 18:13:43 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2021-09-28 18:16:20 +0200 |
| commit | 2831748466d7aca099502a265eced5d1d88c871a (patch) | |
| tree | e2ab7581cae8df2b1c041dcf81cbe22daf00e558 /src/message/signalproxy/mod.rs | |
| parent | add handle_syncmessage to aliasmanager (diff) | |
adapt Sync* types
Diffstat (limited to 'src/message/signalproxy/mod.rs')
| -rw-r--r-- | src/message/signalproxy/mod.rs | 20 |
1 files changed, 10 insertions, 10 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()]); } } } |
