summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2017-04-25 14:36:41 +0200
committerMatthias Beyer <mail@beyermatthias.de>2017-06-18 19:07:15 +0200
commitbee97c8758320e4bc28b9fc204029b884bbb60c2 (patch)
tree4d3a430563f0342c3e42e2c2069ff95f4600ebe4
parente75c37fbb2eaad7018c1ad18c227e82e67ec9629 (diff)
downloadimag-bee97c8758320e4bc28b9fc204029b884bbb60c2.zip
imag-bee97c8758320e4bc28b9fc204029b884bbb60c2.tar.gz
Add Store::entries()
-rw-r--r--libimagstore/src/store.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/libimagstore/src/store.rs b/libimagstore/src/store.rs
index b3d10cf..ad8c88e 100644
--- a/libimagstore/src/store.rs
+++ b/libimagstore/src/store.rs
@@ -749,6 +749,18 @@ impl Store {
Ok(())
}
+ /// Get _all_ entries in the store (by id as iterator)
+ pub fn entries(&self) -> Result<StoreIdIterator> {
+ let iter = Walk::new(self.path().clone(), "")
+ .filter_map(|id| match id {
+ StoreObject::Id(sid) => Some(sid),
+ _ => None
+ });
+
+ Ok(StoreIdIterator::new(Box::new(iter)))
+
+ }
+
/// Gets the path where this store is on the disk
pub fn path(&self) -> &PathBuf {
&self.location