mod client;
mod server;
mod shared;
use core::num::NonZero;
pub use client::Config as ClientConfig;
pub use server::Config as ServerConfig;
pub use shared::Config as SharedConfig;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum KeepAlive {
#[default]
Infinite,
Seconds(NonZero<u16>),
}
impl KeepAlive {
pub(crate) fn as_u16(self) -> u16 {
match self {
KeepAlive::Infinite => 0,
KeepAlive::Seconds(s) => s.get(),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum SessionExpiryInterval {
#[default]
EndOnDisconnect,
NeverEnd,
Seconds(u32),
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum MaximumPacketSize {
#[default]
Unlimited,
Limit(NonZero<u32>),
}
impl MaximumPacketSize {
pub(crate) fn as_u32(self) -> u32 {
match self {
Self::Unlimited => u32::MAX,
Self::Limit(l) => l.get(),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct ReceiveMaximum(pub NonZero<u16>);