aboutsummaryrefslogtreecommitdiff
path: root/src/message/signalproxy/objects
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/message/signalproxy/objects/bufferviewmanager.rs26
-rw-r--r--src/message/signalproxy/objects/coreinfo.rs1
-rw-r--r--src/message/signalproxy/objects/highlightrulemanager.rs2
-rw-r--r--src/message/signalproxy/objects/identity.rs2
-rw-r--r--src/message/signalproxy/objects/ircchannel.rs4
-rw-r--r--src/message/signalproxy/objects/ircuser.rs2
-rw-r--r--src/message/signalproxy/objects/mod.rs62
-rw-r--r--src/message/signalproxy/objects/network.rs39
-rw-r--r--src/message/signalproxy/objects/networkinfo.rs2
9 files changed, 66 insertions, 74 deletions
diff --git a/src/message/signalproxy/objects/bufferviewmanager.rs b/src/message/signalproxy/objects/bufferviewmanager.rs
index 683d937..1097ade 100644
--- a/src/message/signalproxy/objects/bufferviewmanager.rs
+++ b/src/message/signalproxy/objects/bufferviewmanager.rs
@@ -133,23 +133,16 @@ impl Syncable for BufferViewManager {
impl super::NetworkList for BufferViewManager {
fn to_network_list(&self) -> VariantList {
- let mut res = Vec::with_capacity(2);
-
- res.push(Variant::ByteArray(s!("bufferViewIds")));
- res.push(Variant::VariantList(
- self.buffer_view_configs
- .iter()
- .map(|(k, _)| i32::try_into(*k).unwrap())
- .collect(),
- ));
-
- return res;
+ vec![
+ Variant::ByteArray(s!("bufferViewIds")),
+ Variant::VariantList(self.buffer_view_configs.keys().map(|k| i32::into(*k)).collect()),
+ ]
}
fn from_network_list(input: &mut VariantList) -> Self {
let mut i = input.iter();
i.position(|x| *x == Variant::ByteArray(String::from("BufferViewIds")))
- .expect(format!("failed to get field BufferViewIds").as_str());
+ .expect("failed to get field BufferViewIds");
let ids = match i.next().expect("failed to get next field") {
libquassel::primitive::Variant::VariantList(var) => var.clone(),
@@ -174,15 +167,10 @@ impl super::NetworkMap for BufferViewManager {
res.insert(
s!("bufferViewIds"),
- Variant::VariantList(
- self.buffer_view_configs
- .iter()
- .map(|(k, _)| i32::try_into(*k).unwrap())
- .collect(),
- ),
+ Variant::VariantList(self.buffer_view_configs.keys().map(|k| i32::into(*k)).collect()),
);
- return res;
+ res
}
fn from_network_map(_input: &mut Self::Item) -> Self {
diff --git a/src/message/signalproxy/objects/coreinfo.rs b/src/message/signalproxy/objects/coreinfo.rs
index 4567762..5036abd 100644
--- a/src/message/signalproxy/objects/coreinfo.rs
+++ b/src/message/signalproxy/objects/coreinfo.rs
@@ -26,6 +26,7 @@ impl crate::message::StatefulSyncableClient for CoreInfo {
where
Self: Sized,
{
+ #[allow(clippy::single_match)]
match msg.slot_name.as_str() {
"setCoreData" => self.set_core_data(CoreData::from_network_map(&mut get_param!(msg))),
_ => (),
diff --git a/src/message/signalproxy/objects/highlightrulemanager.rs b/src/message/signalproxy/objects/highlightrulemanager.rs
index 0f1569a..7accb17 100644
--- a/src/message/signalproxy/objects/highlightrulemanager.rs
+++ b/src/message/signalproxy/objects/highlightrulemanager.rs
@@ -223,8 +223,10 @@ impl From<HighlightNickType> for Variant {
}
}
+// TODO error handling
impl From<Variant> for HighlightNickType {
fn from(value: Variant) -> Self {
+ #[allow(clippy::unnecessary_fallible_conversions)]
HighlightNickType::try_from(value).unwrap()
}
}
diff --git a/src/message/signalproxy/objects/identity.rs b/src/message/signalproxy/objects/identity.rs
index 6aa9830..ec7d9b4 100644
--- a/src/message/signalproxy/objects/identity.rs
+++ b/src/message/signalproxy/objects/identity.rs
@@ -81,7 +81,7 @@ impl Deserialize for Identity {
Self: std::marker::Sized,
{
let (vlen, mut value) = VariantMap::parse(b)?;
- return Ok((vlen, Self::from_network_map(&mut value)));
+ Ok((vlen, Self::from_network_map(&mut value)))
}
}
diff --git a/src/message/signalproxy/objects/ircchannel.rs b/src/message/signalproxy/objects/ircchannel.rs
index 9ca3474..9648210 100644
--- a/src/message/signalproxy/objects/ircchannel.rs
+++ b/src/message/signalproxy/objects/ircchannel.rs
@@ -47,7 +47,7 @@ impl Deserialize for IrcChannel {
Self: std::marker::Sized,
{
let (vlen, mut value) = VariantMap::parse(b)?;
- return Ok((vlen, Self::from_network_map(&mut value)));
+ Ok((vlen, Self::from_network_map(&mut value)))
}
}
@@ -155,7 +155,7 @@ impl IrcChannel {
None => warn!("tried to remove a user that is not joined to the channel"),
}
- if self.user_modes.len() == 0
+ if self.user_modes.is_empty()
/* nick.is_me() */
{
// TODO Clean up channel and delete
diff --git a/src/message/signalproxy/objects/ircuser.rs b/src/message/signalproxy/objects/ircuser.rs
index 1969793..3b807ed 100644
--- a/src/message/signalproxy/objects/ircuser.rs
+++ b/src/message/signalproxy/objects/ircuser.rs
@@ -59,7 +59,7 @@ impl Deserialize for IrcUser {
Self: std::marker::Sized,
{
let (vlen, mut value) = VariantMap::parse(b)?;
- return Ok((vlen, Self::from_network_map(&mut value)));
+ Ok((vlen, Self::from_network_map(&mut value)))
}
}
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())),
}
}
}
diff --git a/src/message/signalproxy/objects/network.rs b/src/message/signalproxy/objects/network.rs
index a606537..3d2ee8b 100644
--- a/src/message/signalproxy/objects/network.rs
+++ b/src/message/signalproxy/objects/network.rs
@@ -71,23 +71,19 @@ impl Network {
let default_prefixes = vec!['~', '&', '@', '%', '+'];
let default_prefix_modes = vec!['q', 'a', 'o', 'h', 'v'];
- match self.supports.get("PREFIX") {
- Some(prefix) => {
- if prefix.starts_with('(') {
- let (prefix_modes, prefixes) = prefix[1..].split_once(')').unwrap();
-
- self.prefix_modes = prefix_modes.chars().collect();
- self.prefixes = prefixes.chars().collect();
- } else {
- self.prefixes = default_prefixes;
- self.prefix_modes = default_prefix_modes;
- }
- }
- None => {
- self.prefixes = default_prefixes;
- self.prefix_modes = default_prefix_modes;
+ if let Some(prefix) = self.supports.get("PREFIX") {
+ if let Some(prefix) = prefix.strip_prefix('(') {
+ let (prefix_modes, prefixes) = prefix.split_once(')').unwrap();
+
+ self.prefix_modes = prefix_modes.chars().collect();
+ self.prefixes = prefixes.chars().collect();
+
+ return;
}
}
+
+ self.prefixes = default_prefixes;
+ self.prefix_modes = default_prefix_modes;
}
pub fn add_channel(&mut self, name: &str, channel: IrcChannel) {
@@ -280,6 +276,7 @@ impl crate::message::StatefulSyncableServer for Network {
impl crate::message::signalproxy::NetworkList for Network {
fn to_network_list(&self) -> VariantList {
+ #![allow(clippy::vec_init_then_push)]
let mut res = VariantList::new();
res.push(Variant::ByteArray(s!("myNick")));
@@ -449,7 +446,7 @@ impl crate::message::signalproxy::NetworkList for Network {
network.determine_channel_mode_types();
network.determine_prefixes();
- return network;
+ network
}
}
@@ -526,7 +523,7 @@ impl crate::message::signalproxy::NetworkMap for Network {
res.extend(self.network_info.to_network_map());
- return res;
+ res
}
fn from_network_map(input: &mut Self::Item) -> Self {
@@ -648,7 +645,7 @@ impl Deserialize for NetworkServer {
Self: std::marker::Sized,
{
let (vlen, mut value) = VariantMap::parse(b)?;
- return Ok((vlen, Self::from_network_map(&mut value)));
+ Ok((vlen, Self::from_network_map(&mut value)))
}
}
@@ -802,9 +799,9 @@ impl Default for ConnectionState {
}
}
-impl Into<Variant> for ConnectionState {
- fn into(self) -> Variant {
- Variant::i32(self.to_i32().unwrap())
+impl From<ConnectionState> for Variant {
+ fn from(val: ConnectionState) -> Self {
+ Variant::i32(val.to_i32().unwrap())
}
}
diff --git a/src/message/signalproxy/objects/networkinfo.rs b/src/message/signalproxy/objects/networkinfo.rs
index 4cd84dc..ba944e8 100644
--- a/src/message/signalproxy/objects/networkinfo.rs
+++ b/src/message/signalproxy/objects/networkinfo.rs
@@ -88,7 +88,7 @@ impl Deserialize for NetworkInfo {
Self: std::marker::Sized,
{
let (vlen, mut value) = VariantMap::parse(b)?;
- return Ok((vlen, Self::from_network_map(&mut value)));
+ Ok((vlen, Self::from_network_map(&mut value)))
}
}