aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--derive/src/from/mod.rs3
-rw-r--r--derive/src/lib.rs2
-rw-r--r--derive/src/network/list.rs12
-rw-r--r--derive/src/network/map.rs14
-rw-r--r--derive/src/network/maplist.rs20
-rw-r--r--derive/src/network/mod.rs6
-rw-r--r--derive/src/setters/mod.rs4
-rw-r--r--src/lib.rs1
-rw-r--r--src/message/handshake/clientinit.rs2
-rw-r--r--src/message/handshake/clientinitack.rs2
-rw-r--r--src/message/handshake/clientinitreject.rs2
-rw-r--r--src/message/handshake/clientlogin.rs2
-rw-r--r--src/message/handshake/clientloginack.rs2
-rw-r--r--src/message/handshake/connack.rs4
-rw-r--r--src/message/handshake/features.rs27
-rw-r--r--src/message/handshake/init.rs11
-rw-r--r--src/message/handshake/protocol.rs4
-rw-r--r--src/message/handshake/sessioninit.rs6
-rw-r--r--src/message/handshake/types.rs6
-rw-r--r--src/message/signalproxy/heartbeat.rs26
-rw-r--r--src/message/signalproxy/initdata.rs2
-rw-r--r--src/message/signalproxy/initrequest.rs15
-rw-r--r--src/message/signalproxy/mod.rs18
-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
-rw-r--r--src/message/signalproxy/rpccall/client.rs2
-rw-r--r--src/message/signalproxy/rpccall/identity.rs4
-rw-r--r--src/message/signalproxy/rpccall/mod.rs4
-rw-r--r--src/message/signalproxy/rpccall/network.rs6
-rw-r--r--src/message/signalproxy/rpccall/passwordchange.rs6
-rw-r--r--src/message/signalproxy/syncmessage.rs12
-rw-r--r--src/primitive/bufferid.rs2
-rw-r--r--src/primitive/bufferinfo.rs12
-rw-r--r--src/primitive/datetime.rs15
-rw-r--r--src/primitive/identityid.rs2
-rw-r--r--src/primitive/message.rs12
-rw-r--r--src/primitive/msgid.rs2
-rw-r--r--src/primitive/networkid.rs2
-rw-r--r--src/primitive/peerptr.rs2
-rw-r--r--src/primitive/string.rs16
-rw-r--r--src/primitive/stringlist.rs7
-rw-r--r--src/primitive/unsignedint.rs8
-rw-r--r--src/primitive/variant.rs24
-rw-r--r--src/primitive/variantlist.rs4
-rw-r--r--src/primitive/variantmap.rs6
-rw-r--r--src/serialize.rs2
-rw-r--r--src/session.rs20
54 files changed, 242 insertions, 259 deletions
diff --git a/derive/src/from/mod.rs b/derive/src/from/mod.rs
index ee92016..7fd81bf 100644
--- a/derive/src/from/mod.rs
+++ b/derive/src/from/mod.rs
@@ -1,5 +1,4 @@
use quote::quote;
-use syn;
use syn::parse_macro_input;
use darling::{FromDeriveInput, FromVariant};
@@ -40,7 +39,7 @@ pub fn from(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let derives = fields
.iter()
- .filter(|field| field.fields.fields.len() > 0 && !field.ignore)
+ .filter(|field| !field.fields.fields.is_empty() && !field.ignore)
.map(|field| {
let variant = &field.ident;
let inner_type = &field.fields.fields[0];
diff --git a/derive/src/lib.rs b/derive/src/lib.rs
index 11b3689..1af459f 100644
--- a/derive/src/lib.rs
+++ b/derive/src/lib.rs
@@ -1,5 +1,3 @@
-use syn;
-
mod from;
mod network;
mod setters;
diff --git a/derive/src/network/list.rs b/derive/src/network/list.rs
index 1fc8f7e..e0bbfa8 100644
--- a/derive/src/network/list.rs
+++ b/derive/src/network/list.rs
@@ -3,18 +3,18 @@ use quote::quote;
use super::{get_field_variant_type, NetworkField};
-pub(crate) fn to(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
+pub(crate) fn to(fields: &[NetworkField]) -> Vec<TokenStream> {
fields
.iter()
.map(|field| {
if !field.skip {
let field_rename = match &field.rename {
Some(name) => name.clone(),
- None => format!("{}", field.ident.as_ref().unwrap()).into(),
+ None => format!("{}", field.ident.as_ref().unwrap()),
};
let field_name = field.ident.as_ref().unwrap();
- let field_type = get_field_variant_type(&field);
+ let field_type = get_field_variant_type(field);
let field_inner = match field.network {
crate::network::NetworkRepr::List => {
@@ -37,7 +37,7 @@ pub(crate) fn to(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
.collect()
}
-pub(crate) fn from(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
+pub(crate) fn from(fields: &[NetworkField]) -> Vec<TokenStream> {
fields
.iter()
.map(|field| {
@@ -45,10 +45,10 @@ pub(crate) fn from(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
let field_rename = match &field.rename {
Some(name) => name.clone(),
- None => format!("{}", field.ident.as_ref().unwrap()).into(),
+ None => format!("{}", field.ident.as_ref().unwrap()),
};
- let field_variant_type = get_field_variant_type(&field);
+ let field_variant_type = get_field_variant_type(field);
let extract_inner = if field.default {
quote! {
diff --git a/derive/src/network/map.rs b/derive/src/network/map.rs
index 4efc3bf..ead71c7 100644
--- a/derive/src/network/map.rs
+++ b/derive/src/network/map.rs
@@ -3,18 +3,18 @@ use quote::quote;
use super::{get_field_variant_type, NetworkField};
-pub(crate) fn to(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
+pub(crate) fn to(fields: &[NetworkField]) -> Vec<TokenStream> {
fields
.iter()
.map(|field| {
if !field.skip {
let field_rename = match &field.rename {
Some(name) => name.clone(),
- None => format!("{}", field.ident.as_ref().unwrap()).into(),
+ None => format!("{}", field.ident.as_ref().unwrap()),
};
let field_name = field.ident.as_ref().unwrap();
- let field_variant_type = get_field_variant_type(&field);
+ let field_variant_type = get_field_variant_type(field);
let field_inner = match field.network {
crate::network::NetworkRepr::List => quote! {
@@ -39,7 +39,7 @@ pub(crate) fn to(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
.collect()
}
-pub(crate) fn from(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
+pub(crate) fn from(fields: &[NetworkField]) -> Vec<TokenStream> {
fields
.iter()
.map(|field| {
@@ -53,7 +53,7 @@ pub(crate) fn from(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
let field_rename = match &field.rename {
Some(name) => name.clone(),
- None => format!("{}", field.ident.as_ref().unwrap()).into(),
+ None => format!("{}", field.ident.as_ref().unwrap()),
};
match field.network {
@@ -73,7 +73,7 @@ pub(crate) fn from(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
.collect()
}
-pub(crate) fn to_vec(_type_name: &Ident, _fields: &Vec<NetworkField>) -> TokenStream {
+pub(crate) fn to_vec(_type_name: &Ident, _fields: &[NetworkField]) -> TokenStream {
quote! {
self.iter().map(|item| {
item.to_network_map().into()
@@ -81,7 +81,7 @@ pub(crate) fn to_vec(_type_name: &Ident, _fields: &Vec<NetworkField>) -> TokenSt
}
}
-pub(crate) fn from_vec(type_name: &Ident, _fields: &Vec<NetworkField>) -> TokenStream {
+pub(crate) fn from_vec(type_name: &Ident, _fields: &[NetworkField]) -> TokenStream {
quote! {
input.iter().map(
|item| #type_name::from_network_map(
diff --git a/derive/src/network/maplist.rs b/derive/src/network/maplist.rs
index b5b4a86..21ea524 100644
--- a/derive/src/network/maplist.rs
+++ b/derive/src/network/maplist.rs
@@ -5,14 +5,14 @@ use crate::network::{gen_type, get_field_type};
use super::NetworkField;
-pub(crate) fn to(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
+pub(crate) fn to(fields: &[NetworkField]) -> Vec<TokenStream> {
fields
.iter()
.map(|field| {
if !field.skip {
let field_rename = match &field.rename {
Some(name) => name.clone(),
- None => format!("{}", field.ident.as_ref().unwrap()).into(),
+ None => format!("{}", field.ident.as_ref().unwrap()),
};
let field_name = field.ident.as_ref().unwrap();
@@ -49,7 +49,7 @@ pub(crate) fn to(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
.collect()
}
-pub(crate) fn to_vec(_type_name: &Ident, fields: &Vec<NetworkField>) -> TokenStream {
+pub(crate) fn to_vec(_type_name: &Ident, fields: &[NetworkField]) -> TokenStream {
let (lists, for_each_inner, map_inserts): (
Vec<TokenStream>,
Vec<TokenStream>,
@@ -60,7 +60,7 @@ pub(crate) fn to_vec(_type_name: &Ident, fields: &Vec<NetworkField>) -> TokenStr
if !field.skip {
let field_rename = match &field.rename {
Some(name) => name.clone(),
- None => format!("{}", field.ident.as_ref().unwrap()).into(),
+ None => format!("{}", field.ident.as_ref().unwrap()),
};
let field_name = field.ident.as_ref().unwrap();
@@ -68,7 +68,7 @@ pub(crate) fn to_vec(_type_name: &Ident, fields: &Vec<NetworkField>) -> TokenStr
let field_type = match field.network {
crate::network::NetworkRepr::List => gen_type("VariantList"),
crate::network::NetworkRepr::Map => gen_type("VariantMap"),
- crate::network::NetworkRepr::None => get_field_type(&field),
+ crate::network::NetworkRepr::None => get_field_type(field),
};
let field_inner = match field.network {
@@ -112,7 +112,7 @@ pub(crate) fn to_vec(_type_name: &Ident, fields: &Vec<NetworkField>) -> TokenStr
}
}
- return (lists, for_each_inner, map_inserts);
+ (lists, for_each_inner, map_inserts)
},
);
@@ -131,7 +131,7 @@ pub(crate) fn to_vec(_type_name: &Ident, fields: &Vec<NetworkField>) -> TokenStr
}
}
-pub(crate) fn from(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
+pub(crate) fn from(fields: &[NetworkField]) -> Vec<TokenStream> {
fields
.iter()
.map(|field| {
@@ -145,7 +145,7 @@ pub(crate) fn from(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
let field_rename = match &field.rename {
Some(name) => name.clone(),
- None => format!("{}", field.ident.as_ref().unwrap()).into(),
+ None => format!("{}", field.ident.as_ref().unwrap()),
};
let field_inner = match field.network {
@@ -179,12 +179,12 @@ pub(crate) fn from(fields: &Vec<NetworkField>) -> Vec<TokenStream> {
.collect()
}
-pub(crate) fn from_vec(type_name: &Ident, fields: &Vec<NetworkField>) -> TokenStream {
+pub(crate) fn from_vec(type_name: &Ident, fields: &[NetworkField]) -> TokenStream {
let field = &fields[0];
let field_rename = match &field.rename {
Some(name) => name.clone(),
- None => format!("{}", field.ident.as_ref().unwrap()).into(),
+ None => format!("{}", field.ident.as_ref().unwrap()),
};
let field_variant = if field.stringlist {
diff --git a/derive/src/network/mod.rs b/derive/src/network/mod.rs
index 8214556..f2ead96 100644
--- a/derive/src/network/mod.rs
+++ b/derive/src/network/mod.rs
@@ -102,12 +102,12 @@ pub fn network_map(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let to_network_map = match network.repr {
Repr::Maplist => maplist::to(&fields),
- Repr::Map | _ => map::to(&fields),
+ _ => map::to(&fields),
};
let from_network_map = match network.repr {
Repr::Maplist => maplist::from(&fields),
- Repr::Map | _ => map::from(&fields),
+ _ => map::from(&fields),
};
let mut gen = quote! {
@@ -220,7 +220,7 @@ fn get_field_type(field: &NetworkField) -> syn::Type {
fn get_field_variant_type(field: &NetworkField) -> syn::Type {
match &field.variant {
- Some(ty) => gen_type(&ty),
+ Some(ty) => gen_type(ty),
None => get_field_type(field),
}
}
diff --git a/derive/src/setters/mod.rs b/derive/src/setters/mod.rs
index b3d2dd1..79fb011 100644
--- a/derive/src/setters/mod.rs
+++ b/derive/src/setters/mod.rs
@@ -70,7 +70,7 @@ pub fn setters(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let mut res = String::new();
for c in raw_name.chars().rev() {
- if c <= 'Z' && c >= 'A' {
+ if c.is_ascii_uppercase() {
res.push(c.to_ascii_lowercase());
break;
} else {
@@ -119,5 +119,5 @@ pub fn setters(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
}
};
- return gen.into();
+ gen.into()
}
diff --git a/src/lib.rs b/src/lib.rs
index d3d7d03..378cd91 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,5 +1,6 @@
#![doc = include_str!("../README.md")]
#![cfg_attr(all(test, feature = "bench"), feature(test))]
+#![allow(clippy::too_many_arguments)]
#[cfg(all(test, feature = "bench"))]
extern crate test;
diff --git a/src/message/handshake/clientinit.rs b/src/message/handshake/clientinit.rs
index 94d52cf..9d35243 100644
--- a/src/message/handshake/clientinit.rs
+++ b/src/message/handshake/clientinit.rs
@@ -59,7 +59,7 @@ impl HandshakeSerialize for ClientInit {
"FeatureList".to_string(),
Variant::StringList(self.feature_list.clone()),
);
- return HandshakeSerialize::serialize(&values);
+ HandshakeSerialize::serialize(&values)
}
}
diff --git a/src/message/handshake/clientinitack.rs b/src/message/handshake/clientinitack.rs
index 21e65de..f3f4640 100644
--- a/src/message/handshake/clientinitack.rs
+++ b/src/message/handshake/clientinitack.rs
@@ -41,7 +41,7 @@ impl HandshakeSerialize for ClientInitAck {
"FeatureList".to_string(),
Variant::StringList(self.feature_list.clone()),
);
- return HandshakeSerialize::serialize(&values);
+ HandshakeSerialize::serialize(&values)
}
}
diff --git a/src/message/handshake/clientinitreject.rs b/src/message/handshake/clientinitreject.rs
index 7c4bb72..fca5388 100644
--- a/src/message/handshake/clientinitreject.rs
+++ b/src/message/handshake/clientinitreject.rs
@@ -17,7 +17,7 @@ impl HandshakeSerialize for ClientInitReject {
Variant::String("ClientInitReject".to_string()),
);
values.insert("ErrorString".to_string(), Variant::String(self.error.clone()));
- return HandshakeSerialize::serialize(&values);
+ HandshakeSerialize::serialize(&values)
}
}
diff --git a/src/message/handshake/clientlogin.rs b/src/message/handshake/clientlogin.rs
index b619e48..4be4442 100644
--- a/src/message/handshake/clientlogin.rs
+++ b/src/message/handshake/clientlogin.rs
@@ -16,7 +16,7 @@ impl HandshakeSerialize for ClientLogin {
values.insert("MsgType".to_string(), Variant::String("ClientLogin".to_string()));
values.insert("User".to_string(), Variant::String(self.user.clone()));
values.insert("Password".to_string(), Variant::String(self.password.clone()));
- return HandshakeSerialize::serialize(&values);
+ HandshakeSerialize::serialize(&values)
}
}
diff --git a/src/message/handshake/clientloginack.rs b/src/message/handshake/clientloginack.rs
index 8a12f60..de26274 100644
--- a/src/message/handshake/clientloginack.rs
+++ b/src/message/handshake/clientloginack.rs
@@ -14,7 +14,7 @@ impl HandshakeSerialize for ClientLoginAck {
"MsgType".to_string(),
Variant::String("ClientLoginAck".to_string()),
);
- return HandshakeSerialize::serialize(&values);
+ HandshakeSerialize::serialize(&values)
}
}
diff --git a/src/message/handshake/connack.rs b/src/message/handshake/connack.rs
index d325cb9..e3accdd 100644
--- a/src/message/handshake/connack.rs
+++ b/src/message/handshake/connack.rs
@@ -47,13 +47,13 @@ impl crate::serialize::Deserialize for ConnAck {
let (elen, extra) = i16::parse(&b[flen..])?;
let (vlen, version) = i8::parse(&b[(flen + elen)..])?;
- return Ok((
+ Ok((
flen + elen + vlen,
Self {
flags,
extra,
version,
},
- ));
+ ))
}
}
diff --git a/src/message/handshake/features.rs b/src/message/handshake/features.rs
index e7557e9..af967d4 100644
--- a/src/message/handshake/features.rs
+++ b/src/message/handshake/features.rs
@@ -49,19 +49,18 @@ pub enum Feature {
impl Feature {
pub fn get() -> StringList {
- let mut features = StringList::new();
- features.push("ExtendedFeatures".to_string());
- #[cfg(feature = "long-message-id")]
- features.push("LongMessageId".to_string());
- #[cfg(feature = "long-time")]
- features.push("LongTime".to_string());
- #[cfg(feature = "rich-messages")]
- features.push("RichMessages".to_string());
- #[cfg(feature = "sender-prefixes")]
- features.push("SenderPrefixes".to_string());
- #[cfg(feature = "authenticators")]
- features.push("Authenticators".to_string());
-
- return features;
+ vec![
+ "ExtendedFeatures".to_string(),
+ #[cfg(feature = "long-message-id")]
+ "LongMessageId".to_string(),
+ #[cfg(feature = "long-time")]
+ "LongTime".to_string(),
+ #[cfg(feature = "rich-messages")]
+ "RichMessages".to_string(),
+ #[cfg(feature = "sender-prefixes")]
+ "SenderPrefixes".to_string(),
+ #[cfg(feature = "authenticators")]
+ "Authenticators".to_string(),
+ ]
}
}
diff --git a/src/message/handshake/init.rs b/src/message/handshake/init.rs
index 9f011ed..e303802 100644
--- a/src/message/handshake/init.rs
+++ b/src/message/handshake/init.rs
@@ -1,7 +1,7 @@
use crate::serialize::{Deserialize, Serialize};
/// The first few bytes sent to the core to initialize the connection and setup if we want to use tls and compression
-#[derive(Clone, Debug)]
+#[derive(Clone, Debug, Default)]
pub struct Init {
pub tls: bool,
pub compression: bool,
@@ -9,10 +9,7 @@ pub struct Init {
impl Init {
pub fn new() -> Self {
- Self {
- tls: false,
- compression: false,
- }
+ Self::default()
}
pub fn compression(mut self, v: bool) -> Self {
@@ -47,7 +44,7 @@ impl Init {
init.extend(handshake.serialize().unwrap());
init.extend(crate::message::Protocol::Datastream.serialize());
- return init;
+ init
}
pub fn parse(buf: &[u8]) -> Self {
@@ -66,6 +63,6 @@ impl Init {
init.tls = true
}
- return init;
+ init
}
}
diff --git a/src/message/handshake/protocol.rs b/src/message/handshake/protocol.rs
index 73a82b9..2a7d9ac 100644
--- a/src/message/handshake/protocol.rs
+++ b/src/message/handshake/protocol.rs
@@ -1,13 +1,15 @@
use crate::serialize::{Deserialize, Serialize};
+#[derive(Debug, Default)]
pub enum Protocol {
Legacy = 0x00000001,
+ #[default]
Datastream = 0x00000002,
}
impl Protocol {
pub fn new() -> Self {
- Protocol::Datastream
+ Protocol::default()
}
pub fn serialize(self) -> Vec<u8> {
diff --git a/src/message/handshake/sessioninit.rs b/src/message/handshake/sessioninit.rs
index e2a29ad..b3a0932 100644
--- a/src/message/handshake/sessioninit.rs
+++ b/src/message/handshake/sessioninit.rs
@@ -37,7 +37,7 @@ impl From<VariantMap> for SessionInit {
network_ids: network_ids
.iter()
.map(|network| match network {
- Variant::NetworkId(network) => network.clone(),
+ Variant::NetworkId(network) => *network,
_ => unimplemented!(),
})
.collect(),
@@ -72,10 +72,10 @@ impl HandshakeSerialize for SessionInit {
Variant::VariantList(
self.network_ids
.iter()
- .map(|id| Variant::NetworkId(id.clone()))
+ .map(|id| Variant::NetworkId(*id))
.collect(),
),
);
- return HandshakeSerialize::serialize(&values);
+ HandshakeSerialize::serialize(&values)
}
}
diff --git a/src/message/handshake/types.rs b/src/message/handshake/types.rs
index bebeb4c..9bd8aec 100644
--- a/src/message/handshake/types.rs
+++ b/src/message/handshake/types.rs
@@ -10,7 +10,7 @@ use crate::message::handshake::{HandshakeDeserialize, HandshakeSerialize};
use crate::primitive::VariantMap;
impl HandshakeSerialize for VariantMap {
- fn serialize<'a>(&'a self) -> Result<Vec<u8>, ProtocolError> {
+ fn serialize(&self) -> Result<Vec<u8>, ProtocolError> {
let mut res: Vec<u8> = Vec::new();
for (k, v) in self {
@@ -22,7 +22,7 @@ impl HandshakeSerialize for VariantMap {
let len: i32 = (self.len() * 2).try_into().unwrap();
util::insert_bytes(0, &mut res, &mut (len).to_be_bytes());
- return Ok(res);
+ Ok(res)
}
}
@@ -47,7 +47,7 @@ impl HandshakeDeserialize for VariantMap {
};
}
- return Ok((pos, map));
+ Ok((pos, map))
}
}
diff --git a/src/message/signalproxy/heartbeat.rs b/src/message/signalproxy/heartbeat.rs
index 7bb5b19..e7d17f3 100644
--- a/src/message/signalproxy/heartbeat.rs
+++ b/src/message/signalproxy/heartbeat.rs
@@ -10,18 +10,17 @@ pub struct HeartBeat {
impl Serialize for HeartBeat {
fn serialize(&self) -> Result<Vec<std::primitive::u8>, ProtocolError> {
- let mut res = VariantList::new();
-
- res.push(Variant::i32(MessageType::HeartBeat as i32));
- res.push(Variant::DateTime(self.timestamp.clone()));
-
- res.serialize()
+ vec![
+ Variant::i32(MessageType::HeartBeat as i32),
+ Variant::DateTime(self.timestamp),
+ ]
+ .serialize()
}
}
impl Deserialize for HeartBeat {
fn parse(b: &[std::primitive::u8]) -> Result<(std::primitive::usize, Self), ProtocolError> {
- let (size, mut res) = VariantList::parse(&b)?;
+ let (size, mut res) = VariantList::parse(b)?;
res.remove(0);
@@ -41,18 +40,17 @@ pub struct HeartBeatReply {
impl Serialize for HeartBeatReply {
fn serialize(&self) -> Result<Vec<std::primitive::u8>, ProtocolError> {
- let mut res = VariantList::new();
-
- res.push(Variant::i32(MessageType::HeartBeatReply as i32));
- res.push(Variant::DateTime(self.timestamp.clone()));
-
- res.serialize()
+ vec![
+ Variant::i32(MessageType::HeartBeatReply as i32),
+ Variant::DateTime(self.timestamp),
+ ]
+ .serialize()
}
}
impl Deserialize for HeartBeatReply {
fn parse(b: &[std::primitive::u8]) -> Result<(std::primitive::usize, Self), ProtocolError> {
- let (size, mut res) = VariantList::parse(&b)?;
+ let (size, mut res) = VariantList::parse(b)?;
res.remove(0);
diff --git a/src/message/signalproxy/initdata.rs b/src/message/signalproxy/initdata.rs
index f95e0b2..c2ca6c6 100644
--- a/src/message/signalproxy/initdata.rs
+++ b/src/message/signalproxy/initdata.rs
@@ -28,7 +28,7 @@ impl Serialize for InitData {
impl Deserialize for InitData {
fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> {
- let (size, mut res) = VariantList::parse(&b)?;
+ let (size, mut res) = VariantList::parse(b)?;
res.remove(0);
diff --git a/src/message/signalproxy/initrequest.rs b/src/message/signalproxy/initrequest.rs
index bf2f200..592a703 100644
--- a/src/message/signalproxy/initrequest.rs
+++ b/src/message/signalproxy/initrequest.rs
@@ -11,19 +11,18 @@ pub struct InitRequest {
impl Serialize for InitRequest {
fn serialize(&self) -> Result<Vec<std::primitive::u8>, ProtocolError> {
- let mut res = VariantList::new();
-
- res.push(Variant::i32(MessageType::InitRequest as i32));
- res.push(Variant::ByteArray(self.class_name.clone()));
- res.push(Variant::ByteArray(self.object_name.clone()));
-
- res.serialize()
+ vec![
+ Variant::i32(MessageType::InitRequest as i32),
+ Variant::ByteArray(self.class_name.clone()),
+ Variant::ByteArray(self.object_name.clone()),
+ ]
+ .serialize()
}
}
impl Deserialize for InitRequest {
fn parse(b: &[std::primitive::u8]) -> Result<(std::primitive::usize, Self), ProtocolError> {
- let (size, mut res) = VariantList::parse(&b)?;
+ let (size, mut res) = VariantList::parse(b)?;
res.remove(0);
diff --git a/src/message/signalproxy/mod.rs b/src/message/signalproxy/mod.rs
index 5107e9b..90cf7e5 100644
--- a/src/message/signalproxy/mod.rs
+++ b/src/message/signalproxy/mod.rs
@@ -131,6 +131,7 @@ where
where
Self: Sized,
{
+ #[allow(clippy::match_single_binding)]
match msg.slot_name.as_str() {
_ => (),
}
@@ -170,6 +171,7 @@ pub trait StatefulSyncableClient: Syncable + translation::NetworkMap {
where
Self: Sized,
{
+ #[allow(clippy::match_single_binding)]
match msg.slot_name.as_str() {
_ => (),
}
@@ -199,7 +201,7 @@ pub enum Message {
/// Bidirectional
RpcCall(RpcCall),
InitRequest(InitRequest),
- InitData(InitData),
+ InitData(Box<InitData>),
/// Bidirectional
HeartBeat(HeartBeat),
/// Bidirectional
@@ -238,32 +240,32 @@ impl Deserialize for Message {
match MessageType::from(message_type) {
MessageType::SyncMessage => {
- let (size, res) = SyncMessage::parse(&b)?;
+ let (size, res) = SyncMessage::parse(b)?;
Ok((size, Message::SyncMessage(res)))
}
MessageType::RpcCall => {
- let (size, res) = RpcCall::parse(&b)?;
+ let (size, res) = RpcCall::parse(b)?;
Ok((size, Message::RpcCall(res)))
}
MessageType::InitRequest => {
- let (size, res) = InitRequest::parse(&b)?;
+ let (size, res) = InitRequest::parse(b)?;
Ok((size, Message::InitRequest(res)))
}
MessageType::InitData => {
- let (size, res) = InitData::parse(&b)?;
+ let (size, res) = InitData::parse(b)?;
- Ok((size, Message::InitData(res)))
+ Ok((size, Message::InitData(Box::new(res))))
}
MessageType::HeartBeat => {
- let (size, res) = HeartBeat::parse(&b)?;
+ let (size, res) = HeartBeat::parse(b)?;
Ok((size, Message::HeartBeat(res)))
}
MessageType::HeartBeatReply => {
- let (size, res) = HeartBeatReply::parse(&b)?;
+ let (size, res) = HeartBeatReply::parse(b)?;
Ok((size, Message::HeartBeatReply(res)))
}
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)))
}
}
diff --git a/src/message/signalproxy/rpccall/client.rs b/src/message/signalproxy/rpccall/client.rs
index 818b32c..7e31135 100644
--- a/src/message/signalproxy/rpccall/client.rs
+++ b/src/message/signalproxy/rpccall/client.rs
@@ -15,7 +15,7 @@ impl RpcCallType for KickClient {
fn to_network(&self) -> Result<Vec<crate::primitive::Variant>, crate::ProtocolError> {
Ok(vec![
Variant::ByteArray(Self::NAME.to_string()),
- self.id.clone().into(),
+ self.id.into(),
])
}
diff --git a/src/message/signalproxy/rpccall/identity.rs b/src/message/signalproxy/rpccall/identity.rs
index 1672e98..15beec4 100644
--- a/src/message/signalproxy/rpccall/identity.rs
+++ b/src/message/signalproxy/rpccall/identity.rs
@@ -54,7 +54,7 @@ impl RpcCallType for RemoveIdentity {
fn to_network(&self) -> Result<Vec<crate::primitive::Variant>, crate::ProtocolError> {
Ok(vec![
Variant::ByteArray(Self::NAME.to_string()),
- Variant::IdentityId(self.identity_id.clone()),
+ Variant::IdentityId(self.identity_id),
])
}
@@ -120,7 +120,7 @@ impl RpcCallType for IdentityRemoved {
fn to_network(&self) -> Result<Vec<crate::primitive::Variant>, crate::ProtocolError> {
Ok(vec![
Variant::ByteArray(Self::NAME.to_string()),
- Variant::IdentityId(self.identity_id.clone()),
+ Variant::IdentityId(self.identity_id),
])
}
diff --git a/src/message/signalproxy/rpccall/mod.rs b/src/message/signalproxy/rpccall/mod.rs
index c30d462..2a3e7b1 100644
--- a/src/message/signalproxy/rpccall/mod.rs
+++ b/src/message/signalproxy/rpccall/mod.rs
@@ -106,7 +106,7 @@ impl Serialize for RpcCall {
impl Deserialize for RpcCall {
fn parse(b: &[std::primitive::u8]) -> Result<(std::primitive::usize, Self), ProtocolError> {
- let (size, mut res) = VariantList::parse(&b)?;
+ let (size, mut res) = VariantList::parse(b)?;
res.remove(0);
@@ -130,7 +130,7 @@ impl Deserialize for RpcCall {
DisconnectFromCore::NAME => DisconnectFromCore::from_network(size, &mut res),
ObjectRenamed::NAME => ObjectRenamed::from_network(size, &mut res),
BufferInfoUpdated::NAME => BufferInfoUpdated::from_network(size, &mut res),
- _ => return Ok((size, RpcCall::NotImplemented)),
+ _ => Ok((size, RpcCall::NotImplemented)),
}
}
}
diff --git a/src/message/signalproxy/rpccall/network.rs b/src/message/signalproxy/rpccall/network.rs
index aeb3f80..738dddf 100644
--- a/src/message/signalproxy/rpccall/network.rs
+++ b/src/message/signalproxy/rpccall/network.rs
@@ -53,7 +53,7 @@ impl RpcCallType for RemoveNetwork {
fn to_network(&self) -> Result<Vec<crate::primitive::Variant>, crate::ProtocolError> {
Ok(vec![
Variant::ByteArray(Self::NAME.to_string()),
- self.network_id.clone().into(),
+ self.network_id.into(),
])
}
@@ -86,7 +86,7 @@ impl RpcCallType for NetworkCreated {
fn to_network(&self) -> Result<Vec<crate::primitive::Variant>, crate::ProtocolError> {
Ok(vec![
Variant::ByteArray(Self::NAME.to_string()),
- self.network_id.clone().into(),
+ self.network_id.into(),
])
}
@@ -119,7 +119,7 @@ impl RpcCallType for NetworkRemoved {
fn to_network(&self) -> Result<Vec<crate::primitive::Variant>, crate::ProtocolError> {
Ok(vec![
Variant::ByteArray(Self::NAME.to_string()),
- self.network_id.clone().into(),
+ self.network_id.into(),
])
}
diff --git a/src/message/signalproxy/rpccall/passwordchange.rs b/src/message/signalproxy/rpccall/passwordchange.rs
index b96b926..16bf78f 100644
--- a/src/message/signalproxy/rpccall/passwordchange.rs
+++ b/src/message/signalproxy/rpccall/passwordchange.rs
@@ -21,7 +21,7 @@ impl RpcCallType for ChangePassword {
fn to_network(&self) -> Result<Vec<crate::primitive::Variant>, crate::ProtocolError> {
Ok(vec![
Variant::ByteArray(Self::NAME.to_string()),
- self.peer.clone().into(),
+ self.peer.into(),
self.user.clone().into(),
self.before.clone().into(),
self.after.clone().into(),
@@ -64,8 +64,8 @@ impl RpcCallType for PasswordChanged {
fn to_network(&self) -> Result<Vec<crate::primitive::Variant>, crate::ProtocolError> {
Ok(vec![
Variant::ByteArray(Self::NAME.to_string()),
- self.peer.clone().into(),
- self.success.clone().into(),
+ self.peer.into(),
+ self.success.into(),
])
}
diff --git a/src/message/signalproxy/syncmessage.rs b/src/message/signalproxy/syncmessage.rs
index bb61d7c..b124d07 100644
--- a/src/message/signalproxy/syncmessage.rs
+++ b/src/message/signalproxy/syncmessage.rs
@@ -90,12 +90,12 @@ pub struct SyncMessage {
impl Serialize for SyncMessage {
fn serialize(&self) -> Result<Vec<std::primitive::u8>, ProtocolError> {
- let mut res = VariantList::new();
-
- res.push(Variant::i32(MessageType::SyncMessage as i32));
- res.push(Variant::ByteArray(self.class_name.as_str().to_owned()));
- res.push(Variant::ByteArray(self.object_name.clone()));
- res.push(Variant::ByteArray(self.slot_name.clone()));
+ let mut res = vec![
+ Variant::i32(MessageType::SyncMessage as i32),
+ Variant::ByteArray(self.class_name.as_str().to_owned()),
+ Variant::ByteArray(self.object_name.clone()),
+ Variant::ByteArray(self.slot_name.clone()),
+ ];
res.append(&mut self.params.clone());
diff --git a/src/primitive/bufferid.rs b/src/primitive/bufferid.rs
index 334e976..7d9b2bc 100644
--- a/src/primitive/bufferid.rs
+++ b/src/primitive/bufferid.rs
@@ -23,7 +23,7 @@ impl Serialize for BufferId {
impl Deserialize for BufferId {
fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> {
let (size, value) = i32::parse(b)?;
- return Ok((size, BufferId(value)));
+ Ok((size, BufferId(value)))
}
}
diff --git a/src/primitive/bufferinfo.rs b/src/primitive/bufferinfo.rs
index 56d5cce..25edd0f 100644
--- a/src/primitive/bufferinfo.rs
+++ b/src/primitive/bufferinfo.rs
@@ -46,7 +46,7 @@ impl Deserialize for BufferInfo {
// TODO is groupid
let (size, name) = String::parse_utf8(&b[14..])?;
- return Ok((
+ Ok((
14 + size,
Self {
id,
@@ -54,7 +54,7 @@ impl Deserialize for BufferInfo {
buffer_type: BufferType::from(buffer_type),
name,
},
- ));
+ ))
}
}
@@ -75,10 +75,10 @@ pub enum BufferType {
impl From<i16> for BufferType {
fn from(value: i16) -> Self {
match value {
- 0x01 => return Self::Status,
- 0x02 => return Self::Channel,
- 0x04 => return Self::Query,
- 0x08 => return Self::Group,
+ 0x01 => Self::Status,
+ 0x02 => Self::Channel,
+ 0x04 => Self::Query,
+ 0x08 => Self::Group,
_ => unimplemented!(),
}
}
diff --git a/src/primitive/datetime.rs b/src/primitive/datetime.rs
index 42f6d14..13c367b 100644
--- a/src/primitive/datetime.rs
+++ b/src/primitive/datetime.rs
@@ -48,7 +48,7 @@ impl Serialize for OffsetDateTime {
fn serialize(&self) -> Result<Vec<u8>, ProtocolError> {
let mut values: Vec<u8> = Vec::new();
- values.extend(i32::serialize(&(self.date().to_julian_day() as i32))?);
+ values.extend(i32::serialize(&self.date().to_julian_day())?);
let time: i32 = {
let hour: i32 = self.time().hour() as i32;
@@ -82,21 +82,20 @@ impl Deserialize for OffsetDateTime {
return Ok((pos, OffsetDateTime::UNIX_EPOCH));
}
- let offset: UtcOffset;
- match zone {
+ let offset = match zone {
TimeSpec::LocalUnknown | TimeSpec::LocalStandard | TimeSpec::LocalDST => {
- offset = UtcOffset::current_local_offset().unwrap_or_else(|_| {
+ UtcOffset::current_local_offset().unwrap_or_else(|_| {
log::warn!("could not get local offset defaulting to utc");
UtcOffset::UTC
})
}
- TimeSpec::UTC => offset = UtcOffset::UTC,
+ TimeSpec::UTC => UtcOffset::UTC,
TimeSpec::OffsetFromUTC => {
let (_, tmp_offset) = i32::parse(&b[9..13])?;
pos += 4;
- offset = UtcOffset::from_whole_seconds(tmp_offset).unwrap_or(UtcOffset::UTC)
+ UtcOffset::from_whole_seconds(tmp_offset).unwrap_or(UtcOffset::UTC)
}
- }
+ };
let date = Date::from_julian_day(julian_day)?;
@@ -121,7 +120,7 @@ impl Serialize for Date {
fn serialize(&self) -> Result<Vec<std::primitive::u8>, ProtocolError> {
let mut values: Vec<u8> = Vec::new();
- values.extend(i32::serialize(&(self.to_julian_day() as i32))?);
+ values.extend(i32::serialize(&self.to_julian_day())?);
Ok(values)
}
diff --git a/src/primitive/identityid.rs b/src/primitive/identityid.rs
index 850cfb5..309bd29 100644
--- a/src/primitive/identityid.rs
+++ b/src/primitive/identityid.rs
@@ -20,7 +20,7 @@ impl Serialize for IdentityId {
impl Deserialize for IdentityId {
fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> {
let (size, value) = i32::parse(b)?;
- return Ok((size, IdentityId(value)));
+ Ok((size, IdentityId(value)))
}
}
diff --git a/src/primitive/message.rs b/src/primitive/message.rs
index 624ff49..e558570 100644
--- a/src/primitive/message.rs
+++ b/src/primitive/message.rs
@@ -60,7 +60,7 @@ impl Serialize for Message {
values.append(&mut i32::serialize(&(self.timestamp as i32))?);
values.append(&mut i32::serialize(&(self.msg_type.bits()))?);
- values.append(&mut i8::serialize(&(self.flags as i8))?);
+ values.append(&mut i8::serialize(&self.flags)?);
values.append(&mut BufferInfo::serialize(&self.buffer)?);
values.append(&mut String::serialize_utf8(&self.sender)?);
@@ -75,7 +75,7 @@ impl Serialize for Message {
values.append(&mut String::serialize_utf8(&self.content)?);
- return Ok(values);
+ Ok(values)
}
}
@@ -138,7 +138,7 @@ impl Deserialize for Message {
let (parsed, content) = String::parse_utf8(&b[pos..])?;
pos += parsed;
- return Ok((
+ Ok((
pos,
Self {
msg_id,
@@ -155,7 +155,7 @@ impl Deserialize for Message {
avatar_url,
content,
},
- ));
+ ))
}
}
@@ -203,7 +203,7 @@ where
res.push((*v).clone().bits().into());
});
- return res;
+ res
}
fn from_network_list(input: &mut VariantList) -> Self {
@@ -224,7 +224,7 @@ where
);
});
- return res;
+ res
}
}
diff --git a/src/primitive/msgid.rs b/src/primitive/msgid.rs
index 9ae8d9c..dcf9727 100644
--- a/src/primitive/msgid.rs
+++ b/src/primitive/msgid.rs
@@ -27,7 +27,7 @@ impl Deserialize for MsgId {
let (size, value) = i32::parse(b)?;
#[cfg(feature = "long-message-id")]
let (size, value) = i64::parse(b)?;
- return Ok((size, MsgId(value)));
+ Ok((size, MsgId(value)))
}
}
diff --git a/src/primitive/networkid.rs b/src/primitive/networkid.rs
index 1cfff61..6eead73 100644
--- a/src/primitive/networkid.rs
+++ b/src/primitive/networkid.rs
@@ -20,7 +20,7 @@ impl Serialize for NetworkId {
impl Deserialize for NetworkId {
fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> {
let (size, value) = i32::parse(b)?;
- return Ok((size, NetworkId(value)));
+ Ok((size, NetworkId(value)))
}
}
diff --git a/src/primitive/peerptr.rs b/src/primitive/peerptr.rs
index 499be41..f5fc042 100644
--- a/src/primitive/peerptr.rs
+++ b/src/primitive/peerptr.rs
@@ -23,7 +23,7 @@ impl Serialize for PeerPtr {
impl Deserialize for PeerPtr {
fn parse(b: &[u8]) -> Result<(usize, Self), crate::error::ProtocolError> {
let (size, value) = i64::parse(b)?;
- return Ok((size, PeerPtr(value)));
+ Ok((size, PeerPtr(value)))
}
}
diff --git a/src/primitive/string.rs b/src/primitive/string.rs
index 7f8ec58..0d3e344 100644
--- a/src/primitive/string.rs
+++ b/src/primitive/string.rs
@@ -14,7 +14,7 @@ impl Deserialize for char {
let (slen, qchar): (usize, u16) = u16::parse(&b[0..2])?;
let qchar = char::from_u32(qchar as u32).ok_or(ProtocolError::CharError)?;
- return Ok((slen, qchar));
+ Ok((slen, qchar))
}
}
@@ -23,7 +23,7 @@ impl Serialize for char {
let mut b = [0, 0];
self.encode_utf16(&mut b);
- return Ok(b[0].to_be_bytes().to_vec());
+ Ok(b[0].to_be_bytes().to_vec())
}
}
@@ -55,13 +55,13 @@ impl VariantType for String {
/// Strings can only be serialized as UTF-8 null-terminated ByteArrays with (de)serialize_utf8().
impl Serialize for &str {
fn serialize(&self) -> Result<Vec<u8>, ProtocolError> {
- let mut res: Vec<u8> = Vec::new();
+ let mut res = Vec::new();
self.encode_utf16()
.for_each(|i| res.extend(i.to_be_bytes().iter()));
util::prepend_byte_len(&mut res);
- return Ok(res);
+ Ok(res)
}
}
@@ -70,7 +70,7 @@ impl SerializeUTF8 for &str {
let mut res: Vec<u8> = Vec::new();
res.extend(self.bytes());
util::prepend_byte_len(&mut res);
- return Ok(res);
+ Ok(res)
}
}
@@ -101,7 +101,7 @@ impl Deserialize for String {
let res: String = String::from_utf16(&chars).unwrap();
trace!("parsed string: {}", res);
- return Ok((pos, res));
+ Ok((pos, res))
}
}
@@ -123,14 +123,14 @@ impl DeserializeUTF8 for String {
// If the last byte is zero remove it
// Receiving a string as bytearray will sometimes have
// the string null terminated
- if res.chars().last().unwrap() == '\u{0}' {
+ if res.ends_with('\u{0}') {
let _ = res.pop();
}
trace!("parsed string after trunc: {}", res);
trace!("parsed bytes: {:x?}", &b[0..ulen]);
- return Ok((ulen + 4, res));
+ Ok((ulen + 4, res))
}
}
diff --git a/src/primitive/stringlist.rs b/src/primitive/stringlist.rs
index 292557f..c4ce733 100644
--- a/src/primitive/stringlist.rs
+++ b/src/primitive/stringlist.rs
@@ -24,7 +24,7 @@ impl Serialize for StringList {
res.extend(x.serialize()?);
}
- return Ok(res);
+ Ok(res)
}
}
@@ -43,7 +43,7 @@ impl Deserialize for StringList {
}
}
- return Ok((pos, res));
+ Ok((pos, res))
}
}
@@ -70,8 +70,7 @@ pub fn string_list_deserialize() {
0, 0, 0, 1, 0, 0, 0, 20, 0, 67, 0, 111, 0, 110, 0, 102, 0, 105, 0, 103, 0, 117, 0, 114, 0, 101, 0,
100, 0, 0, 0, 1,
];
- let mut test_list = StringList::new();
- test_list.push("Configured".to_string());
+ let test_list = vec!["Configured".to_string()];
let (len, res) = StringList::parse(test_bytes).unwrap();
assert_eq!(len, 28);
assert_eq!(test_list, res);
diff --git a/src/primitive/unsignedint.rs b/src/primitive/unsignedint.rs
index a51ca6f..8176a9d 100644
--- a/src/primitive/unsignedint.rs
+++ b/src/primitive/unsignedint.rs
@@ -44,7 +44,7 @@ impl Serialize for u64 {
impl Deserialize for u64 {
fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> {
let mut rdr = Cursor::new(&b[0..8]);
- return Ok((8, rdr.read_u64::<BigEndian>()?));
+ Ok((8, rdr.read_u64::<BigEndian>()?))
}
}
@@ -61,7 +61,7 @@ impl Serialize for u32 {
impl Deserialize for u32 {
fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> {
let mut rdr = Cursor::new(&b[0..4]);
- return Ok((4, rdr.read_u32::<BigEndian>()?));
+ Ok((4, rdr.read_u32::<BigEndian>()?))
}
}
@@ -78,7 +78,7 @@ impl Serialize for u16 {
impl Deserialize for u16 {
fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> {
let mut rdr = Cursor::new(&b[0..2]);
- return Ok((2, rdr.read_u16::<BigEndian>()?));
+ Ok((2, rdr.read_u16::<BigEndian>()?))
}
}
@@ -94,7 +94,7 @@ impl Serialize for u8 {
impl Deserialize for u8 {
fn parse(b: &[u8]) -> Result<(usize, Self), ProtocolError> {
- return Ok((1, b[0]));
+ Ok((1, b[0]))
}
}
diff --git a/src/primitive/variant.rs b/src/primitive/variant.rs
index 61e6752..14a96a7 100644
--- a/src/primitive/variant.rs
+++ b/src/primitive/variant.rs
@@ -100,7 +100,7 @@ where
res.push((*v).clone().into());
});
- return res;
+ res
}
fn from_network_list(input: &mut VariantList) -> Self {
@@ -119,7 +119,7 @@ where
);
});
- return res;
+ res
}
}
@@ -136,12 +136,12 @@ where
res.insert(k.clone(), (*v).clone().into());
});
- return res;
+ res
}
fn from_network_map(input: &mut Self::Item) -> Self {
input
- .into_iter()
+ .iter_mut()
.map(|(k, v)| {
(
k.clone(),
@@ -217,14 +217,14 @@ impl Deserialize for Variant {
let len = 5;
match qtype {
- VariantMap::TYPE => return VariantMap::parse_variant(b, len),
- VariantList::TYPE => return VariantList::parse_variant(b, len),
- char::TYPE => return char::parse_variant(b, len),
+ VariantMap::TYPE => VariantMap::parse_variant(b, len),
+ VariantList::TYPE => VariantList::parse_variant(b, len),
+ char::TYPE => char::parse_variant(b, len),
String::TYPE => String::parse_variant(b, len),
primitive::QBYTEARRAY => {
trace!(target: "primitive::Variant", "Parsing Variant: ByteArray");
let (vlen, value) = String::parse_utf8(&b[len..])?;
- return Ok((len + vlen, Variant::ByteArray(value.clone())));
+ Ok((len + vlen, Variant::ByteArray(value.clone())))
}
StringList::TYPE => StringList::parse_variant(b, len),
DateTime::TYPE => DateTime::parse_variant(b, len),
@@ -265,7 +265,7 @@ impl Deserialize for Variant {
}
err => {
error!(target: "parser", "UnknownVariant: {:x?}", err);
- return Err(ProtocolError::UnknownVariant);
+ Err(ProtocolError::UnknownVariant)
}
}
}
@@ -392,8 +392,7 @@ mod tests {
#[test]
pub fn variantlist_serialize() {
- let mut test_variantlist = VariantList::new();
- test_variantlist.push(Variant::bool(true));
+ let test_variantlist = vec![Variant::bool(true)];
assert_eq!(
test_variantlist.serialize().unwrap(),
[0, 0, 0, 1, 0, 0, 0, 1, 0, 1]
@@ -404,8 +403,7 @@ mod tests {
pub fn variantlist_deserialize() {
let test_bytes: &[u8] = &[0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1];
let (len, res) = VariantList::parse(test_bytes).unwrap();
- let mut test_variantlist = VariantList::new();
- test_variantlist.push(Variant::bool(true));
+ let test_variantlist = vec![Variant::bool(true)];
assert_eq!(len, 10);
assert_eq!(res, test_variantlist);
}
diff --git a/src/primitive/variantlist.rs b/src/primitive/variantlist.rs
index 20913ff..2b5d58e 100644
--- a/src/primitive/variantlist.rs
+++ b/src/primitive/variantlist.rs
@@ -24,7 +24,7 @@ impl Serialize for VariantList {
res.extend(v.serialize()?.iter());
}
- return Ok(res);
+ Ok(res)
}
}
@@ -43,7 +43,7 @@ impl Deserialize for VariantList {
pos += vlen;
}
- return Ok((pos, res));
+ Ok((pos, res))
}
}
diff --git a/src/primitive/variantmap.rs b/src/primitive/variantmap.rs
index 4953f25..f84afd2 100644
--- a/src/primitive/variantmap.rs
+++ b/src/primitive/variantmap.rs
@@ -17,7 +17,7 @@ use crate::serialize::VariantType;
pub type VariantMap = HashMap<String, Variant>;
impl Serialize for VariantMap {
- fn serialize<'a>(&'a self) -> Result<Vec<u8>, ProtocolError> {
+ fn serialize(&self) -> Result<Vec<u8>, ProtocolError> {
let mut res: Vec<u8> = Vec::new();
for (k, v) in self {
@@ -28,7 +28,7 @@ impl Serialize for VariantMap {
let len: i32 = self.len().try_into()?;
util::insert_bytes(0, &mut res, &mut len.to_be_bytes());
- return Ok(res);
+ Ok(res)
}
}
@@ -51,7 +51,7 @@ impl Deserialize for VariantMap {
map.insert(name, value);
}
- return Ok((pos, map));
+ Ok((pos, map))
}
}
diff --git a/src/serialize.rs b/src/serialize.rs
index dffd0c3..cc03172 100644
--- a/src/serialize.rs
+++ b/src/serialize.rs
@@ -163,7 +163,7 @@ where
{
fn parse_variant(b: &[u8], len: usize) -> Result<(usize, Variant), ProtocolError> {
let (vlen, value) = Self::parse(&b[len..])?;
- return Ok((len + vlen, value.into()));
+ Ok((len + vlen, value.into()))
}
}
diff --git a/src/session.rs b/src/session.rs
index d4a788b..6b00916 100644
--- a/src/session.rs
+++ b/src/session.rs
@@ -170,17 +170,17 @@ pub trait SessionManager {
/// TODO handle automatic sending of InitRequest for whatever objects will need that.
fn init(&mut self, data: InitData) {
match data.init_data {
- Types::AliasManager(data) => self.alias_manager().init(data),
- Types::BufferSyncer(data) => self.buffer_syncer().init(data),
- Types::BufferViewConfig(data) => self.buffer_view_manager().init_buffer_view_config(data),
- Types::BufferViewManager(data) => self.buffer_view_manager().init(data),
- Types::CoreData(data) => self.core_info().set_core_data(data),
- Types::HighlightRuleManager(data) => self.highlight_rule_manager().init(data),
- Types::IgnoreListManager(data) => self.ignore_list_manager().init(data),
- Types::CertManager(data) => self.cert_manager().init(data),
+ Types::AliasManager(data) => self.alias_manager().init(*data),
+ Types::BufferSyncer(data) => self.buffer_syncer().init(*data),
+ Types::BufferViewConfig(data) => self.buffer_view_manager().init_buffer_view_config(*data),
+ Types::BufferViewManager(data) => self.buffer_view_manager().init(*data),
+ Types::CoreData(data) => self.core_info().set_core_data(*data),
+ Types::HighlightRuleManager(data) => self.highlight_rule_manager().init(*data),
+ Types::IgnoreListManager(data) => self.ignore_list_manager().init(*data),
+ Types::CertManager(data) => self.cert_manager().init(*data),
Types::Network(network) => {
let id: NetworkId = NetworkId(data.object_name.parse().unwrap());
- self.networks().insert(id, network);
+ self.networks().insert(id, *network);
}
Types::NetworkInfo(_) => (),
Types::NetworkConfig(_) => (),
@@ -189,7 +189,7 @@ pub trait SessionManager {
let id: i32 = name.next().unwrap().parse().unwrap();
let name = name.next().unwrap();
if let Some(network) = self.network(id) {
- network.add_channel(name, channel)
+ network.add_channel(name, *channel)
}
}
Types::Unknown(_) => (),