pub struct AckPacketHeader {
pub packet_id: u16,
pub reason_code: u8,
}Expand description
MQTT acknowledgment packet variable header using bebytes
Used by PubAck, PubRec, PubRel, and PubComp packets
Fields§
§packet_id: u16Packet identifier
reason_code: u8Reason code (single byte)
Implementations§
Source§impl AckPacketHeader
impl AckPacketHeader
Sourcepub const RAW_POINTER_SIZE: usize = 3usize
pub const RAW_POINTER_SIZE: usize = 3usize
Get the compile-time known size of this struct
pub fn new(packet_id: u16, reason_code: u8) -> Self
Sourcepub const fn supports_raw_pointer_encoding() -> bool
pub const fn supports_raw_pointer_encoding() -> bool
Check if this struct supports raw pointer encoding
Sourcepub fn encode_be_to_raw_stack(&self) -> [u8; 3]
pub fn encode_be_to_raw_stack(&self) -> [u8; 3]
Encode to a stack-allocated array using raw pointer operations (big-endian) This is the fastest possible encoding method with zero allocations
§Compile-time Safety
The array size is determined at compile time based on struct fields.
Sourcepub fn encode_le_to_raw_stack(&self) -> [u8; 3]
pub fn encode_le_to_raw_stack(&self) -> [u8; 3]
Encode to a stack-allocated array using raw pointer operations (little-endian) This is the fastest possible encoding method with zero allocations
§Compile-time Safety
The array size is determined at compile time based on struct fields.
Sourcepub unsafe fn encode_be_to_raw_mut<B: BufMut>(
&self,
buf: &mut B,
) -> Result<(), BeBytesError>
pub unsafe fn encode_be_to_raw_mut<B: BufMut>( &self, buf: &mut B, ) -> Result<(), BeBytesError>
Encode directly to a mutable buffer using raw pointer operations (big-endian) This method is unsafe and requires the buffer to have sufficient capacity
Sourcepub unsafe fn encode_le_to_raw_mut<B: BufMut>(
&self,
buf: &mut B,
) -> Result<(), BeBytesError>
pub unsafe fn encode_le_to_raw_mut<B: BufMut>( &self, buf: &mut B, ) -> Result<(), BeBytesError>
Encode directly to a mutable buffer using raw pointer operations (little-endian) This method is unsafe and requires the buffer to have sufficient capacity
Sourcepub const fn optimal_serialization_method() -> &'static str
pub const fn optimal_serialization_method() -> &'static str
Get the optimal serialization method for this struct Returns the method name as a static string for performance guidance
Sourcepub fn to_be_bytes_optimal(&self) -> Result<Bytes, BeBytesError>
pub fn to_be_bytes_optimal(&self) -> Result<Bytes, BeBytesError>
Automatically select the optimal serialization method (big-endian) This method chooses the best approach based on struct characteristics
Sourcepub fn to_le_bytes_optimal(&self) -> Result<Bytes, BeBytesError>
pub fn to_le_bytes_optimal(&self) -> Result<Bytes, BeBytesError>
Automatically select the optimal serialization method (little-endian) This method chooses the best approach based on struct characteristics
Sourcepub fn create_batch_buffer_be(capacity: usize) -> BytesMut
pub fn create_batch_buffer_be(capacity: usize) -> BytesMut
Create a pre-sized buffer for batch serialization (big-endian) This helps avoid repeated allocations when serializing multiple instances
Sourcepub fn create_batch_buffer_le(capacity: usize) -> BytesMut
pub fn create_batch_buffer_le(capacity: usize) -> BytesMut
Create a pre-sized buffer for batch serialization (little-endian) This helps avoid repeated allocations when serializing multiple instances
Sourcepub fn encode_be_to_reused(
&self,
buf: &mut BytesMut,
) -> Result<(), BeBytesError>
pub fn encode_be_to_reused( &self, buf: &mut BytesMut, ) -> Result<(), BeBytesError>
Encode to a reusable buffer with optimal method selection (big-endian) This method automatically chooses the best encoding approach for performance
Sourcepub fn encode_le_to_reused(
&self,
buf: &mut BytesMut,
) -> Result<(), BeBytesError>
pub fn encode_le_to_reused( &self, buf: &mut BytesMut, ) -> Result<(), BeBytesError>
Encode to a reusable buffer with optimal method selection (little-endian) This method automatically chooses the best encoding approach for performance
Source§impl AckPacketHeader
impl AckPacketHeader
Sourcepub fn create(packet_id: u16, reason_code: ReasonCode) -> Self
pub fn create(packet_id: u16, reason_code: ReasonCode) -> Self
Creates a new acknowledgment packet header
Sourcepub fn get_reason_code(&self) -> Option<ReasonCode>
pub fn get_reason_code(&self) -> Option<ReasonCode>
Gets the reason code as a ReasonCode enum
Trait Implementations§
Source§impl BeBytes for AckPacketHeader
§Performance Characteristics
- Expected improvement: 5.4f32x over Vec approach
- Allocation pattern: Zero allocations (stack only)
- Recommendation: Optimal: Use raw pointer methods for maximum performance
impl BeBytes for AckPacketHeader
§Performance Characteristics
- Expected improvement: 5.4f32x over Vec approach
- Allocation pattern: Zero allocations (stack only)
- Recommendation: Optimal: Use raw pointer methods for maximum performance
§Optimization Hint: Consider using encode_be_to_raw_stack() for maximum performance (5.4x improvement)
fn field_size() -> usize
Source§fn try_from_be_bytes(bytes: &[u8]) -> Result<(Self, usize), BeBytesError>
fn try_from_be_bytes(bytes: &[u8]) -> Result<(Self, usize), BeBytesError>
fn to_be_bytes(&self) -> Vec<u8> ⓘ
Source§fn to_be_bytes_buf(&self) -> Bytes
fn to_be_bytes_buf(&self) -> Bytes
Source§fn try_from_le_bytes(bytes: &[u8]) -> Result<(Self, usize), BeBytesError>
fn try_from_le_bytes(bytes: &[u8]) -> Result<(Self, usize), BeBytesError>
fn to_le_bytes(&self) -> Vec<u8> ⓘ
Source§fn to_le_bytes_buf(&self) -> Bytes
fn to_le_bytes_buf(&self) -> Bytes
Source§fn encode_be_to<B: BufMut>(&self, buf: &mut B) -> Result<(), BeBytesError>
fn encode_be_to<B: BufMut>(&self, buf: &mut B) -> Result<(), BeBytesError>
Source§fn encode_le_to<B: BufMut>(&self, buf: &mut B) -> Result<(), BeBytesError>
fn encode_le_to<B: BufMut>(&self, buf: &mut B) -> Result<(), BeBytesError>
Source§impl Clone for AckPacketHeader
impl Clone for AckPacketHeader
Source§fn clone(&self) -> AckPacketHeader
fn clone(&self) -> AckPacketHeader
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more