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§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MqttTypeAndFlags
impl Debug for MqttTypeAndFlags
Source§impl PartialEq for MqttTypeAndFlags
impl PartialEq for MqttTypeAndFlags
impl Copy for MqttTypeAndFlags
impl Eq for MqttTypeAndFlags
impl StructuralPartialEq for MqttTypeAndFlags
Auto Trait Implementations§
impl Freeze for MqttTypeAndFlags
impl RefUnwindSafe for MqttTypeAndFlags
impl Send for MqttTypeAndFlags
impl Sync for MqttTypeAndFlags
impl Unpin for MqttTypeAndFlags
impl UnwindSafe for MqttTypeAndFlags
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)