diff --git a/.gitignore b/.gitignore index e347fa3..fbda4b6 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ target/ **/*.rs.bk Cargo.lock +.vscode/ \ No newline at end of file diff --git a/src/store/multi.rs b/src/store/multi.rs index f50b007..d67f44b 100644 --- a/src/store/multi.rs +++ b/src/store/multi.rs @@ -105,6 +105,23 @@ where Ok(res) } + /// Provides a cursor to all of the values starting at key or after + pub fn iter_from<'r, R, I, C, K>(&self, reader: &'r R, k: K) -> Result, StoreError> + where + R: Readable<'r, Database = D, RoCursor = C>, + I: BackendIter<'r>, + C: BackendRoCursor<'r, Iter = I>, + K: AsRef<[u8]> + 'r, + { + let cursor = reader.open_ro_cursor(&self.db)?; + let iter = cursor.into_iter_from(k); + + Ok(Iter { + iter, + phantom: PhantomData, + }) + } + /// Provides the first value that matches this key pub fn get_first<'r, R, K>(&self, reader: &'r R, k: K) -> Result>, StoreError> where