From 214eba6f5b9a8bfefc778ce3e22cd7d2245f9628 Mon Sep 17 00:00:00 2001 From: eaon Date: Tue, 6 Nov 2018 09:04:41 -0500 Subject: 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 --- src/message.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src') 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> { 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) + }) } } -- cgit v1.2.1