#[repr(u8)]pub enum FixedHeader {
Show 15 variants
Connect = 16,
Connack = 32,
Publish = 48,
Puback = 64,
Pubrec = 80,
Pubrel = 98,
Pubcomp = 112,
Subscribe = 130,
Suback = 144,
Unsubscribe = 162,
Unsuback = 176,
Pingreq = 192,
Pingresp = 208,
Disconnect = 224,
Auth = 240,
}
Expand description
MQTT Fixed Header first byte enumeration
Represents the complete first byte of the MQTT Fixed Header, which includes both the packet type (bits 7-4) and packet-specific flags (bits 3-0). Each variant contains the full byte value with appropriate flags/reserved bits set.
§Packet-Specific Flags
- PUBLISH: Contains DUP, QoS, and RETAIN flags (bits 3-0)
- PUBREL, SUBSCRIBE, UNSUBSCRIBE: Have reserved bits set as required by spec
- Other packets: Flags/reserved bits are typically zero
§Examples
use mqtt_protocol_core::mqtt::packet::FixedHeader;
let header = FixedHeader::Connect;
assert_eq!(header.as_u8(), 0x10);
assert_eq!(header.packet_type(), PacketType::Connect);
Variants§
Connect = 16
CONNECT packet header (0x10)
Connack = 32
CONNACK packet header (0x20)
Publish = 48
PUBLISH packet header (0x30) - flags for DUP, QoS, RETAIN in lower bits
Puback = 64
PUBACK packet header (0x40)
Pubrec = 80
PUBREC packet header (0x50)
Pubrel = 98
PUBREL packet header (0x62) - reserved bits set as required
Pubcomp = 112
PUBCOMP packet header (0x70)
Subscribe = 130
SUBSCRIBE packet header (0x82) - reserved bits set as required
Suback = 144
SUBACK packet header (0x90)
Unsubscribe = 162
UNSUBSCRIBE packet header (0xa2) - reserved bits set as required
Unsuback = 176
UNSUBACK packet header (0xb0)
Pingreq = 192
PINGREQ packet header (0xc0)
Pingresp = 208
PINGRESP packet header (0xd0)
Disconnect = 224
DISCONNECT packet header (0xe0)
Auth = 240
AUTH packet header (0xf0) - MQTT v5.0 only
Implementations§
Source§impl FixedHeader
impl FixedHeader
Sourcepub fn as_u8(self) -> u8
pub fn as_u8(self) -> u8
Convert the fixed header to its byte value
Returns the complete first byte of the MQTT Fixed Header, including both packet type and flags/reserved bits.
§Returns
The fixed header byte value
Sourcepub fn packet_type(self) -> PacketType
pub fn packet_type(self) -> PacketType
Extract the packet type from the fixed header
Extracts the packet type from bits 7-4 of the fixed header byte, discarding the flags/reserved bits in the lower 4 bits.
§Returns
The PacketType
extracted from the header, or PacketType::Connect
as fallback
Trait Implementations§
Source§impl Clone for FixedHeader
impl Clone for FixedHeader
Source§fn clone(&self) -> FixedHeader
fn clone(&self) -> FixedHeader
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FixedHeader
Debug FixedHeader
using Display implementation
impl Debug for FixedHeader
Debug FixedHeader
using Display implementation
Source§impl<'de> Deserialize<'de> for FixedHeader
impl<'de> Deserialize<'de> for FixedHeader
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for FixedHeader
Display FixedHeader
as JSON string
impl Display for FixedHeader
Display FixedHeader
as JSON string
Source§impl PartialEq for FixedHeader
impl PartialEq for FixedHeader
Source§impl Serialize for FixedHeader
Serialize FixedHeader
as a string
impl Serialize for FixedHeader
Serialize FixedHeader
as a string
Source§impl TryFrom<u8> for FixedHeader
impl TryFrom<u8> for FixedHeader
Source§type Error = TryFromPrimitiveError<FixedHeader>
type Error = TryFromPrimitiveError<FixedHeader>
Source§impl TryFromPrimitive for FixedHeader
impl TryFromPrimitive for FixedHeader
const NAME: &'static str = "FixedHeader"
type Primitive = u8
type Error = TryFromPrimitiveError<FixedHeader>
fn try_from_primitive( number: Self::Primitive, ) -> Result<Self, TryFromPrimitiveError<Self>>
impl Copy for FixedHeader
impl Eq for FixedHeader
impl StructuralPartialEq for FixedHeader
Auto Trait Implementations§
impl Freeze for FixedHeader
impl RefUnwindSafe for FixedHeader
impl Send for FixedHeader
impl Sync for FixedHeader
impl Unpin for FixedHeader
impl UnwindSafe for FixedHeader
Blanket Implementations§
Source§impl<T> AsConcrete<T> for T
impl<T> AsConcrete<T> for T
fn as_concrete(&self) -> Option<&T>
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.