aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/message/signalproxy/objects/mod.rs')
-rw-r--r--src/message/signalproxy/objects/mod.rs62
1 files changed, 33 insertions, 29 deletions
diff --git a/src/message/signalproxy/objects/mod.rs b/src/message/signalproxy/objects/mod.rs
index 0fb16c6..999cd41 100644
--- a/src/message/signalproxy/objects/mod.rs
+++ b/src/message/signalproxy/objects/mod.rs
@@ -60,20 +60,20 @@ use crate::primitive::VariantList;
// TODO Handle SyncedCoreInfo feature flag
#[derive(Debug, Clone, PartialEq, From)]
pub enum Types {
- AliasManager(AliasManager),
- BufferSyncer(BufferSyncer),
- BufferViewConfig(BufferViewConfig),
- BufferViewManager(BufferViewManager),
- // CoreInfo(CoreInfo),
- CoreData(CoreData),
- HighlightRuleManager(HighlightRuleManager),
- IgnoreListManager(IgnoreListManager),
- CertManager(CertManager),
- Network(network::Network),
- NetworkInfo(NetworkInfo),
- NetworkConfig(NetworkConfig),
- IrcChannel(IrcChannel),
- Unknown(VariantList),
+ AliasManager(Box<AliasManager>),
+ BufferSyncer(Box<BufferSyncer>),
+ BufferViewConfig(Box<BufferViewConfig>),
+ BufferViewManager(Box<BufferViewManager>),
+ // CoreInfo(Box< CoreInfo >),
+ CoreData(Box<CoreData>),
+ HighlightRuleManager(Box<HighlightRuleManager>),
+ IgnoreListManager(Box<IgnoreListManager>),
+ CertManager(Box<CertManager>),
+ Network(Box<network::Network>),
+ NetworkInfo(Box<NetworkInfo>),
+ NetworkConfig(Box<NetworkConfig>),
+ IrcChannel(Box<IrcChannel>),
+ Unknown(Box<VariantList>),
}
impl Types {
@@ -93,37 +93,41 @@ impl Types {
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(),
+ Types::Unknown(val) => *val.clone(),
}
}
pub fn from_network(class_name: &str, object_name: &str, input: &mut VariantList) -> Self {
debug!("converting {} from network object: {:#?}", class_name, input);
match class_name {
- "AliasManager" => Types::AliasManager(AliasManager::from_network_list(input)),
- "BufferSyncer" => Types::BufferSyncer(BufferSyncer::from_network_list(input)),
+ "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);
config.buffer_view_id = object_name.parse().unwrap();
- Types::BufferViewConfig(config)
+ Types::BufferViewConfig(Box::new(config))
+ }
+ "BufferViewManager" => {
+ Types::BufferViewManager(Box::new(BufferViewManager::from_network_list(input)))
}
- "BufferViewManager" => Types::BufferViewManager(BufferViewManager::from_network_list(input)),
// "CoreInfo" => Types::CoreInfo(CoreInfo::from_network_map(
// &mut input.remove(0).try_into().unwrap(),
// )),
- "CoreData" => Types::CoreData(CoreData::from_network_map(
+ "CoreData" => Types::CoreData(Box::new(CoreData::from_network_map(
&mut input.remove(0).try_into().unwrap(),
- )),
+ ))),
"HighlightRuleManager" => {
- Types::HighlightRuleManager(HighlightRuleManager::from_network_list(input))
+ Types::HighlightRuleManager(Box::new(HighlightRuleManager::from_network_list(input)))
+ }
+ "IgnoreListManager" => {
+ Types::IgnoreListManager(Box::new(IgnoreListManager::from_network_list(input)))
}
- "IgnoreListManager" => Types::IgnoreListManager(IgnoreListManager::from_network_list(input)),
- "CertManager" => Types::CertManager(CertManager::from_network_list(input)),
- "Network" => Types::Network(Network::from_network_list(input)),
- "NetworkInfo" => Types::NetworkInfo(NetworkInfo::from_network_list(input)),
- "NetworkConfig" => Types::NetworkConfig(NetworkConfig::from_network_list(input)),
- "IrcChannel" => Types::IrcChannel(IrcChannel::from_network_list(input)),
- _ => Types::Unknown(input.to_owned()),
+ "CertManager" => Types::CertManager(Box::new(CertManager::from_network_list(input))),
+ "Network" => Types::Network(Box::new(Network::from_network_list(input))),
+ "NetworkInfo" => Types::NetworkInfo(Box::new(NetworkInfo::from_network_list(input))),
+ "NetworkConfig" => Types::NetworkConfig(Box::new(NetworkConfig::from_network_list(input))),
+ "IrcChannel" => Types::IrcChannel(Box::new(IrcChannel::from_network_list(input))),
+ _ => Types::Unknown(Box::new(input.to_owned())),
}
}
}