Skip to main content

CompactionStrategy

Trait CompactionStrategy 

Source
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§

Source

fn name(&self) -> &str

Source

fn can_handle(&self, layout: &MemoryLayoutTracker) -> bool

Source

fn estimate_benefit(&self, layout: &MemoryLayoutTracker) -> f64

Source

fn execute( &mut self, layout: &mut MemoryLayoutTracker, ) -> Result<CompactionResult, DefragError>

Source

fn get_statistics(&self) -> CompactionStats

Source

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".

Implementors§