From 3df106ce8b83c0a3aae0b0f32772e33bbdd2ea2f Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Fri, 4 Dec 2015 14:02:30 +0100 Subject: [PATCH] StorageBackend::iter_ids() return Result<> with StorageBackendError on error --- src/storage/backend.rs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/storage/backend.rs b/src/storage/backend.rs index 40ace0f0..b349c166 100644 --- a/src/storage/backend.rs +++ b/src/storage/backend.rs @@ -72,15 +72,23 @@ impl StorageBackend { } } - pub fn iter_ids(&self, m: &Module) -> Option> + pub fn iter_ids(&self, m: &Module) -> Result, StorageBackendError> { - glob(&self.prefix_of_files_for_module(m)[..]).and_then(|globlist| { - let v = globlist.filter_map(Result::ok) - .map(|pbuf| FileID::from(&pbuf)) - .collect::>() - .into_iter(); - Ok(v) - }).ok() + glob(&self.prefix_of_files_for_module(m)[..]) + .and_then(|globlist| { + let v = globlist.filter_map(Result::ok) + .map(|pbuf| FileID::from(&pbuf)) + .collect::>() + .into_iter(); + Ok(v) + }) + .map_err(|e| { + let serr = StorageBackendError::build( + "iter_ids()", + "Cannot iter on file ids", + None); + serr + }) } pub fn iter_files<'a, HP>(&self, m: &'a Module, p: &Parser)