mqtt5_protocol/types/
subscribe.rs1use super::QoS;
2
3#[derive(Debug, Clone)]
4pub struct SubscribeOptions {
5 pub qos: QoS,
6 pub no_local: bool,
7 pub retain_as_published: bool,
8 pub retain_handling: RetainHandling,
9 pub subscription_identifier: Option<u32>,
10}
11
12impl Default for SubscribeOptions {
13 fn default() -> Self {
14 Self {
15 qos: QoS::AtMostOnce,
16 no_local: false,
17 retain_as_published: false,
18 retain_handling: RetainHandling::SendAtSubscribe,
19 subscription_identifier: None,
20 }
21 }
22}
23
24impl SubscribeOptions {
25 #[must_use]
26 pub fn with_subscription_identifier(mut self, id: u32) -> Self {
27 self.subscription_identifier = Some(id);
28 self
29 }
30}
31
32#[derive(Debug, Clone, Copy, PartialEq, Eq)]
33pub enum RetainHandling {
34 SendAtSubscribe = 0,
35 SendIfNew = 1,
36 DontSend = 2,
37}