use core::num::NonZero;
use crate::{
config::{MaximumPacketSize, ReceiveMaximum},
types::QoS,
};
#[derive(Debug, Clone, Copy)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct Config {
pub receive_maximum: ReceiveMaximum,
pub maximum_qos: QoS,
pub retain_supported: bool,
pub maximum_packet_size: MaximumPacketSize,
pub topic_alias_maximum: u16,
pub wildcard_subscription_supported: bool,
pub subscription_identifiers_supported: bool,
pub shared_subscription_supported: bool,
}
impl Default for Config {
fn default() -> Self {
Self {
receive_maximum: ReceiveMaximum(NonZero::new(u16::MAX).unwrap()),
maximum_qos: QoS::ExactlyOnce,
retain_supported: true,
maximum_packet_size: MaximumPacketSize::default(),
topic_alias_maximum: 0,
wildcard_subscription_supported: true,
subscription_identifiers_supported: true,
shared_subscription_supported: true,
}
}
}