Struct TopicAliasSend

Source
pub struct TopicAliasSend { /* private fields */ }
Expand description

Topic alias manager for sending MQTT packets

This manages the mapping between topic names and numeric aliases for outgoing MQTT PUBLISH packets to reduce packet size for frequently used topics.

According to MQTT v5.0 specification, one topic can have multiple aliases.

Implementations§

Source§

impl TopicAliasSend

Source

pub fn new(max_alias: u16) -> Self

Create a new TopicAliasSend with the specified maximum alias value

Source

pub fn insert_or_update(&mut self, topic: &str, alias: u16)

Insert or update a topic-alias mapping

§Parameters
  • topic - The topic name (must not be empty)
  • alias - The alias value (must be between MIN_ALIAS and max_alias)
§Panics

Panics if topic is empty or alias is out of valid range

Source

pub fn get(&mut self, alias: u16) -> Option<&str>

Get topic by alias and update access timestamp (affects LRU)

§Parameters
  • alias - The alias to look up
§Returns

The topic name if found, None otherwise

Source

pub fn peek(&self, alias: u16) -> Option<&str>

Peek topic by alias without updating access timestamp (does not affect LRU)

§Parameters
  • alias - The alias to look up
§Returns

The topic name if found, None otherwise

Source

pub fn find_by_topic(&self, topic: &str) -> Option<u16>

Find alias by topic name

§Parameters
  • topic - The topic name to look up
§Returns

The first alias if found, None otherwise

Source

pub fn clear(&mut self)

Clear all topic-alias mappings

Source

pub fn get_lru_alias(&self) -> u16

Get the least recently used (LRU) alias

Returns either the first vacant alias or the oldest used alias

§Returns

An alias value that can be reused

§Panics

Panics if max_alias is 0

Source

pub fn max(&self) -> u16

Get the maximum alias value

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more