pub struct PacketIdManager<T>where
T: IsPacketId,{ /* private fields */ }
Implementations§
Source§impl<T> PacketIdManager<T>where
T: IsPacketId,
impl<T> PacketIdManager<T>where
T: IsPacketId,
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new packet ID manager with valid IDs in range [1, T::max_value()]
Sourcepub fn acquire_unique_id(&mut self) -> Result<T, MqttError>
pub fn acquire_unique_id(&mut self) -> Result<T, MqttError>
Acquire a new unique packet ID.
Returns Ok(T)
if successful, Err(MqttError)
if no IDs are available.
Sourcepub fn register_id(&mut self, packet_id: T) -> Result<(), MqttError>
pub fn register_id(&mut self, packet_id: T) -> Result<(), MqttError>
Register a packet ID externally acquired or reused.
Returns Ok(())
if successful, Err(MqttError)
if the ID is already in use.
Sourcepub fn is_used_id(&self, packet_id: T) -> bool
pub fn is_used_id(&self, packet_id: T) -> bool
Check whether a packet ID is in use.
Sourcepub fn release_id(&mut self, packet_id: T)
pub fn release_id(&mut self, packet_id: T)
Release a previously acquired or registered packet ID.
Auto Trait Implementations§
impl<T> Freeze for PacketIdManager<T>where
T: Freeze,
impl<T> RefUnwindSafe for PacketIdManager<T>where
T: RefUnwindSafe,
impl<T> Send for PacketIdManager<T>where
T: Send,
impl<T> Sync for PacketIdManager<T>where
T: Sync,
impl<T> Unpin for PacketIdManager<T>where
T: Unpin,
impl<T> UnwindSafe for PacketIdManager<T>where
T: UnwindSafe + RefUnwindSafe,
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
Mutably borrows from an owned value. Read more