aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects/ircuser.rs
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2021-03-09 17:18:22 +0100
committerMax Audron <audron@cocaine.farm>2021-03-09 17:18:22 +0100
commit57e0309994be634f3935cf981d4b1ce60b481aba (patch)
treeb6a5f9cfc28e6aa7ce4e6b9bbc41faa76003984e /src/message/signalproxy/objects/ircuser.rs
parentadd to and from network derive (diff)
WIP: impl signalproxy types
Diffstat (limited to 'src/message/signalproxy/objects/ircuser.rs')
-rw-r--r--src/message/signalproxy/objects/ircuser.rs26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/message/signalproxy/objects/ircuser.rs b/src/message/signalproxy/objects/ircuser.rs
index 0ce597f..1064965 100644
--- a/src/message/signalproxy/objects/ircuser.rs
+++ b/src/message/signalproxy/objects/ircuser.rs
@@ -1,9 +1,26 @@
-use crate::primitive::{DateTime, StringList};
+use std::collections::HashMap;
+
+use crate::primitive::{DateTime, StringList, Variant, VariantMap};
#[allow(unused_imports)]
use crate::message::signalproxy::Network;
use libquassel_derive::Network;
+impl Network for Vec<IrcUser> {
+ type Item = VariantMap;
+
+ fn to_network(&self) -> Self::Item {
+ Variant::VariantMap(self.iter().fold(HashMap::new(), |mut res, v| {
+ res.extend(v.to_network());
+
+ res
+ }))
+ }
+ fn from_network(input: &mut Self::Item) -> Self {
+ todo!()
+ }
+}
+
#[allow(dead_code)]
#[derive(Debug, Clone, PartialEq, Network)]
#[network(repr = "maplist")]
@@ -196,6 +213,11 @@ mod tests {
#[test]
fn ircuser_from_network() {
- assert_eq!(IrcUser::from_network(get_network()), get_runtime())
+ assert_eq!(IrcUser::from_network(&mut get_network()), get_runtime())
+ }
+
+ #[test]
+ fn vec_ircuser_to_network() {
+ assert_eq!(get_runtime().to_network(), get_network())
}
}