pub struct MqttSnLayer {
pub index: LayerIndex,
}Expand description
MQTT-SN layer – a zero-copy view into a packet buffer.
Fields§
§index: LayerIndexImplementations§
Source§impl MqttSnLayer
impl MqttSnLayer
Sourcepub fn new(index: LayerIndex) -> Self
pub fn new(index: LayerIndex) -> Self
Create a new MQTT-SN layer from a layer index.
Sourcepub fn packet_length(&self, buf: &[u8]) -> Result<u16, FieldError>
pub fn packet_length(&self, buf: &[u8]) -> Result<u16, FieldError>
Get the total packet length (as encoded in the length field).
Sourcepub fn flags(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn flags(&self, buf: &[u8]) -> Result<u8, FieldError>
Get the raw flags byte. Returns an error if this message type has no flags.
Sourcepub fn dup(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn dup(&self, buf: &[u8]) -> Result<bool, FieldError>
Get the DUP flag (bit 7 of flags byte).
Sourcepub fn qos(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn qos(&self, buf: &[u8]) -> Result<u8, FieldError>
Get the QoS level (bits 6-5 of flags byte).
Sourcepub fn retain(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn retain(&self, buf: &[u8]) -> Result<bool, FieldError>
Get the RETAIN flag (bit 4 of flags byte).
Sourcepub fn will(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn will(&self, buf: &[u8]) -> Result<bool, FieldError>
Get the WILL flag (bit 3 of flags byte).
Sourcepub fn cleansess(&self, buf: &[u8]) -> Result<bool, FieldError>
pub fn cleansess(&self, buf: &[u8]) -> Result<bool, FieldError>
Get the CleanSession flag (bit 2 of flags byte).
Sourcepub fn tid_type(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn tid_type(&self, buf: &[u8]) -> Result<u8, FieldError>
Get the topic ID type (bits 1-0 of flags byte).
Sourcepub fn duration(&self, buf: &[u8]) -> Result<u16, FieldError>
pub fn duration(&self, buf: &[u8]) -> Result<u16, FieldError>
Get duration field (ADVERTISE: offset body+1, CONNECT: offset body+flags+prot_id,
DISCONNECT: offset body+0 (optional)).
Sourcepub fn gw_addr<'a>(&self, buf: &'a [u8]) -> Result<&'a [u8], FieldError>
pub fn gw_addr<'a>(&self, buf: &'a [u8]) -> Result<&'a [u8], FieldError>
Get gateway address bytes (GWINFO, after gw_id).
Sourcepub fn prot_id(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn prot_id(&self, buf: &[u8]) -> Result<u8, FieldError>
Get protocol ID (CONNECT, after flags byte).
Sourcepub fn client_id<'a>(&self, buf: &'a [u8]) -> Result<&'a str, FieldError>
pub fn client_id<'a>(&self, buf: &'a [u8]) -> Result<&'a str, FieldError>
Get client ID string (CONNECT, PINGREQ).
Sourcepub fn return_code(&self, buf: &[u8]) -> Result<u8, FieldError>
pub fn return_code(&self, buf: &[u8]) -> Result<u8, FieldError>
Get return code (CONNACK, REGACK, PUBACK, SUBACK, WILLTOPICRESP, WILLMSGRESP).
Sourcepub fn tid(&self, buf: &[u8]) -> Result<u16, FieldError>
pub fn tid(&self, buf: &[u8]) -> Result<u16, FieldError>
Get topic ID (REGISTER, REGACK, PUBLISH, PUBACK, SUBSCRIBE/UNSUBSCRIBE, SUBACK).
Sourcepub fn mid(&self, buf: &[u8]) -> Result<u16, FieldError>
pub fn mid(&self, buf: &[u8]) -> Result<u16, FieldError>
Get message ID (REGISTER, REGACK, PUBLISH, PUBACK, PUBCOMP, PUBREC, PUBREL, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK).
Sourcepub fn data<'a>(&self, buf: &'a [u8]) -> Result<&'a [u8], FieldError>
pub fn data<'a>(&self, buf: &'a [u8]) -> Result<&'a [u8], FieldError>
Get publish data payload (PUBLISH, after flags+tid+mid).
Sourcepub fn topic_name<'a>(&self, buf: &'a [u8]) -> Result<&'a str, FieldError>
pub fn topic_name<'a>(&self, buf: &'a [u8]) -> Result<&'a str, FieldError>
Get topic name (REGISTER, SUBSCRIBE/UNSUBSCRIBE with TID_NORMAL).
Sourcepub fn will_topic<'a>(&self, buf: &'a [u8]) -> Result<&'a str, FieldError>
pub fn will_topic<'a>(&self, buf: &'a [u8]) -> Result<&'a str, FieldError>
Get will topic (WILLTOPIC, WILLTOPICUPD).
Sourcepub fn will_msg<'a>(&self, buf: &'a [u8]) -> Result<&'a [u8], FieldError>
pub fn will_msg<'a>(&self, buf: &'a [u8]) -> Result<&'a [u8], FieldError>
Get will message (WILLMSG, WILLMSGUPD).
Sourcepub fn set_msg_type(&self, buf: &mut [u8], value: u8) -> Result<(), FieldError>
pub fn set_msg_type(&self, buf: &mut [u8], value: u8) -> Result<(), FieldError>
Set the message type byte in the buffer.
Sourcepub fn set_flags(&self, buf: &mut [u8], value: u8) -> Result<(), FieldError>
pub fn set_flags(&self, buf: &mut [u8], value: u8) -> Result<(), FieldError>
Set the flags byte in the buffer.
Sourcepub fn field_names() -> &'static [&'static str]
pub fn field_names() -> &'static [&'static str]
Get the field names for this layer.
Sourcepub fn get_field(
&self,
buf: &[u8],
name: &str,
) -> Option<Result<FieldValue, FieldError>>
pub fn get_field( &self, buf: &[u8], name: &str, ) -> Option<Result<FieldValue, FieldError>>
Get a field value by name.
Sourcepub fn set_field(
&self,
buf: &mut [u8],
name: &str,
value: FieldValue,
) -> Option<Result<(), FieldError>>
pub fn set_field( &self, buf: &mut [u8], name: &str, value: FieldValue, ) -> Option<Result<(), FieldError>>
Set a field value by name.
Trait Implementations§
Source§impl Clone for MqttSnLayer
impl Clone for MqttSnLayer
Source§fn clone(&self) -> MqttSnLayer
fn clone(&self) -> MqttSnLayer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more