From 975a2bc8b9e94e67a5073bbb5988a79974e4779e Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Tue, 16 Feb 2016 22:33:06 +0100 Subject: [PATCH] Implement: execute_pre_read_hooks() --- libimagstore/src/store.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libimagstore/src/store.rs b/libimagstore/src/store.rs index 60cbc41b..0dc3ee14 100644 --- a/libimagstore/src/store.rs +++ b/libimagstore/src/store.rs @@ -404,7 +404,12 @@ impl Store { } pub fn execute_pre_read_hooks(&self, id: &StoreId) -> Result<()> { - unimplemented!() + let guard = self.pre_read_hooks.deref().lock(); + if guard.is_err() { return Err(StoreError::new(StoreErrorKind::PreHookExecuteError, None)) } + + guard.unwrap().deref().iter() + .fold(Ok(()), |acc, hook| acc.and_then(|_| hook.pre_read(id))) + .map_err(|e| StoreError::new(StoreErrorKind::PreHookExecuteError, Some(Box::new(e)))) } pub fn execute_post_read_hooks<'a>(&'a self, fle: FileLockEntry<'a>)