use crate::flash::{Flash, PageId};
#[derive(Clone, Debug)]
pub enum WearLevelingPolicy {
None,
RoundRobin,
Greedy,
Probabilistic,
}
impl WearLevelingPolicy {
pub fn select_pages(&self, flash: &Flash, needed: usize) -> Vec<PageId> {
match self {
WearLevelingPolicy::None => {
(0..needed).map(PageId).collect()
}
WearLevelingPolicy::Greedy => {
flash.find_wear_leveled_pages(needed)
}
_ => flash.find_wear_leveled_pages(needed), }
}
}