#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum AccessKind {
RecordFetch,
ScannedRow,
IndexEntry,
}
#[cfg(any(test, feature = "access-stats"))]
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
pub struct AccessStats {
pub record_fetches: u64,
pub scanned_rows: u64,
pub index_entries: u64,
}
#[cfg(any(test, feature = "access-stats"))]
impl AccessStats {
pub(crate) fn add(&mut self, kind: AccessKind, count: u64) {
let counter = match kind {
AccessKind::RecordFetch => &mut self.record_fetches,
AccessKind::ScannedRow => &mut self.scanned_rows,
AccessKind::IndexEntry => &mut self.index_entries,
};
*counter = counter.saturating_add(count);
}
}