pub trait MemoryConsumer: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn memory_usage(&self) -> usize;
fn eviction_priority(&self) -> u8;
fn region(&self) -> MemoryRegion;
fn evict(&self, target_bytes: usize) -> usize;
// Provided methods
fn can_spill(&self) -> bool { ... }
fn spill(&self, _target_bytes: usize) -> Result<usize, SpillError> { ... }
fn reload(&self) -> Result<(), SpillError> { ... }
}Expand description
Trait for subsystems that consume managed memory.
Memory consumers register with the buffer manager and participate in eviction when memory pressure is detected. Lower priority consumers are evicted first.
Required Methods§
Sourcefn memory_usage(&self) -> usize
fn memory_usage(&self) -> usize
Returns current memory usage in bytes.
Sourcefn eviction_priority(&self) -> u8
fn eviction_priority(&self) -> u8
Returns eviction priority (0 = lowest priority, evict first; 255 = highest, evict last).
Sourcefn region(&self) -> MemoryRegion
fn region(&self) -> MemoryRegion
Returns which memory region this consumer belongs to.