aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2021-07-21 18:24:39 +0200
committerMax Audron <audron@cocaine.farm>2021-07-21 18:24:39 +0200
commit11284c56bb064c81d23e8d9f73c6a20171f89876 (patch)
tree7c4956b6138a1ef449db4821ed241d36a19a3b23
parentminor docs and cleanup (diff)
fix network object
-rw-r--r--src/message/signalproxy/objects/network.rs42
1 files changed, 24 insertions, 18 deletions
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<IrcUser> = Vec::<IrcUser>::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<IrcUser> = Vec::<IrcUser>::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<IrcChannel> = Vec::<IrcChannel>::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<IrcChannel> =
+ Vec::<IrcChannel>::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")))