#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum OverflowMode {
DropOldest,
DropNewest,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct OutputBufferPolicy {
pub max_lines: Option<usize>,
pub overflow: OverflowMode,
}
impl OutputBufferPolicy {
pub fn unbounded() -> Self {
Self {
max_lines: None,
overflow: OverflowMode::DropOldest,
}
}
pub fn bounded(max_lines: usize) -> Self {
Self {
max_lines: Some(max_lines),
overflow: OverflowMode::DropOldest,
}
}
pub fn with_overflow(mut self, overflow: OverflowMode) -> Self {
self.overflow = overflow;
self
}
}
impl Default for OutputBufferPolicy {
fn default() -> Self {
Self::unbounded()
}
}