use crate::segment::common::memory_usage::{ComponentMemoryUsage, FileStorageIntent, MemoryReporter};
use crate::segment::id_tracker::id_tracker_base::{IdTracker as _, IdTrackerEnum};
impl MemoryReporter for IdTrackerEnum {
fn memory_usage(&self) -> ComponentMemoryUsage {
match self {
IdTrackerEnum::MutableIdTracker(tracker) => {
ComponentMemoryUsage::from_files_and_ram(
tracker.files(),
FileStorageIntent::OnDisk,
tracker.ram_usage_bytes() as u64,
)
}
IdTrackerEnum::ImmutableIdTracker(tracker) => {
ComponentMemoryUsage::from_files_and_ram(
tracker.files(),
FileStorageIntent::OnDisk,
tracker.ram_usage_bytes() as u64,
)
}
IdTrackerEnum::InMemoryIdTracker(tracker) => {
ComponentMemoryUsage::ram_only(tracker.ram_usage_bytes() as u64)
}
}
}
}