diff options
Diffstat (limited to 'src/message/signalproxy/objects/ircuser.rs')
| -rw-r--r-- | src/message/signalproxy/objects/ircuser.rs | 26 |
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()) } } |
