diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-10-19 20:11:39 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-10-20 18:30:44 +0200 |
commit | e9519e9a3dd7af7ee6d6ce4fc6e46f0c7ea0b7b1 (patch) | |
tree | eddceef6fcb4b5148faad8e3bf1b126e71eeb5ed /libimagmail | |
parent | 7a5134ead26a32645e5a7a2237653e7506cca69e (diff) |
Resolve TODO: Do not hide error, but instantly return it
Diffstat (limited to 'libimagmail')
-rw-r--r-- | libimagmail/src/hasher.rs | 15 |
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()) }) |