#[derive(Debug, Clone)]
pub struct BatchConfig {
pub max_batch_size: usize,
pub flush_interval_ms: u64,
pub auto_flush: bool,
}
impl Default for BatchConfig {
fn default() -> Self {
Self {
max_batch_size: 50,
flush_interval_ms: 5000,
auto_flush: true,
}
}
}
impl BatchConfig {
#[must_use]
pub fn new(max_batch_size: usize, flush_interval_ms: u64, auto_flush: bool) -> Self {
Self {
max_batch_size,
flush_interval_ms,
auto_flush,
}
}
#[must_use]
pub fn high_frequency() -> Self {
Self {
max_batch_size: 20,
flush_interval_ms: 2000,
auto_flush: true,
}
}
#[must_use]
pub fn low_frequency() -> Self {
Self {
max_batch_size: 100,
flush_interval_ms: 10000,
auto_flush: true,
}
}
#[must_use]
pub fn manual_only() -> Self {
Self {
max_batch_size: usize::MAX,
flush_interval_ms: u64::MAX,
auto_flush: false,
}
}
}