use crate::domain::IndexKind;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct IndexRefreshPlan {
kinds: Vec<IndexKind>,
}
impl IndexRefreshPlan {
pub fn from_requested(kinds: Vec<IndexKind>) -> Self {
if kinds.is_empty() {
return Self {
kinds: IndexKind::ALL.to_vec(),
};
}
let mut deduped = Vec::new();
for kind in kinds {
if !deduped.contains(&kind) {
deduped.push(kind);
}
}
Self { kinds: deduped }
}
pub fn into_kinds(self) -> Vec<IndexKind> {
self.kinds
}
}
#[cfg(test)]
#[path = "mod_tests.rs"]
mod tests;