Fix clippy feedback in lrwn crate.

This commit is contained in:
Orne Brocaar 2023-01-07 19:56:07 +00:00
parent e6fb1a5bc1
commit cee3dd8d9c
10 changed files with 79 additions and 81 deletions

View File

@ -10,7 +10,7 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer};
use crate::Error;
#[derive(Copy, Clone, PartialEq, AsExpression, FromSqlRow, Default)]
#[derive(Copy, Clone, PartialEq, Eq, AsExpression, FromSqlRow, Default)]
#[diesel(sql_type = diesel::sql_types::Binary)]
pub struct AES128Key([u8; 16]);

View File

@ -1,7 +1,7 @@
use anyhow::Result;
use serde::Serialize;
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub enum CFList {
Channels(CFListChannels),
ChannelMask(CFListChannelMasks),
@ -16,9 +16,7 @@ impl CFList {
match b[15] {
0x00 => Ok(CFList::Channels(CFListChannels::from_bytes(bb))),
0x01 => Ok(CFList::ChannelMask(CFListChannelMasks::from_bytes(bb))),
_ => {
return Err(anyhow!("unexpected CFListType"));
}
_ => Err(anyhow!("unexpected CFListType")),
}
}
@ -40,7 +38,7 @@ impl CFList {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct CFListChannels([u32; 5]);
impl CFListChannels {
@ -100,7 +98,7 @@ impl CFListChannels {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct CFListChannelMasks(Vec<ChMask>);
impl CFListChannelMasks {
@ -143,7 +141,7 @@ impl CFListChannelMasks {
/// ChMask encodes the channels usable for uplink access. 0 = channel 1,
/// 15 = channel 16.
#[derive(Serialize, Debug, PartialEq, Clone, Copy)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone, Copy)]
pub struct ChMask([bool; 16]);
impl ChMask {

View File

@ -27,13 +27,13 @@ impl DevAddrPrefix {
impl fmt::Display for DevAddrPrefix {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}/{}", hex::encode(&self.0), self.1)
write!(f, "{}/{}", hex::encode(self.0), self.1)
}
}
impl fmt::Debug for DevAddrPrefix {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}/{}", hex::encode(&self.0), self.1)
write!(f, "{}/{}", hex::encode(self.0), self.1)
}
}
@ -41,7 +41,7 @@ impl FromStr for DevAddrPrefix {
type Err = Error;
fn from_str(s: &str) -> Result<Self, Self::Err> {
let s = s.to_string();
let parts: Vec<&str> = s.split("/").collect();
let parts: Vec<&str> = s.split('/').collect();
if parts.len() != 2 {
return Err(Error::DevAddrPrefixFormat);
}
@ -51,7 +51,7 @@ impl FromStr for DevAddrPrefix {
}
let mut mask: [u8; 4] = [0; 4];
hex::decode_to_slice(&parts[0], &mut mask)?;
hex::decode_to_slice(parts[0], &mut mask)?;
let size: u32 = parts[1].parse().map_err(|_| Error::DevAddrPrefixFormat)?;
Ok(DevAddrPrefix(mask, size))
@ -93,7 +93,7 @@ impl<'de> Visitor<'de> for DevAddrPrefixVisitor {
}
}
#[derive(PartialEq, Copy, Clone, AsExpression, FromSqlRow, Default)]
#[derive(PartialEq, Eq, Copy, Clone, AsExpression, FromSqlRow, Default)]
#[diesel(sql_type = diesel::sql_types::Binary)]
pub struct DevAddr([u8; 4]);

View File

@ -1,7 +1,7 @@
use anyhow::Result;
use serde::Serialize;
#[derive(Serialize, PartialEq, Debug, Clone)]
#[derive(Serialize, PartialEq, Eq, Debug, Clone)]
pub struct DLSettings {
pub opt_neg: bool,
pub rx2_dr: u8,

View File

@ -4,7 +4,7 @@ use serde::Serialize;
use super::devaddr::DevAddr;
use super::maccommand::MACCommandSet;
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct FHDR {
pub devaddr: DevAddr,
pub f_ctrl: FCtrl,
@ -82,7 +82,7 @@ impl FHDR {
}
}
#[derive(Serialize, Default, Debug, PartialEq, Clone)]
#[derive(Serialize, Default, Debug, PartialEq, Eq, Clone)]
pub struct FCtrl {
pub adr: bool,
pub adr_ack_req: bool,

View File

@ -83,7 +83,7 @@ impl CID {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub enum MACCommand {
ResetInd(ResetIndPayload),
ResetConf(ResetConfPayload),
@ -170,7 +170,7 @@ impl MACCommand {
}
}
#[derive(Serialize, Debug, PartialEq, Clone, Copy)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone, Copy)]
pub enum Version {
LoRaWAN1_1,
}
@ -198,13 +198,13 @@ impl fmt::Display for Version {
}
}
#[derive(Serialize, Debug, PartialEq, Clone, Copy)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone, Copy)]
pub enum DwellTime {
NoLimit,
Limit400ms,
}
#[derive(Serialize, Debug, PartialEq, Clone, Copy)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone, Copy)]
pub enum DeviceModeClass {
ClassA,
ClassC,
@ -242,7 +242,7 @@ impl fmt::Display for DeviceModeClass {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct MACCommandSet(Vec<MACCommand>);
impl Deref for MACCommandSet {
@ -774,13 +774,13 @@ impl MACCommandSet {
}
}
return Err(anyhow!(
Err(anyhow!(
"MACCommandSet must contain exactly 1 MACCommand::Raw for decoding"
));
))
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct ResetIndPayload {
pub dev_lorawan_version: Version,
}
@ -803,7 +803,7 @@ impl ResetIndPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct ResetConfPayload {
pub serv_lorawan_version: Version,
}
@ -826,7 +826,7 @@ impl ResetConfPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct LinkCheckAnsPayload {
pub margin: u8,
pub gw_cnt: u8,
@ -851,7 +851,7 @@ impl LinkCheckAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct LinkADRReqPayload {
pub dr: u8,
pub tx_power: u8,
@ -894,7 +894,7 @@ impl LinkADRReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct Redundancy {
pub ch_mask_cntl: u8,
pub nb_rep: u8,
@ -922,7 +922,7 @@ impl Redundancy {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct LinkADRAnsPayload {
pub ch_mask_ack: bool,
pub dr_ack: bool,
@ -961,7 +961,7 @@ impl LinkADRAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct DutyCycleReqPayload {
pub max_duty_cycle: u8,
}
@ -988,7 +988,7 @@ impl DutyCycleReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct RxParamSetupReqPayload {
pub frequency: u32,
pub dl_settings: DLSettings,
@ -1029,7 +1029,7 @@ impl RxParamSetupReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct RxParamSetupAnsPayload {
pub channel_ack: bool,
pub rx2_dr_ack: bool,
@ -1066,7 +1066,7 @@ impl RxParamSetupAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct DevStatusAnsPayload {
pub battery: u8,
pub margin: i8,
@ -1110,7 +1110,7 @@ impl DevStatusAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct NewChannelReqPayload {
pub ch_index: u8,
pub freq: u32,
@ -1152,7 +1152,7 @@ impl NewChannelReqPayload {
// See Frequency Encoding in MAC Commands
// https://lora-developers.semtech.com/documentation/tech-papers-and-guides/physical-layer-proposal-2.4ghz/
if freq >= 2400000000 {
freq = freq / 2;
freq /= 2;
}
if freq / 100 >= (1 << 24) {
@ -1177,7 +1177,7 @@ impl NewChannelReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct NewChannelAnsPayload {
pub channel_freq_ok: bool,
pub dr_range_ok: bool,
@ -1209,7 +1209,7 @@ impl NewChannelAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct RxTimingSetupReqPayload {
pub delay: u8,
}
@ -1234,7 +1234,7 @@ impl RxTimingSetupReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct TxParamSetupReqPayload {
pub uplink_dwell_time: DwellTime,
pub downlink_dwell_time: DwellTime,
@ -1285,7 +1285,7 @@ impl TxParamSetupReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct DlChannelReqPayload {
pub ch_index: u8,
pub freq: u32,
@ -1327,7 +1327,7 @@ impl DlChannelReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct DlChannelAnsPayload {
pub uplink_freq_exists: bool,
pub channel_freq_ok: bool,
@ -1361,7 +1361,7 @@ impl DlChannelAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct RekeyConfPayload {
pub serv_lorawan_version: Version,
}
@ -1384,7 +1384,7 @@ impl RekeyConfPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct RekeyIndPayload {
pub dev_lorawan_version: Version,
}
@ -1407,7 +1407,7 @@ impl RekeyIndPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct ADRParamSetupReqPayload {
pub adr_param: ADRParam,
}
@ -1430,7 +1430,7 @@ impl ADRParamSetupReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct ADRParam {
pub limit_exp: u8,
pub delay_exp: u8,
@ -1462,7 +1462,7 @@ impl ADRParam {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct DeviceTimeAnsPayload {
pub time_since_gps_epoch: Duration,
}
@ -1496,7 +1496,7 @@ impl DeviceTimeAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct ForceRejoinReqPayload {
pub period: u8,
pub max_retries: u8,
@ -1541,7 +1541,7 @@ impl ForceRejoinReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct RejoinParamSetupReqPayload {
pub max_time_n: u8,
pub max_count_n: u8,
@ -1573,7 +1573,7 @@ impl RejoinParamSetupReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct RejoinParamSetupAnsPayload {
pub time_ok: bool,
}
@ -1600,7 +1600,7 @@ impl RejoinParamSetupAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct PingSlotInfoReqPayload {
pub periodicity: u8,
}
@ -1627,7 +1627,7 @@ impl PingSlotInfoReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct PingSlotChannelReqPayload {
pub freq: u32,
pub dr: u8,
@ -1669,7 +1669,7 @@ impl PingSlotChannelReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct PingSlotChannelAnsPayload {
pub dr_ok: bool,
pub channel_freq_ok: bool,
@ -1704,7 +1704,7 @@ impl PingSlotChannelAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct BeaconFreqReqPayload {
pub freq: u32,
}
@ -1741,7 +1741,7 @@ impl BeaconFreqReqPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct BeaconFreqAnsPayload {
beacon_freq_ok: bool,
}
@ -1768,7 +1768,7 @@ impl BeaconFreqAnsPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct DeviceModeIndPayload {
pub class: DeviceModeClass,
}
@ -1791,7 +1791,7 @@ impl DeviceModeIndPayload {
}
}
#[derive(Serialize, Debug, PartialEq, Clone)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone)]
pub struct DeviceModeConfPayload {
pub class: DeviceModeClass,
}

View File

@ -3,7 +3,7 @@ use std::fmt;
use anyhow::Result;
use serde::Serialize;
#[derive(Serialize, Debug, PartialEq, Clone, Copy)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone, Copy)]
pub enum MType {
JoinRequest,
JoinAccept,
@ -21,12 +21,12 @@ impl fmt::Display for MType {
}
}
#[derive(Serialize, Debug, PartialEq, Clone, Copy)]
#[derive(Serialize, Debug, PartialEq, Eq, Clone, Copy)]
pub enum Major {
LoRaWANR1,
}
#[derive(Debug, PartialEq, Clone, Serialize)]
#[derive(Debug, PartialEq, Eq, Clone, Serialize)]
pub struct MHDR {
pub m_type: MType,
pub major: Major,

View File

@ -11,7 +11,7 @@ use super::maccommand::MACCommandSet;
use super::mhdr::MType;
use super::netid::NetID;
#[derive(PartialEq, Debug, Clone)]
#[derive(PartialEq, Eq, Debug, Clone)]
pub enum Payload {
JoinRequest(JoinRequestPayload),
JoinAccept(JoinAcceptPayload),
@ -37,7 +37,7 @@ impl Serialize for Payload {
}
}
#[derive(Serialize, PartialEq, Debug, Clone)]
#[derive(Serialize, PartialEq, Eq, Debug, Clone)]
pub enum JoinType {
Join,
RejoinType0,
@ -85,7 +85,7 @@ impl Payload {
}
}
#[derive(Serialize, PartialEq, Debug, Copy, Clone)]
#[derive(Serialize, PartialEq, Eq, Debug, Copy, Clone)]
pub struct JoinRequestPayload {
pub join_eui: EUI64,
pub dev_eui: EUI64,
@ -120,7 +120,7 @@ impl JoinRequestPayload {
}
}
#[derive(Serialize, PartialEq, Debug, Clone)]
#[derive(Serialize, PartialEq, Eq, Debug, Clone)]
pub struct JoinAcceptPayload {
pub join_nonce: u32, // the actual max value is (2^24 -1)
pub home_netid: NetID,
@ -185,7 +185,7 @@ impl JoinAcceptPayload {
}
}
#[derive(PartialEq, Debug, Clone)]
#[derive(PartialEq, Eq, Debug, Clone)]
pub enum FRMPayload {
Raw(Vec<u8>),
MACCommandSet(MACCommandSet),
@ -197,7 +197,7 @@ impl Serialize for FRMPayload {
S: Serializer,
{
match self {
FRMPayload::Raw(v) => serializer.serialize_str(&hex::encode(&v)),
FRMPayload::Raw(v) => serializer.serialize_str(&hex::encode(v)),
FRMPayload::MACCommandSet(v) => v.serialize(serializer),
}
}
@ -212,7 +212,7 @@ impl FRMPayload {
}
}
#[derive(Serialize, PartialEq, Debug, Clone, Default)]
#[derive(Serialize, PartialEq, Eq, Debug, Clone, Default)]
pub struct MACPayload {
pub fhdr: FHDR,
pub f_port: Option<u8>,
@ -287,7 +287,7 @@ impl MACPayload {
}
}
#[derive(Serialize, PartialEq, Debug, Clone)]
#[derive(Serialize, PartialEq, Eq, Debug, Clone)]
pub struct RejoinRequestType02Payload {
pub rejoin_type: JoinType,
pub netid: NetID,
@ -343,7 +343,7 @@ impl RejoinRequestType02Payload {
}
}
#[derive(Serialize, PartialEq, Debug, Clone)]
#[derive(Serialize, PartialEq, Eq, Debug, Clone)]
pub struct RejoinRequestType1Payload {
pub rejoin_type: JoinType,
pub join_eui: EUI64,

View File

@ -11,7 +11,7 @@ use super::maccommand::{MACCommand, MACCommandSet};
use super::mhdr::{MType, MHDR};
use super::payload::{FRMPayload, JoinAcceptPayload, JoinType, Payload};
#[derive(PartialEq, Clone, Copy, Serialize)]
#[derive(PartialEq, Eq, Clone, Copy, Serialize)]
pub enum MACVersion {
LoRaWAN1_0,
LoRaWAN1_1,
@ -310,7 +310,7 @@ pub enum MACVersion {
/// let phy_decoded = PhyPayload::from_slice(&bytes).unwrap();
/// assert_eq!(phy, phy_decoded);
/// ```
#[derive(Debug, PartialEq, Clone, Serialize)]
#[derive(Debug, PartialEq, Eq, Clone, Serialize)]
pub struct PhyPayload {
pub mhdr: MHDR,
pub payload: Payload,
@ -558,7 +558,7 @@ impl PhyPayload {
return Ok(());
}
return Err(anyhow!("payload must be of type JoinAcceptPayload"));
Err(anyhow!("payload must be of type JoinAcceptPayload"))
}
/// Decrypt the join-accept payload with the given key.
@ -604,7 +604,7 @@ impl PhyPayload {
return Ok(());
}
return Err(anyhow!("payload must be of type Raw"));
Err(anyhow!("payload must be of type Raw"))
}
/// Encrypt the f_opts with the given key.
@ -633,7 +633,7 @@ impl PhyPayload {
return Ok(());
}
return Err(anyhow!("payload must be of type MACPayload"));
Err(anyhow!("payload must be of type MACPayload"))
}
/// Decrypt the f_opts with the given key.
@ -670,7 +670,7 @@ impl PhyPayload {
return Ok(());
}
return Err(anyhow!("payload must be of type MACPayload"));
Err(anyhow!("payload must be of type MACPayload"))
}
/// Decrypt the frm_payload with the given key.
@ -696,7 +696,7 @@ impl PhyPayload {
return Ok(());
}
return Err(anyhow!("payload must be of type MACPayload"));
Err(anyhow!("payload must be of type MACPayload"))
}
fn calculate_uplink_data_mic(
@ -775,7 +775,7 @@ impl PhyPayload {
}
}
return Err(anyhow!("payload must be of type MACPayload"));
Err(anyhow!("payload must be of type MACPayload"))
}
fn calculate_downlink_data_mic(
@ -822,7 +822,7 @@ impl PhyPayload {
return Ok(mic);
}
return Err(anyhow!("payload must be of type MACPayload"));
Err(anyhow!("payload must be of type MACPayload"))
}
fn calculate_upink_join_mic(&self, key: &AES128Key) -> Result<[u8; 4]> {
@ -886,7 +886,7 @@ impl PhyPayload {
return Ok(mic);
}
return Err(anyhow!("payload must be of type JoinAcceptPayload"));
Err(anyhow!("payload must be of type JoinAcceptPayload"))
}
}

View File

@ -274,26 +274,26 @@ pub struct DataRate {
pub modulation: DataRateModulation,
}
#[derive(Clone, PartialEq, Debug)]
#[derive(Clone, PartialEq, Eq, Debug)]
pub enum DataRateModulation {
Lora(LoraDataRate),
Fsk(FskDataRate),
LrFhss(LrFhssDataRate),
}
#[derive(Clone, PartialEq, Debug)]
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct LoraDataRate {
pub spreading_factor: u8,
pub bandwidth: u32,
pub coding_rate: String,
}
#[derive(Clone, PartialEq, Debug)]
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct FskDataRate {
pub bitrate: u32,
}
#[derive(Clone, PartialEq, Debug)]
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct LrFhssDataRate {
pub coding_rate: String,
pub occupied_channel_width: u32,