#[derive(Debug, Clone, Copy)]
pub struct SorterSnapshot {
effective_target_bytes: u64,
resident_bytes: u64,
fd_headroom: u32,
active_external_sorts: u32,
}
impl SorterSnapshot {
#[must_use]
pub fn new(
effective_target_bytes: u64,
resident_bytes: u64,
fd_headroom: u32,
active_external_sorts: u32,
) -> Self {
Self {
effective_target_bytes,
resident_bytes,
fd_headroom,
active_external_sorts,
}
}
#[must_use]
pub fn effective_target_bytes(&self) -> u64 {
self.effective_target_bytes
}
#[must_use]
pub fn resident_bytes(&self) -> u64 {
self.resident_bytes
}
#[must_use]
pub fn fd_headroom(&self) -> u32 {
self.fd_headroom
}
#[must_use]
pub fn active_external_sorts(&self) -> u32 {
self.active_external_sorts
}
#[must_use]
pub fn available_memory_bytes(&self) -> u64 {
self.effective_target_bytes
.saturating_sub(self.resident_bytes)
}
}