aboutsummaryrefslogtreecommitdiff
path: root/src/session/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/session/mod.rs')
-rw-r--r--src/session/mod.rs44
1 files changed, 32 insertions, 12 deletions
diff --git a/src/session/mod.rs b/src/session/mod.rs
index 7fa5c29..07dc527 100644
--- a/src/session/mod.rs
+++ b/src/session/mod.rs
@@ -1,25 +1,25 @@
-use crate::message::{objects::AliasManager, SyncMessage, SyncProxy};
+use crate::message::{objects::AliasManager, StatefulSyncableClient, SyncMessage, SyncProxy};
/// The Session Trait is the main point of entry and implements the basic logic
pub trait Session: SyncProxy {
- fn alias_manager(&self) -> AliasManager;
+ fn alias_manager(&mut self) -> &mut AliasManager;
- fn handle_syncmessage(&self, msg: SyncMessage)
- where
- Self: Sized,
- {
- match msg.class_name.as_str() {
- "AliasManager" => self.alias_manager().handle_syncmessage(self, msg),
- _ => (),
- }
- }
+ // fn sync(&mut self, msg: SyncMessage)
+ // where
+ // Self: Sized,
+ // {
+ // match msg.class_name.as_str() {
+ // "AliasManager" => self.alias_manager().sync(self, msg),
+ // _ => (),
+ // }
+ // }
}
impl<T> Session for &T
where
T: Session,
{
- fn alias_manager(&self) -> AliasManager {
+ fn alias_manager(&mut self) -> &mut AliasManager {
todo!()
}
}
@@ -43,3 +43,23 @@ where
todo!()
}
}
+
+#[allow(unused_variables)]
+impl<T> SyncProxy for &mut T
+where
+ T: SyncProxy,
+{
+ fn sync(
+ &self,
+ class_name: &str,
+ object_name: Option<&str>,
+ function: &str,
+ params: crate::primitive::VariantList,
+ ) {
+ todo!()
+ }
+
+ fn rpc(&self, function: &str, params: crate::primitive::VariantList) {
+ todo!()
+ }
+}