summaryrefslogtreecommitdiffstats
path: root/libimagmail
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-10-19 20:11:39 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-10-20 18:30:44 +0200
commite9519e9a3dd7af7ee6d6ce4fc6e46f0c7ea0b7b1 (patch)
treeeddceef6fcb4b5148faad8e3bf1b126e71eeb5ed /libimagmail
parent7a5134ead26a32645e5a7a2237653e7506cca69e (diff)
Resolve TODO: Do not hide error, but instantly return it
Diffstat (limited to 'libimagmail')
-rw-r--r--libimagmail/src/hasher.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/libimagmail/src/hasher.rs b/libimagmail/src/hasher.rs
index f0ced139..dc1df124 100644
--- a/libimagmail/src/hasher.rs
+++ b/libimagmail/src/hasher.rs
@@ -50,12 +50,15 @@ impl Hasher for MailHasher {
let filter = subject_filter.or(from_filter).or(to_filter);
- let s : String = mail.headers
- .iter()
- .filter(|item| filter.filter(item))
- .filter_map(|hdr| hdr.get_value().ok()) // TODO: Do not hide error here
- .collect::<Vec<String>>()
- .join("");
+ let mut v = vec![];
+ for hdr in mail.headers.iter().filter(|item| filter.filter(item)) {
+ let s = try!(hdr.get_value()
+ .map_err(Box::new)
+ .map_err(|e| REK::RefHashingError.into_error_with_cause(e)));
+
+ v.push(s);
+ }
+ let s : String = v.join("");
self.defaulthasher.create_hash(pb, &mut s.as_bytes())
})