aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/message/signalproxy/objects/mod.rs43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/message/signalproxy/objects/mod.rs b/src/message/signalproxy/objects/mod.rs
index 19a8dd1..a196add 100644
--- a/src/message/signalproxy/objects/mod.rs
+++ b/src/message/signalproxy/objects/mod.rs
@@ -37,6 +37,7 @@ use log::debug;
use super::{NetworkList, NetworkMap};
use crate::primitive::VariantList;
+use crate::Result;
/// Central Enum containing and identifying all Quassel Protocol Types:
///
@@ -77,31 +78,31 @@ pub enum Types {
}
impl Types {
- pub fn to_network(&self) -> VariantList {
+ pub fn to_network(&self) -> Result<VariantList> {
debug!("converting to network object: {:#?}", self);
- match self {
- Types::AliasManager(val) => val.to_network_list().unwrap(),
- Types::BufferSyncer(val) => val.to_network_list().unwrap(),
- Types::BufferViewConfig(val) => val.to_network_list().unwrap(),
- Types::BufferViewManager(val) => val.to_network_list().unwrap(),
+ Ok(match self {
+ Types::AliasManager(val) => val.to_network_list()?,
+ Types::BufferSyncer(val) => val.to_network_list()?,
+ Types::BufferViewConfig(val) => val.to_network_list()?,
+ Types::BufferViewManager(val) => val.to_network_list()?,
// Types::CoreInfo(val) => vec![val.to_network_map().into()],
- Types::CoreData(val) => vec![val.to_network_map().into()],
- Types::HighlightRuleManager(val) => val.to_network_list().unwrap(),
- Types::IgnoreListManager(val) => val.to_network_list().unwrap(),
- Types::CertManager(val) => val.to_network_list().unwrap(),
- Types::Network(val) => val.to_network_list().unwrap(),
- Types::NetworkInfo(val) => val.to_network_list().unwrap(),
- Types::NetworkConfig(val) => val.to_network_list().unwrap(),
- Types::IrcChannel(val) => val.to_network_list().unwrap(),
+ Types::CoreData(val) => vec![val.to_network_map()?.into()],
+ Types::HighlightRuleManager(val) => val.to_network_list()?,
+ Types::IgnoreListManager(val) => val.to_network_list()?,
+ Types::CertManager(val) => val.to_network_list()?,
+ Types::Network(val) => val.to_network_list()?,
+ Types::NetworkInfo(val) => val.to_network_list()?,
+ Types::NetworkConfig(val) => val.to_network_list()?,
+ Types::IrcChannel(val) => val.to_network_list()?,
Types::Unknown(val) => *val.clone(),
- }
+ })
}
- pub fn from_network(class_name: &str, object_name: &str, input: &mut VariantList) -> Self {
+ pub fn from_network(class_name: &str, object_name: &str, input: &mut VariantList) -> Result<Self> {
debug!("converting {} from network object: {:#?}", class_name, input);
- match class_name {
- "AliasManager" => Types::AliasManager(Box::new(AliasManager::from_network_list(input).unwrap())),
- "BufferSyncer" => Types::BufferSyncer(Box::new(BufferSyncer::from_network_list(input).unwrap())),
+ Ok(match class_name {
+ "AliasManager" => Types::AliasManager(Box::new(AliasManager::from_network_list(input)?)),
+ "BufferSyncer" => Types::BufferSyncer(Box::new(BufferSyncer::from_network_list(input)?)),
"BufferViewConfig" => {
let mut config = BufferViewConfig::from_network_list(input).unwrap();
config.buffer_view_id = object_name.parse().unwrap();
@@ -115,7 +116,7 @@ impl Types {
// )),
"CoreData" => Types::CoreData(Box::new(CoreData::from_network_map(
&mut input.remove(0).try_into().unwrap(),
- ))),
+ )?)),
"HighlightRuleManager" => {
Types::HighlightRuleManager(Box::new(HighlightRuleManager::from_network_list(input).unwrap()))
}
@@ -130,6 +131,6 @@ impl Types {
}
"IrcChannel" => Types::IrcChannel(Box::new(IrcChannel::from_network_list(input).unwrap())),
_ => Types::Unknown(Box::new(input.to_owned())),
- }
+ })
}
}