pub struct MqttTypeAndFlags {
pub message_type: u8,
pub dup: u8,
pub qos: u8,
pub retain: u8,
}Expand description
MQTT Fixed Header Type and Flags byte using bebytes for bit field operations
Fields§
§message_type: u8Message type (bits 7-4)
dup: u8DUP flag (bit 3) - for PUBLISH packets
qos: u8QoS level (bits 2-1) - for PUBLISH packets
retain: u8RETAIN flag (bit 0) - for PUBLISH packets
Implementations§
Source§impl MqttTypeAndFlags
impl MqttTypeAndFlags
pub fn new(message_type: u8, dup: u8, qos: u8, retain: 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 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 MqttTypeAndFlags
impl MqttTypeAndFlags
Sourcepub fn for_packet_type(packet_type: PacketType) -> Self
pub fn for_packet_type(packet_type: PacketType) -> Self
Creates a new MqttTypeAndFlags for a given packet type
Sourcepub fn for_publish(qos: u8, dup: bool, retain: bool) -> Self
pub fn for_publish(qos: u8, dup: bool, retain: bool) -> Self
Creates a new MqttTypeAndFlags for PUBLISH packets with QoS and flags
Sourcepub fn packet_type(&self) -> Option<PacketType>
pub fn packet_type(&self) -> Option<PacketType>
Returns the packet type
Trait Implementations§
Source§impl BeBytes for MqttTypeAndFlags
§Performance Characteristics
- Expected improvement: 2.3f32x over Vec approach
- Allocation pattern: Single allocation with reuse potential
- Recommendation: Good: Use Bytes buffer methods for better performance
impl BeBytes for MqttTypeAndFlags
§Performance Characteristics
- Expected improvement: 2.3f32x over Vec approach
- Allocation pattern: Single allocation with reuse potential
- Recommendation: Good: Use Bytes buffer methods for better performance
§Optimization Hint: Consider using to_be_bytes_buf() for better performance (2.3x 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 MqttTypeAndFlags
impl Clone for MqttTypeAndFlags
Source§fn clone(&self) -> MqttTypeAndFlags
fn clone(&self) -> MqttTypeAndFlags
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more