diff options
| author | Max Audron <me@audron.dev> | 2026-02-21 14:35:01 +0100 |
|---|---|---|
| committer | Max Audron <me@audron.dev> | 2026-02-21 14:35:01 +0100 |
| commit | f42ef4bec6d1c63c0d8564cfb06e996666dedbe3 (patch) | |
| tree | e526bf4cae5ecf798469acc157b14122d4a5e25a /src/message/signalproxy/objects | |
| parent | replace all match_variant instances with try_into (diff) | |
clean up clippy lints
Diffstat (limited to '')
| -rw-r--r-- | src/message/signalproxy/objects/bufferviewmanager.rs | 26 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/coreinfo.rs | 1 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/highlightrulemanager.rs | 2 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/identity.rs | 2 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/ircchannel.rs | 4 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/ircuser.rs | 2 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/mod.rs | 62 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/network.rs | 39 | ||||
| -rw-r--r-- | src/message/signalproxy/objects/networkinfo.rs | 2 |
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))) } } |
