Trait EncodablePacket

Source
pub trait EncodablePacket {
    // Required method
    fn fixed_header(&self) -> &FixedHeader;

    // Provided methods
    fn encode_packet<W: Write>(&self, _writer: &mut W) -> Result<()> { ... }
    fn encoded_packet_length(&self) -> u32 { ... }
}
Expand description

A trait representing a packet that can be encoded, when passed as FooPacket or as &FooPacket. Different from Encodable in that it prevents you from accidentally passing a type intended to be encoded only as a part of a packet and doesn’t have a header, e.g. Vec<u8>.

Required Methods§

Source

fn fixed_header(&self) -> &FixedHeader

Get a reference to FixedHeader. All MQTT packet must have a fixed header.

Provided Methods§

Source

fn encode_packet<W: Write>(&self, _writer: &mut W) -> Result<()>

Encodes packet data after fixed header, including variable headers and payload

Source

fn encoded_packet_length(&self) -> u32

Length in bytes for data after fixed header, including variable headers and payload

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§