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 moreSource§impl Debug for MqttSnLayer
impl Debug for MqttSnLayer
Source§impl From<MqttSnLayer> for LayerEnum
impl From<MqttSnLayer> for LayerEnum
Source§fn from(v: MqttSnLayer) -> LayerEnum
fn from(v: MqttSnLayer) -> LayerEnum
Source§impl Layer for MqttSnLayer
impl Layer for MqttSnLayer
Source§fn header_len(&self, data: &[u8]) -> usize
fn header_len(&self, data: &[u8]) -> usize
Source§fn field_names(&self) -> &'static [&'static str]
fn field_names(&self) -> &'static [&'static str]
Source§impl LayerDispatch for MqttSnLayer
impl LayerDispatch for MqttSnLayer
Source§fn dispatch_kind(&self) -> LayerKind
fn dispatch_kind(&self) -> LayerKind
Source§fn dispatch_index(&self) -> &LayerIndex
fn dispatch_index(&self) -> &LayerIndex
Source§fn dispatch_summary(&self, buf: &[u8]) -> String
fn dispatch_summary(&self, buf: &[u8]) -> String
Source§fn dispatch_header_len(&self, buf: &[u8]) -> usize
fn dispatch_header_len(&self, buf: &[u8]) -> usize
Source§fn dispatch_field_names(&self) -> &'static [&'static str]
fn dispatch_field_names(&self) -> &'static [&'static str]
Source§fn dispatch_get_field(
&self,
buf: &[u8],
name: &str,
) -> Option<Result<FieldValue, FieldError>>
fn dispatch_get_field( &self, buf: &[u8], name: &str, ) -> Option<Result<FieldValue, FieldError>>
Source§fn dispatch_set_field(
&self,
buf: &mut [u8],
name: &str,
value: FieldValue,
) -> Option<Result<(), FieldError>>
fn dispatch_set_field( &self, buf: &mut [u8], name: &str, value: FieldValue, ) -> Option<Result<(), FieldError>>
Auto Trait Implementations§
impl Freeze for MqttSnLayer
impl RefUnwindSafe for MqttSnLayer
impl Send for MqttSnLayer
impl Sync for MqttSnLayer
impl Unpin for MqttSnLayer
impl UnsafeUnpin for MqttSnLayer
impl UnwindSafe for MqttSnLayer
Blanket Implementations§
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<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more