pub trait Packet<'a> {
    fn new() -> Self;
    fn encode(
        &mut self,
        buffer: &mut [u8],
        buff_len: usize
    ) -> Result<usize, BufferError>; fn decode(
        &mut self,
        buff_reader: &mut BuffReader<'a>
    ) -> Result<(), BufferError>; fn set_property_len(&mut self, value: u32); fn get_property_len(&mut self) -> u32; fn push_to_properties(&mut self, property: Property<'a>); fn property_allowed(&mut self, property: &Property<'a>) -> bool; fn set_fixed_header(&mut self, header: u8); fn set_remaining_len(&mut self, remaining_len: u32); fn add_properties<const MAX_PROPERTIES: usize>(
        &mut self,
        properties: &Vec<Property<'a>, MAX_PROPERTIES>
    ) -> u32 { ... } fn decode_properties(
        &mut self,
        buff_reader: &mut BuffReader<'a>
    ) -> Result<(), BufferError> { ... } fn decode_fixed_header(
        &mut self,
        buff_reader: &mut BuffReader<'_>
    ) -> Result<PacketType, BufferError> { ... } }
Expand description

This trait provide interface for mapping MQTTv5 packets to human readable structures which can be later modified and used for communication purposes.

Required Methods§

Method encode provide way how to transfer Packet struct into Byte array (buffer)

Decode method is opposite of encode - decoding Byte array and mapping it into corresponding Packet struct

Setter method for packet properties len - not all Packet types support this

Setter method for packet properties len - not all Packet types support this

Method enables pushing new property into packet properties

Returns if property is allowed for packet

Setter for packet fixed header

Setter for remaining len

Provided Methods§

Method enables adding properties from client config - each packet decides if property can be used with that or not

Method is decoding Byte array pointing to properties into heapless Vec in packet. If decoding goes wrong method is returning Error

Method is decoding packet header into fixed header part and remaining length

Implementors§