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§
Sourcefn fixed_header(&self) -> &FixedHeader
fn fixed_header(&self) -> &FixedHeader
Get a reference to FixedHeader
. All MQTT packet must have a fixed header.
Provided Methods§
Sourcefn encode_packet<W: Write>(&self, _writer: &mut W) -> Result<()>
fn encode_packet<W: Write>(&self, _writer: &mut W) -> Result<()>
Encodes packet data after fixed header, including variable headers and payload
Sourcefn encoded_packet_length(&self) -> u32
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.