use crate::{DemuxerName, limits::DemuxLimits};
#[cfg(doc)]
use super::CarrierDemuxer;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub struct DemuxerOpen {
limits: DemuxLimits,
plaintext_demuxers: Vec<DemuxerName>,
}
impl Default for DemuxerOpen {
#[cfg_attr(not(tarpaulin), inline(always))]
fn default() -> Self {
Self::new()
}
}
impl DemuxerOpen {
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn new() -> Self {
Self {
limits: DemuxLimits::new(),
plaintext_demuxers: Vec::new(),
}
}
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn limits(&self) -> DemuxLimits {
self.limits
}
#[cfg_attr(not(tarpaulin), inline(always))]
pub fn plaintext_demuxers(&self) -> &[DemuxerName] {
&self.plaintext_demuxers
}
#[cfg_attr(not(tarpaulin), inline(always))]
#[must_use]
pub fn with_limits(mut self, value: DemuxLimits) -> Self {
self.limits = value;
self
}
#[cfg_attr(not(tarpaulin), inline(always))]
#[must_use]
pub fn with_plaintext_demuxers(mut self, value: Vec<DemuxerName>) -> Self {
self.plaintext_demuxers = value;
self
}
#[cfg_attr(not(tarpaulin), inline(always))]
pub const fn set_limits(&mut self, value: DemuxLimits) -> &mut Self {
self.limits = value;
self
}
#[cfg_attr(not(tarpaulin), inline(always))]
pub fn set_plaintext_demuxers(&mut self, value: Vec<DemuxerName>) -> &mut Self {
self.plaintext_demuxers = value;
self
}
}