aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreaon <eaon@mit.edu>2018-11-06 15:04:41 +0100
committerDirk Van Haerenborgh <vhdirk@gmail.com>2018-11-06 15:04:41 +0100
commit214eba6f5b9a8bfefc778ce3e22cd7d2245f9628 (patch)
tree84996f29dd6bd3e22b40571c65748138ba42441e
parent49416d12e98ce3c97262ab8ac73cca57adb978b9 (diff)
downloadmail-214eba6f5b9a8bfefc778ce3e22cd7d2245f9628.tar.gz
Make Message::header return an Option in its Result (#9)
* Distinguishing between (non-)empty Message::header returns * Switch Message::header Ok result to use nicer match syntax
-rw-r--r--src/message.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/message.rs b/src/message.rs
index dbf7cf2..ef9079f 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -83,13 +83,16 @@ impl<'o, Owner: MessageOwner + 'o> Message<'o, Owner> {
unsafe { ffi::notmuch_message_get_date(self.handle.ptr) }
}
- pub fn header(&self, name: &str) -> Result<&str> {
+ pub fn header(&self, name: &str) -> Result<Option<&str>> {
let name = CString::new(name).unwrap();
let ret = unsafe { ffi::notmuch_message_get_header(self.handle.ptr, name.as_ptr()) };
if ret.is_null() {
Err(Error::UnspecifiedError)
} else {
- Ok(ret.to_str().unwrap())
+ Ok(match ret.to_str().unwrap() {
+ "" => None,
+ ret => Some(ret)
+ })
}
}