#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ChannelConfig {
pub(crate) id: u16,
pub(crate) label: String,
pub(crate) ordered: bool,
pub(crate) max_packet_lifetime_ms: Option<u32>,
pub(crate) max_retransmits: Option<u16>,
}
impl ChannelConfig {
#[must_use]
pub fn reliable_ordered() -> Self {
Self {
id: 0,
label: String::new(),
ordered: true,
max_packet_lifetime_ms: None,
max_retransmits: None,
}
}
#[must_use]
pub fn unreliable_max_retransmits(retransmits: u16) -> Self {
Self {
id: 0,
label: String::new(),
ordered: false,
max_packet_lifetime_ms: None,
max_retransmits: Some(retransmits),
}
}
#[must_use]
pub fn unreliable_max_lifetime(lifetime_ms: u32) -> Self {
Self {
id: 0,
label: String::new(),
ordered: false,
max_packet_lifetime_ms: Some(lifetime_ms),
max_retransmits: None,
}
}
#[must_use]
pub fn id(&self) -> u16 {
self.id
}
#[must_use]
pub fn label(&self) -> &str {
&self.label
}
#[must_use]
pub fn ordered(&self) -> bool {
self.ordered
}
#[must_use]
pub fn max_packet_lifetime_ms(&self) -> Option<u32> {
self.max_packet_lifetime_ms
}
#[must_use]
pub fn max_retransmits(&self) -> Option<u16> {
self.max_retransmits
}
}