summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/core/libimagstore/src/store.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/core/libimagstore/src/store.rs b/lib/core/libimagstore/src/store.rs
index 26612965..5137b517 100644
--- a/lib/core/libimagstore/src/store.rs
+++ b/lib/core/libimagstore/src/store.rs
@@ -216,6 +216,18 @@ impl Store {
Ok(store)
}
+ pub fn is_borrowed<S: IntoStoreId>(&self, id: S) -> Result<bool> {
+ let id = id.into_storeid()?;
+ debug!("Checking whether id is borrowed: '{}'", id);
+
+ self.entries
+ .read()
+ .map_err(|_| Error::from(EM::LockError))
+ .context(format_err!("Error while checking whether {} is borrowed", id))
+ .map(|cache| cache.get(&id).map(|e| e.is_borrowed()).unwrap_or(false))
+ .map_err(Error::from)
+ }
+
/// Creates the Entry at the given location (inside the entry)
///
/// # Return value