use crate::config::SessionExpiryInterval;
#[derive(Debug, Clone, Copy)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct Options {
pub publish_will: bool,
pub session_expiry_interval: Option<SessionExpiryInterval>,
}
impl Default for Options {
fn default() -> Self {
Self::new()
}
}
impl Options {
#[must_use]
pub const fn new() -> Self {
Self {
publish_will: false,
session_expiry_interval: None,
}
}
#[must_use]
pub const fn publish_will(mut self) -> Self {
self.publish_will = true;
self
}
#[must_use]
pub const fn session_expiry_interval(mut self, interval: SessionExpiryInterval) -> Self {
self.session_expiry_interval = Some(interval);
self
}
}