aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects/aliasmanager.rs
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2021-01-04 18:38:31 +0100
committerMax Audron <audron@cocaine.farm>2021-01-04 18:38:31 +0100
commit0b7c6cf0b129799110d3ef0118e1f2b5697a2068 (patch)
tree9bbb49c7af7feb6fc1aff497e0d577fe31ef11ed /src/message/signalproxy/objects/aliasmanager.rs
parentWIP: function api (diff)
parentadd example program: quasselproxy (diff)
Merge branch 'client'
Diffstat (limited to 'src/message/signalproxy/objects/aliasmanager.rs')
-rw-r--r--src/message/signalproxy/objects/aliasmanager.rs46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/message/signalproxy/objects/aliasmanager.rs b/src/message/signalproxy/objects/aliasmanager.rs
new file mode 100644
index 0000000..828caaa
--- /dev/null
+++ b/src/message/signalproxy/objects/aliasmanager.rs
@@ -0,0 +1,46 @@
+use crate::primitive::{Variant, VariantMap};
+
+#[derive(Clone, Debug, std::cmp::PartialEq)]
+pub struct AliasManager {
+ pub aliases: Vec<Alias>,
+}
+
+#[derive(Clone, Debug, std::cmp::PartialEq)]
+pub struct Alias {
+ name: String,
+ expansion: String,
+}
+
+impl AliasManager {
+ /// Client to Server
+ ///
+ /// Replaces all properties of the object with the content of the
+ /// "properties" parameter. This parameter is in network representation.
+ ///
+ fn request_update(self: &mut Self, properties: VariantMap) {
+ self.update(properties);
+ }
+
+ /// Server to Client
+ fn add_alias(self: &mut Self, name: String, expansion: String) {
+ self.aliases.push(Alias { name, expansion });
+ }
+
+ /// Server to Client
+ ///
+ /// Replaces all properties of the object with the content of the
+ /// "properties" parameter. This parameter is in network representation.
+ ///
+ fn update(self: &mut Self, properties: VariantMap) {
+ let mut alias: Vec<Alias> = Vec::new();
+
+ // for (i, name) in match_variant!(properties[&"Aliases".to_string()], Variant::String) {
+ // alias.push(Alias {
+ // name,
+ // expansion: match_variant!(properties["Aliases"], Variant::String)["expansions"][i],
+ // })
+ // }
+
+ self.aliases = alias
+ }
+}