aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects/ircuser.rs
diff options
context:
space:
mode:
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())
}
}