pub struct PingRespPacket { /* private fields */ }Expand description
MQTT PINGRESP packet - complete bebytes implementation
Implementations§
Source§impl PingRespPacket
impl PingRespPacket
Sourcepub const RAW_POINTER_SIZE: usize = 2usize
pub const RAW_POINTER_SIZE: usize = 2usize
Get the compile-time known size of this struct
pub fn new(fixed_header: u16) -> 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; 2]
pub fn encode_be_to_raw_stack(&self) -> [u8; 2]
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; 2]
pub fn encode_le_to_raw_stack(&self) -> [u8; 2]
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 PingRespPacket
impl PingRespPacket
Sourcepub const FIXED_HEADER: u16 = 53_248u16
pub const FIXED_HEADER: u16 = 53_248u16
The fixed header value for PINGRESP packets
Source§impl PingRespPacket
impl PingRespPacket
Sourcepub fn encode_complete(&self) -> Vec<u8> ⓘ
pub fn encode_complete(&self) -> Vec<u8> ⓘ
Encode directly to bytes using bebytes
Sourcepub fn decode_complete(data: &[u8]) -> Result<Self>
pub fn decode_complete(data: &[u8]) -> Result<Self>
Decode directly from bytes using bebytes
§Errors
Returns an error if:
- Insufficient bytes in data
- Invalid PINGRESP packet structure
- Fixed header doesn’t match expected PINGRESP values
Trait Implementations§
Source§impl BeBytes for PingRespPacket
§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 PingRespPacket
§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 PingRespPacket
impl Clone for PingRespPacket
Source§fn clone(&self) -> PingRespPacket
fn clone(&self) -> PingRespPacket
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PingRespPacket
impl Debug for PingRespPacket
Source§impl Default for PingRespPacket
impl Default for PingRespPacket
Source§impl MqttPacket for PingRespPacket
impl MqttPacket for PingRespPacket
Source§fn packet_type(&self) -> PacketType
fn packet_type(&self) -> PacketType
Source§fn encode_body<B: BufMut>(&self, _buf: &mut B) -> Result<()>
fn encode_body<B: BufMut>(&self, _buf: &mut B) -> Result<()>
Source§fn decode_body<B: Buf>(
_buf: &mut B,
_fixed_header: &FixedHeader,
) -> Result<Self>
fn decode_body<B: Buf>( _buf: &mut B, _fixed_header: &FixedHeader, ) -> Result<Self>
Source§impl PartialEq for PingRespPacket
impl PartialEq for PingRespPacket
impl Copy for PingRespPacket
impl Eq for PingRespPacket
impl StructuralPartialEq for PingRespPacket
Auto Trait Implementations§
impl Freeze for PingRespPacket
impl RefUnwindSafe for PingRespPacket
impl Send for PingRespPacket
impl Sync for PingRespPacket
impl Unpin for PingRespPacket
impl UnwindSafe for PingRespPacket
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)