#[allow(unused_imports)]
use super::*;
#[derive(Debug, Default)]
pub(crate) struct FlushState {
pub records_since_flush: u64,
pub bytes_since_flush: u64,
pub total_records: u64,
pub total_bytes: u64,
pub flush_count: u64,
}
impl FlushState {
pub fn record_write(&mut self, records: u64, bytes: u64) {
self.records_since_flush += records;
self.bytes_since_flush += bytes;
self.total_records += records;
self.total_bytes += bytes;
}
pub fn should_flush(&self, policy: &FlushPolicy) -> bool {
match policy {
FlushPolicy::Manual => false,
FlushPolicy::EveryNRecords(n) => self.records_since_flush >= *n,
FlushPolicy::EveryNBytes(n) => self.bytes_since_flush >= *n,
}
}
pub fn on_flush(&mut self) {
self.records_since_flush = 0;
self.bytes_since_flush = 0;
self.flush_count += 1;
}
}