ntex_mqtt/v3/codec/
mod.rs1use ntex_bytes::Bytes;
4
5#[allow(clippy::module_inception)]
6mod codec;
7mod decode;
8pub(crate) mod encode;
9mod packet;
10
11pub use self::codec::Codec;
12pub use self::packet::{
13 Connect, ConnectAck, ConnectAckReason, LastWill, Packet, Publish, SubscribeReturnCode,
14};
15pub use crate::types::{ConnectAckFlags, ConnectFlags, QoS};
16
17#[derive(Clone, PartialEq, Eq)]
18pub enum Decoded {
19 Packet(Packet, u32),
20 Publish(Publish, Bytes, u32),
21 PayloadChunk(Bytes, bool),
22}
23
24#[derive(Clone, Debug, PartialEq, Eq)]
25pub enum Encoded {
26 Packet(Packet),
27 Publish(Publish, Option<Bytes>),
28 PayloadChunk(Bytes),
29}
30
31impl From<Packet> for Encoded {
32 fn from(pkt: Packet) -> Encoded {
33 Encoded::Packet(pkt)
34 }
35}
36
37impl std::fmt::Debug for Decoded {
38 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
39 match self {
40 Decoded::Packet(pkt, size) => {
41 f.debug_tuple("Decoded::Packet").field(pkt).field(size).finish()
42 }
43 Decoded::Publish(pkt, _, size) => f
44 .debug_tuple("Decoded::Publish")
45 .field(pkt)
46 .field(&"<REDACTED>")
47 .field(size)
48 .finish(),
49 Decoded::PayloadChunk(_, eof) => {
50 f.debug_tuple("Decoded::Publish").field(&"<REDACTED>").field(eof).finish()
51 }
52 }
53 }
54}