diff options
| author | eaon <eaon@mit.edu> | 2018-11-06 15:04:41 +0100 |
|---|---|---|
| committer | Dirk Van Haerenborgh <vhdirk@gmail.com> | 2018-11-06 15:04:41 +0100 |
| commit | 214eba6f5b9a8bfefc778ce3e22cd7d2245f9628 (patch) | |
| tree | 84996f29dd6bd3e22b40571c65748138ba42441e | |
| parent | 49416d12e98ce3c97262ab8ac73cca57adb978b9 (diff) | |
| download | mail-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.rs | 7 |
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) + }) } } |
