summaryrefslogtreecommitdiffstats
path: root/src/metric
diff options
context:
space:
mode:
Diffstat (limited to 'src/metric')
-rw-r--r--src/metric/forest.rs18
-rw-r--r--src/metric/soft.rs10
2 files changed, 28 insertions, 0 deletions
diff --git a/src/metric/forest.rs b/src/metric/forest.rs
index 47eb413..887ff12 100644
--- a/src/metric/forest.rs
+++ b/src/metric/forest.rs
@@ -50,6 +50,24 @@ where
}
len
}
+
+ /// Check if this forest is empty.
+ pub fn is_empty(&self) -> bool {
+ if !self.buffer.is_empty() {
+ return false;
+ }
+
+ self.trees.iter().flatten().next().is_none()
+ }
+}
+
+impl<T, U> Default for Forest<U>
+where
+ U: FromIterator<T> + IntoIterator<Item = T>,
+{
+ fn default() -> Self {
+ Self::new()
+ }
}
impl<T, U> Extend<T> for Forest<U>
diff --git a/src/metric/soft.rs b/src/metric/soft.rs
index 0d7dcdb..d443bfd 100644
--- a/src/metric/soft.rs
+++ b/src/metric/soft.rs
@@ -82,6 +82,16 @@ where
}
}
+impl<T, U> Default for SoftSearch<U>
+where
+ T: SoftDelete,
+ U: FromIterator<T> + IntoIterator<Item = T>,
+{
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
impl<T, U: Extend<T>> Extend<T> for SoftSearch<U> {
fn extend<I: IntoIterator<Item = T>>(&mut self, iter: I) {
self.0.extend(iter);