From 9686992bed6d533beda7eae6929390818d771c93 Mon Sep 17 00:00:00 2001 From: Devdutt Shenoi Date: Tue, 30 Jul 2024 13:46:23 +0530 Subject: [PATCH] feat: `LinkTx::unsubscribe` --- rumqttd/src/link/local.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/rumqttd/src/link/local.rs b/rumqttd/src/link/local.rs index 44b08b5e..3934eace 100644 --- a/rumqttd/src/link/local.rs +++ b/rumqttd/src/link/local.rs @@ -1,5 +1,6 @@ use crate::protocol::{ Filter, LastWill, LastWillProperties, Packet, Publish, QoS, RetainForwardRule, Subscribe, + Unsubscribe, }; use crate::router::Ack; use crate::router::{ @@ -281,6 +282,17 @@ impl LinkTx { Ok(len) } + /// Sends a MQTT Unsubscribe to the eventloop + pub fn unsubscribe>(&mut self, filter: S) -> Result { + let unsubscribe = Unsubscribe { + pkid: 0, + filters: vec![filter.into()], + }; + + let len = self.push(Packet::Unsubscribe(unsubscribe, None))?; + Ok(len) + } + /// Request to get device shadow pub fn shadow>(&mut self, filter: S) -> Result<(), LinkError> { let message = Event::Shadow(ShadowRequest {