From 6085319aece713fac7301258c9d835c860b68227 Mon Sep 17 00:00:00 2001 From: Ondrej Babec Date: Fri, 4 Mar 2022 15:40:13 +0100 Subject: [PATCH] Refactor packages --- src/client/client_config.rs | 2 +- src/client/client_v5.rs | 24 +++++------ src/main.rs | 10 ++--- src/network/network_trait.rs | 2 +- src/packet/mod.rs | 21 +--------- src/packet/{ => v5}/auth_packet.rs | 2 +- src/packet/{ => v5}/connack_packet.rs | 2 +- src/packet/{ => v5}/connect_packet.rs | 2 +- src/packet/{ => v5}/disconnect_packet.rs | 2 +- src/packet/v5/mod.rs | 44 ++++++++++++++++++++ src/packet/{ => v5}/mqtt_packet.rs | 2 +- src/packet/{ => v5}/packet_type.rs | 0 src/packet/{ => v5}/pingreq_packet.rs | 2 +- src/packet/{ => v5}/pingresp_packet.rs | 2 +- src/packet/{ => v5}/property.rs | 0 src/packet/{ => v5}/puback_packet.rs | 2 +- src/packet/{ => v5}/pubcomp_packet.rs | 2 +- src/packet/{ => v5}/publish_packet.rs | 4 +- src/packet/{ => v5}/pubrec_packet.rs | 2 +- src/packet/{ => v5}/pubrel_packet.rs | 2 +- src/packet/{ => v5}/reason_codes.rs | 0 src/packet/{ => v5}/suback_packet.rs | 2 +- src/packet/{ => v5}/subscription_packet.rs | 4 +- src/packet/{ => v5}/unsuback_packet.rs | 2 +- src/packet/{ => v5}/unsubscription_packet.rs | 2 +- src/tokio_network.rs | 2 +- src/utils/buffer_writer.rs | 2 +- 27 files changed, 84 insertions(+), 59 deletions(-) rename src/packet/{ => v5}/auth_packet.rs (98%) rename src/packet/{ => v5}/connack_packet.rs (98%) rename src/packet/{ => v5}/connect_packet.rs (99%) rename src/packet/{ => v5}/disconnect_packet.rs (98%) create mode 100644 src/packet/v5/mod.rs rename src/packet/{ => v5}/mqtt_packet.rs (98%) rename src/packet/{ => v5}/packet_type.rs (100%) rename src/packet/{ => v5}/pingreq_packet.rs (98%) rename src/packet/{ => v5}/pingresp_packet.rs (98%) rename src/packet/{ => v5}/property.rs (100%) rename src/packet/{ => v5}/puback_packet.rs (98%) rename src/packet/{ => v5}/pubcomp_packet.rs (98%) rename src/packet/{ => v5}/publish_packet.rs (97%) rename src/packet/{ => v5}/pubrec_packet.rs (98%) rename src/packet/{ => v5}/pubrel_packet.rs (98%) rename src/packet/{ => v5}/reason_codes.rs (100%) rename src/packet/{ => v5}/suback_packet.rs (98%) rename src/packet/{ => v5}/subscription_packet.rs (97%) rename src/packet/{ => v5}/unsuback_packet.rs (98%) rename src/packet/{ => v5}/unsubscription_packet.rs (98%) diff --git a/src/client/client_config.rs b/src/client/client_config.rs index eaa02f6..22b6d34 100644 --- a/src/client/client_config.rs +++ b/src/client/client_config.rs @@ -22,7 +22,7 @@ * SOFTWARE. */ -use crate::packet::publish_packet::QualityOfService; +use crate::packet::v5::publish_packet::QualityOfService; use crate::utils::types::{BinaryData, EncodedString}; pub struct ClientConfig<'a> { diff --git a/src/client/client_v5.rs b/src/client/client_v5.rs index acef2b3..141d0e5 100644 --- a/src/client/client_v5.rs +++ b/src/client/client_v5.rs @@ -1,17 +1,17 @@ use crate::client::client_config::ClientConfig; use crate::network::network_trait::Network; -use crate::packet::connack_packet::ConnackPacket; -use crate::packet::connect_packet::ConnectPacket; -use crate::packet::disconnect_packet::DisconnectPacket; -use crate::packet::mqtt_packet::Packet; -use crate::packet::pingreq_packet::PingreqPacket; -use crate::packet::pingresp_packet::PingrespPacket; -use crate::packet::puback_packet::PubackPacket; -use crate::packet::publish_packet::QualityOfService::QoS1; -use crate::packet::publish_packet::{PublishPacket, QualityOfService}; -use crate::packet::reason_codes::ReasonCode; -use crate::packet::suback_packet::SubackPacket; -use crate::packet::subscription_packet::SubscriptionPacket; +use crate::packet::v5::connack_packet::ConnackPacket; +use crate::packet::v5::connect_packet::ConnectPacket; +use crate::packet::v5::disconnect_packet::DisconnectPacket; +use crate::packet::v5::mqtt_packet::Packet; +use crate::packet::v5::pingreq_packet::PingreqPacket; +use crate::packet::v5::pingresp_packet::PingrespPacket; +use crate::packet::v5::puback_packet::PubackPacket; +use crate::packet::v5::publish_packet::QualityOfService::QoS1; +use crate::packet::v5::publish_packet::{PublishPacket, QualityOfService}; +use crate::packet::v5::reason_codes::ReasonCode; +use crate::packet::v5::suback_packet::SubackPacket; +use crate::packet::v5::subscription_packet::SubscriptionPacket; use crate::utils::buffer_reader::BuffReader; use crate::utils::rng_generator::CountingRng; use crate::utils::types::BufferError; diff --git a/src/main.rs b/src/main.rs index 80c57aa..de8bf2b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,11 +8,11 @@ use tokio::{join, task}; use rust_mqtt::client::client_config::ClientConfig; use rust_mqtt::client::client_v5::MqttClientV5; use rust_mqtt::network::network_trait::{Network, NetworkError}; -use rust_mqtt::packet::connect_packet::ConnectPacket; -use rust_mqtt::packet::mqtt_packet::Packet; -use rust_mqtt::packet::publish_packet::QualityOfService::QoS1; -use rust_mqtt::packet::publish_packet::{PublishPacket, QualityOfService}; -use rust_mqtt::packet::subscription_packet::SubscriptionPacket; +use rust_mqtt::packet::v5::connect_packet::ConnectPacket; +use rust_mqtt::packet::v5::mqtt_packet::Packet; +use rust_mqtt::packet::v5::publish_packet::QualityOfService::QoS1; +use rust_mqtt::packet::v5::publish_packet::{PublishPacket, QualityOfService}; +use rust_mqtt::packet::v5::subscription_packet::SubscriptionPacket; use rust_mqtt::tokio_network::TokioNetwork; async fn receive() { diff --git a/src/network/network_trait.rs b/src/network/network_trait.rs index 4db9313..07f1469 100644 --- a/src/network/network_trait.rs +++ b/src/network/network_trait.rs @@ -1,6 +1,6 @@ use core::future::Future; -use crate::packet::reason_codes::ReasonCode; +use crate::packet::v5::reason_codes::ReasonCode; #[derive(Debug)] pub enum NetworkError { diff --git a/src/packet/mod.rs b/src/packet/mod.rs index 486fe54..3353069 100644 --- a/src/packet/mod.rs +++ b/src/packet/mod.rs @@ -22,23 +22,4 @@ * SOFTWARE. */ -pub mod auth_packet; -pub mod connack_packet; -pub mod mqtt_packet; -pub mod packet_type; -pub mod property; -pub mod puback_packet; -pub mod pubcomp_packet; -pub mod publish_packet; -pub mod pubrec_packet; -pub mod pubrel_packet; -pub mod subscription_packet; -pub mod unsubscription_packet; - -pub mod connect_packet; -pub mod disconnect_packet; -pub mod pingreq_packet; -pub mod pingresp_packet; -pub mod reason_codes; -pub mod suback_packet; -pub mod unsuback_packet; +pub mod v5; diff --git a/src/packet/auth_packet.rs b/src/packet/v5/auth_packet.rs similarity index 98% rename from src/packet/auth_packet.rs rename to src/packet/v5/auth_packet.rs index d45d9bf..ee43549 100644 --- a/src/packet/auth_packet.rs +++ b/src/packet/v5/auth_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/connack_packet.rs b/src/packet/v5/connack_packet.rs similarity index 98% rename from src/packet/connack_packet.rs rename to src/packet/v5/connack_packet.rs index 340984e..f4cd75f 100644 --- a/src/packet/connack_packet.rs +++ b/src/packet/v5/connack_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/connect_packet.rs b/src/packet/v5/connect_packet.rs similarity index 99% rename from src/packet/connect_packet.rs rename to src/packet/v5/connect_packet.rs index 06106f0..09ea8b5 100644 --- a/src/packet/connect_packet.rs +++ b/src/packet/v5/connect_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; diff --git a/src/packet/disconnect_packet.rs b/src/packet/v5/disconnect_packet.rs similarity index 98% rename from src/packet/disconnect_packet.rs rename to src/packet/v5/disconnect_packet.rs index b93675a..fc5149e 100644 --- a/src/packet/disconnect_packet.rs +++ b/src/packet/v5/disconnect_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/v5/mod.rs b/src/packet/v5/mod.rs new file mode 100644 index 0000000..486fe54 --- /dev/null +++ b/src/packet/v5/mod.rs @@ -0,0 +1,44 @@ +/* + * MIT License + * + * Copyright (c) [2022] [Ondrej Babec ] + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +pub mod auth_packet; +pub mod connack_packet; +pub mod mqtt_packet; +pub mod packet_type; +pub mod property; +pub mod puback_packet; +pub mod pubcomp_packet; +pub mod publish_packet; +pub mod pubrec_packet; +pub mod pubrel_packet; +pub mod subscription_packet; +pub mod unsubscription_packet; + +pub mod connect_packet; +pub mod disconnect_packet; +pub mod pingreq_packet; +pub mod pingresp_packet; +pub mod reason_codes; +pub mod suback_packet; +pub mod unsuback_packet; diff --git a/src/packet/mqtt_packet.rs b/src/packet/v5/mqtt_packet.rs similarity index 98% rename from src/packet/mqtt_packet.rs rename to src/packet/v5/mqtt_packet.rs index b95cf41..4b36063 100644 --- a/src/packet/mqtt_packet.rs +++ b/src/packet/v5/mqtt_packet.rs @@ -22,7 +22,7 @@ * SOFTWARE. */ -use crate::packet::packet_type::PacketType; +use crate::packet::v5::packet_type::PacketType; use crate::utils::buffer_reader::BuffReader; use crate::utils::types::BufferError; diff --git a/src/packet/packet_type.rs b/src/packet/v5/packet_type.rs similarity index 100% rename from src/packet/packet_type.rs rename to src/packet/v5/packet_type.rs diff --git a/src/packet/pingreq_packet.rs b/src/packet/v5/pingreq_packet.rs similarity index 98% rename from src/packet/pingreq_packet.rs rename to src/packet/v5/pingreq_packet.rs index b1e2c37..12c9bb0 100644 --- a/src/packet/pingreq_packet.rs +++ b/src/packet/v5/pingreq_packet.rs @@ -22,7 +22,7 @@ * SOFTWARE. */ -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/pingresp_packet.rs b/src/packet/v5/pingresp_packet.rs similarity index 98% rename from src/packet/pingresp_packet.rs rename to src/packet/v5/pingresp_packet.rs index d557cdd..705360c 100644 --- a/src/packet/pingresp_packet.rs +++ b/src/packet/v5/pingresp_packet.rs @@ -22,7 +22,7 @@ * SOFTWARE. */ -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/property.rs b/src/packet/v5/property.rs similarity index 100% rename from src/packet/property.rs rename to src/packet/v5/property.rs diff --git a/src/packet/puback_packet.rs b/src/packet/v5/puback_packet.rs similarity index 98% rename from src/packet/puback_packet.rs rename to src/packet/v5/puback_packet.rs index 4577990..d15e4a6 100644 --- a/src/packet/puback_packet.rs +++ b/src/packet/v5/puback_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/pubcomp_packet.rs b/src/packet/v5/pubcomp_packet.rs similarity index 98% rename from src/packet/pubcomp_packet.rs rename to src/packet/v5/pubcomp_packet.rs index f51b297..7e44227 100644 --- a/src/packet/pubcomp_packet.rs +++ b/src/packet/v5/pubcomp_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/publish_packet.rs b/src/packet/v5/publish_packet.rs similarity index 97% rename from src/packet/publish_packet.rs rename to src/packet/v5/publish_packet.rs index 648ef17..73c0838 100644 --- a/src/packet/publish_packet.rs +++ b/src/packet/v5/publish_packet.rs @@ -25,8 +25,8 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; -use crate::packet::publish_packet::QualityOfService::{QoS0, QoS1, QoS2, INVALID}; +use crate::packet::v5::mqtt_packet::Packet; +use crate::packet::v5::publish_packet::QualityOfService::{QoS0, QoS1, QoS2, INVALID}; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::{BufferError, EncodedString}; diff --git a/src/packet/pubrec_packet.rs b/src/packet/v5/pubrec_packet.rs similarity index 98% rename from src/packet/pubrec_packet.rs rename to src/packet/v5/pubrec_packet.rs index 10bb601..cd7a692 100644 --- a/src/packet/pubrec_packet.rs +++ b/src/packet/v5/pubrec_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/pubrel_packet.rs b/src/packet/v5/pubrel_packet.rs similarity index 98% rename from src/packet/pubrel_packet.rs rename to src/packet/v5/pubrel_packet.rs index d7a0875..d15b270 100644 --- a/src/packet/pubrel_packet.rs +++ b/src/packet/v5/pubrel_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::BufferError; diff --git a/src/packet/reason_codes.rs b/src/packet/v5/reason_codes.rs similarity index 100% rename from src/packet/reason_codes.rs rename to src/packet/v5/reason_codes.rs diff --git a/src/packet/suback_packet.rs b/src/packet/v5/suback_packet.rs similarity index 98% rename from src/packet/suback_packet.rs rename to src/packet/v5/suback_packet.rs index ac7e93f..e1cadfe 100644 --- a/src/packet/suback_packet.rs +++ b/src/packet/v5/suback_packet.rs @@ -24,7 +24,7 @@ use heapless::Vec; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::types::BufferError; diff --git a/src/packet/subscription_packet.rs b/src/packet/v5/subscription_packet.rs similarity index 97% rename from src/packet/subscription_packet.rs rename to src/packet/v5/subscription_packet.rs index 4f57121..cd115a8 100644 --- a/src/packet/subscription_packet.rs +++ b/src/packet/v5/subscription_packet.rs @@ -27,8 +27,8 @@ use heapless::Vec; use super::packet_type::PacketType; use super::property::Property; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; -use crate::packet::publish_packet::QualityOfService; +use crate::packet::v5::mqtt_packet::Packet; +use crate::packet::v5::publish_packet::QualityOfService; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::{BufferError, TopicFilter}; diff --git a/src/packet/unsuback_packet.rs b/src/packet/v5/unsuback_packet.rs similarity index 98% rename from src/packet/unsuback_packet.rs rename to src/packet/v5/unsuback_packet.rs index ef0770f..142941f 100644 --- a/src/packet/unsuback_packet.rs +++ b/src/packet/v5/unsuback_packet.rs @@ -24,7 +24,7 @@ use heapless::Vec; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::types::BufferError; diff --git a/src/packet/unsubscription_packet.rs b/src/packet/v5/unsubscription_packet.rs similarity index 98% rename from src/packet/unsubscription_packet.rs rename to src/packet/v5/unsubscription_packet.rs index 6ba0796..fd35791 100644 --- a/src/packet/unsubscription_packet.rs +++ b/src/packet/v5/unsubscription_packet.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::VariableByteIntegerEncoder; -use crate::packet::mqtt_packet::Packet; +use crate::packet::v5::mqtt_packet::Packet; use crate::utils::buffer_reader::BuffReader; use crate::utils::buffer_writer::BuffWriter; use crate::utils::types::{BufferError, TopicFilter}; diff --git a/src/tokio_network.rs b/src/tokio_network.rs index 2beb87f..78fa121 100644 --- a/src/tokio_network.rs +++ b/src/tokio_network.rs @@ -6,7 +6,7 @@ use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio::net::TcpStream; use crate::network::network_trait::Network; -use crate::packet::reason_codes::ReasonCode; +use crate::packet::v5::reason_codes::ReasonCode; pub struct TokioNetwork { ip: [u8; 4], diff --git a/src/utils/buffer_writer.rs b/src/utils/buffer_writer.rs index 27734e5..eabef8e 100644 --- a/src/utils/buffer_writer.rs +++ b/src/utils/buffer_writer.rs @@ -25,7 +25,7 @@ use heapless::Vec; use crate::encoding::variable_byte_integer::{VariableByteInteger, VariableByteIntegerEncoder}; -use crate::packet::property::Property; +use crate::packet::v5::property::Property; use crate::utils::types::{BinaryData, BufferError, EncodedString, StringPair, TopicFilter}; pub struct BuffWriter<'a> {