Skip to main content

Decode

Trait Decode 

Source
pub trait Decode: Sized {
    // Required method
    fn decode(packet: RawPacket) -> Result<Self, Error>;
}
Expand description

A trait for decoding MQTT packets from their raw representation.

Types that implement this trait can be decoded from a RawPacket. This is useful for deserializing MQTT packets received over the network.

Required Methods§

Source

fn decode(packet: RawPacket) -> Result<Self, Error>

Decodes a raw MQTT packet into the implementing type.

§Examples
use mqute_codec::protocol::{FixedHeader, PacketType};
use mqute_codec::codec::{Decode, RawPacket};
use mqute_codec::Error;
use bytes::Bytes;


struct Packet {
    header: FixedHeader,
    payload: Vec<u8>,
}

impl Decode for Packet {
    fn decode(packet: RawPacket) -> Result<Self, Error> {
        let header = packet.header;
        let payload = packet.payload.to_vec();
        Ok(Packet { header, payload })
    }
}

let header = FixedHeader::new(PacketType::Connect, 2);
let raw_packet = RawPacket::new(header.clone(), Bytes::copy_from_slice(&[0x00, 0x01])); // Example raw packet
let packet = Packet::decode(raw_packet).unwrap();
assert_eq!(packet.header, header);
assert_eq!(packet.payload, vec![0x00, 0x01]);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Decode for Auth

Source§

impl Decode for mqute_codec::protocol::v3::ConnAck

Source§

impl Decode for mqute_codec::protocol::v4::ConnAck

Source§

impl Decode for mqute_codec::protocol::v5::ConnAck

Source§

impl Decode for mqute_codec::protocol::v3::Connect

Source§

impl Decode for mqute_codec::protocol::v4::Connect

Source§

impl Decode for mqute_codec::protocol::v5::Connect

Source§

impl Decode for mqute_codec::protocol::v4::Disconnect

Source§

impl Decode for mqute_codec::protocol::v5::Disconnect

Source§

impl Decode for mqute_codec::protocol::v4::PingReq

Source§

impl Decode for mqute_codec::protocol::v5::PingReq

Source§

impl Decode for mqute_codec::protocol::v4::PingResp

Source§

impl Decode for mqute_codec::protocol::v5::PingResp

Source§

impl Decode for mqute_codec::protocol::v4::PubAck

Source§

impl Decode for mqute_codec::protocol::v5::PubAck

Source§

impl Decode for mqute_codec::protocol::v4::PubComp

Source§

impl Decode for mqute_codec::protocol::v5::PubComp

Source§

impl Decode for mqute_codec::protocol::v4::PubRec

Source§

impl Decode for mqute_codec::protocol::v5::PubRec

Source§

impl Decode for mqute_codec::protocol::v4::PubRel

Source§

impl Decode for mqute_codec::protocol::v5::PubRel

Source§

impl Decode for mqute_codec::protocol::v4::Publish

Source§

impl Decode for mqute_codec::protocol::v5::Publish

Source§

impl Decode for mqute_codec::protocol::v3::SubAck

Source§

impl Decode for mqute_codec::protocol::v4::SubAck

Source§

impl Decode for mqute_codec::protocol::v5::SubAck

Source§

impl Decode for mqute_codec::protocol::v4::Subscribe

Source§

impl Decode for mqute_codec::protocol::v5::Subscribe

Source§

impl Decode for mqute_codec::protocol::v4::UnsubAck

Source§

impl Decode for mqute_codec::protocol::v5::UnsubAck

Source§

impl Decode for mqute_codec::protocol::v4::Unsubscribe

Source§

impl Decode for mqute_codec::protocol::v5::Unsubscribe