pub trait CompactionStrategy: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn can_handle(&self, layout: &MemoryLayoutTracker) -> bool;
fn estimate_benefit(&self, layout: &MemoryLayoutTracker) -> f64;
fn execute(
&mut self,
layout: &mut MemoryLayoutTracker,
) -> Result<CompactionResult, DefragError>;
fn get_statistics(&self) -> CompactionStats;
}Expand description
Compaction strategy interface