From 11284c56bb064c81d23e8d9f73c6a20171f89876 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Wed, 21 Jul 2021 18:24:39 +0200 Subject: fix network object --- src/message/signalproxy/objects/network.rs | 42 +++++++++++++++++------------- 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'src/message/signalproxy/objects/network.rs') diff --git a/src/message/signalproxy/objects/network.rs b/src/message/signalproxy/objects/network.rs index 6bf9265..cecc412 100644 --- a/src/message/signalproxy/objects/network.rs +++ b/src/message/signalproxy/objects/network.rs @@ -150,26 +150,32 @@ impl crate::message::signalproxy::Network for Network { }) .unwrap(), irc_users: { - let users: Vec = Vec::::from_network( - &mut users_and_channels.get("Users").unwrap().try_into().unwrap(), - ); - users - .into_iter() - .map(|user| (user.nick.clone(), user)) - .collect() + match users_and_channels.get("Users") { + Some(users) => { + let users: Vec = Vec::::from_network( + &mut users.try_into().expect("failed to convert Users"), + ); + + users + .into_iter() + .map(|user| (user.nick.clone(), user)) + .collect() + } + None => HashMap::new(), + } }, irc_channels: { - let channels: Vec = Vec::::from_network( - &mut users_and_channels - .get("Channels") - .unwrap() - .try_into() - .unwrap(), - ); - channels - .into_iter() - .map(|channel| (channel.name.clone(), channel)) - .collect() + match users_and_channels.get("Channels") { + Some(channels) => { + let channels: Vec = + Vec::::from_network(&mut channels.try_into().unwrap()); + channels + .into_iter() + .map(|channel| (channel.name.clone(), channel)) + .collect() + } + None => HashMap::new(), + } }, supports: { i.position(|x| *x == Variant::ByteArray(String::from("Supports"))) -- cgit v1.2.3