summaryrefslogtreecommitdiffstats
path: root/src/indexer/merge_policy.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/indexer/merge_policy.rs')
-rw-r--r--src/indexer/merge_policy.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/indexer/merge_policy.rs b/src/indexer/merge_policy.rs
index ae10643..5e3adcf 100644
--- a/src/indexer/merge_policy.rs
+++ b/src/indexer/merge_policy.rs
@@ -43,3 +43,28 @@ impl MergePolicy for NoMergePolicy {
}
}
+
+#[cfg(test)]
+pub mod tests {
+
+ use super::*;
+ use core::SegmentId;
+ use core::SegmentMeta;
+
+ #[derive(Debug)]
+ pub struct MergeWheneverPossible;
+
+ impl MergePolicy for MergeWheneverPossible {
+ fn compute_merge_candidates(&self, segment_metas: &[SegmentMeta]) -> Vec<MergeCandidate> {
+ let segment_ids = segment_metas
+ .iter()
+ .map(|segment_meta| segment_meta.id())
+ .collect::<Vec<SegmentId>>();
+ vec!(MergeCandidate(segment_ids))
+ }
+
+ fn box_clone(&self) -> Box<MergePolicy> {
+ box MergeWheneverPossible
+ }
+ }
+} \ No newline at end of file