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;
fn reset(&mut self);
}Expand description
Compaction strategy interface
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
Sourcefn reset(&mut self)
fn reset(&mut self)
Clear this strategy’s accumulated statistics, e.g. as part of
DefragmentationEngine::reset.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".