]> git.mikk.net Git - mtbl-rs/commitdiff
Add support for Boxed dyn Iter objects
authorChris Mikkelson <cmikk@fsi.io>
Fri, 19 Jul 2024 03:27:11 +0000 (22:27 -0500)
committerChris Mikkelson <cmikk@fsi.io>
Fri, 19 Jul 2024 03:27:11 +0000 (22:27 -0500)
src/source.rs

index 42eee8f5a448d7a518db7e62eeda7dfa9e8c7444..0bb74a6c131a703b2f306c79611ed25f81368833 100644 (file)
@@ -5,6 +5,12 @@ pub trait Iter: Iterator<Item = Entry> {
     fn seek(&mut self, key: &[u8]);
 }
 
+impl<'a> Iter for Box<dyn Iter + 'a> {
+    fn seek(&mut self, key: &[u8]) {
+        self.as_mut().seek(key);
+    }
+}
+
 pub trait Source {
     fn iter(&self) -> impl Iter;
 
@@ -52,6 +58,7 @@ impl<I: Iter> Iterator for PrefixIter<I> {
         }
     }
 }
+
 impl<I: Iter> Iter for PrefixIter<I> {
     fn seek(&mut self, key: &[u8]) {
         self.iter.seek(key);
@@ -74,6 +81,7 @@ impl<I: Iter> Iterator for RangeIter<I> {
         }
     }
 }
+
 impl<I: Iter> Iter for RangeIter<I> {
     fn seek(&mut self, key: &[u8]) {
         self.iter.seek(key);