From c746abb443b7bb4541ebbef2b71e8d0f9eb39f6a Mon Sep 17 00:00:00 2001 From: Niko PLP Date: Fri, 7 Jul 2023 15:28:13 +0300 Subject: [PATCH] adding iter_from to multi store --- .gitignore | 1 + src/store/multi.rs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) 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