diff --git a/src/config.rs b/src/config.rs index d2f82e7..45b0475 100644 --- a/src/config.rs +++ b/src/config.rs @@ -11,7 +11,7 @@ use structopt::{clap::Shell, StructOpt}; pub const DEFAULT_PEER_TIMEOUT: u16 = 300; pub const DEFAULT_PORT: u16 = 3210; -#[derive(Deserialize, Debug, PartialEq, Clone)] +#[derive(Deserialize, Debug, PartialEq, Eq, Clone)] pub struct Config { pub device_type: Type, pub device_name: String, @@ -622,7 +622,7 @@ pub enum Command { }, } -#[derive(Serialize, Deserialize, Debug, PartialEq, Default)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Default)] #[serde(rename_all = "kebab-case", deny_unknown_fields, default)] pub struct ConfigFileDevice { #[serde(rename = "type")] @@ -633,7 +633,7 @@ pub struct ConfigFileDevice { pub fix_rp_filter: Option, } -#[derive(Serialize, Deserialize, Debug, PartialEq, Default)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Default)] #[serde(rename_all = "kebab-case", deny_unknown_fields, default)] pub struct ConfigFileBeacon { pub store: Option, @@ -642,14 +642,14 @@ pub struct ConfigFileBeacon { pub password: Option, } -#[derive(Serialize, Deserialize, Debug, PartialEq, Default)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Default)] #[serde(rename_all = "kebab-case", deny_unknown_fields, default)] pub struct ConfigFileStatsd { pub server: Option, pub prefix: Option, } -#[derive(Serialize, Deserialize, Debug, PartialEq, Default)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Default)] #[serde(rename_all = "kebab-case", deny_unknown_fields, default)] pub struct ConfigFile { pub device: Option, diff --git a/src/crypto/common.rs b/src/crypto/common.rs index bf7e147..c22e4e1 100644 --- a/src/crypto/common.rs +++ b/src/crypto/common.rs @@ -47,7 +47,7 @@ pub struct Algorithms { pub allow_unencrypted: bool, } -#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq)] +#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq, Eq)] #[serde(rename_all = "kebab-case", deny_unknown_fields, default)] pub struct Config { pub password: Option, @@ -201,13 +201,14 @@ impl Crypto { } } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub enum MessageResult { Message(u8), Reply, None, } +#[allow(clippy::large_enum_variant)] pub enum PeerCrypto { Encrypted { last_init_message: Vec, diff --git a/src/crypto/init.rs b/src/crypto/init.rs index 3a1c23a..d75684d 100644 --- a/src/crypto/init.rs +++ b/src/crypto/init.rs @@ -384,7 +384,7 @@ impl InitMsg { } } -#[derive(PartialEq, Debug)] +#[derive(PartialEq, Eq, Debug)] pub enum InitResult { Continue, Success { peer_payload: P, is_initiator: bool }, diff --git a/src/device.rs b/src/device.rs index 6e2aea8..bfe0c73 100644 --- a/src/device.rs +++ b/src/device.rs @@ -34,7 +34,7 @@ impl IfReq { } /// The type of a tun/tap device -#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq)] +#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq)] pub enum Type { /// Tun interface: This interface transports IP packets. #[serde(rename = "tun")] diff --git a/src/engine/shared.rs b/src/engine/shared.rs index a4446ad..76f0c99 100644 --- a/src/engine/shared.rs +++ b/src/engine/shared.rs @@ -19,6 +19,7 @@ use std::{ use super::common::PeerData; #[derive(Clone)] +#[allow(clippy::type_complexity)] pub struct SharedPeerCrypto { peers: Arc>, Hash>>>, cache: HashMap>, Hash>, //TODO: local hashmap as cache diff --git a/src/engine/socket_thread.rs b/src/engine/socket_thread.rs index afdea54..79f2a4d 100644 --- a/src/engine/socket_thread.rs +++ b/src/engine/socket_thread.rs @@ -89,6 +89,7 @@ pub struct SocketThread { } impl SocketThread { + #[allow(clippy::too_many_arguments)] pub fn new( config: Config, device: D, socket: S, traffic: SharedTraffic, peer_crypto: SharedPeerCrypto, table: SharedTable, port_forwarding: Option, stats_file: Option, diff --git a/src/messages.rs b/src/messages.rs index 4c5f261..2919eaf 100644 --- a/src/messages.rs +++ b/src/messages.rs @@ -23,13 +23,13 @@ pub const MESSAGE_TYPE_CLOSE: u8 = 0xff; pub type AddrList = SmallVec<[SocketAddr; 4]>; pub type PeerList = SmallVec<[PeerInfo; 16]>; -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub struct PeerInfo { pub node_id: Option, pub addrs: AddrList, } -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub struct NodeInfo { pub node_id: NodeId, pub peers: PeerList, diff --git a/src/oldconfig.rs b/src/oldconfig.rs index 0411e87..8c84fa7 100644 --- a/src/oldconfig.rs +++ b/src/oldconfig.rs @@ -6,7 +6,7 @@ use super::{device::Type, types::Mode, util::Duration}; use crate::config::{ConfigFile, ConfigFileBeacon, ConfigFileDevice, ConfigFileStatsd, CryptoConfig}; use std::collections::HashMap; -#[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Copy)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone, Copy)] pub enum OldCryptoMethod { #[serde(rename = "chacha20")] ChaCha20, @@ -16,7 +16,7 @@ pub enum OldCryptoMethod { AES128, } -#[derive(Serialize, Deserialize, Debug, PartialEq, Default)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Default)] pub struct OldConfigFile { #[serde(alias = "device-type")] pub device_type: Option, diff --git a/src/types.rs b/src/types.rs index 785b58e..b917042 100644 --- a/src/types.rs +++ b/src/types.rs @@ -190,7 +190,7 @@ impl fmt::Debug for Range { } } -#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq)] +#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq)] pub enum Mode { #[serde(rename = "normal")] Normal, diff --git a/src/util.rs b/src/util.rs index 80beddd..152b805 100644 --- a/src/util.rs +++ b/src/util.rs @@ -379,7 +379,7 @@ pub fn from_base62(data: &str) -> Result, char> { let mut buf = Vec::with_capacity(data.len() / 2 + data.len() / 4); for c in data.chars() { let mut val = match c { - '0'..='9' => ((c as usize) % ('0' as usize)), + '0'..='9' => (c as usize) % ('0' as usize), 'A'..='Z' => ((c as usize) % ('A' as usize)) + 10, 'a'..='z' => ((c as usize) % ('a' as usize)) + 36, _ => return Err(c),