diff options
-rw-r--r-- | lib/core/libimagstore/src/store.rs | 12 |
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 |