diff options
Diffstat (limited to 'src/query.rs')
| -rw-r--r-- | src/query.rs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/query.rs b/src/query.rs index 2fbe031..654d4c6 100644 --- a/src/query.rs +++ b/src/query.rs @@ -28,18 +28,19 @@ impl<'d> Query<'d> { } /// Filter messages according to the query and return - pub fn search_messages(self: &Self) -> std::result::Result<Messages, ()> + pub fn search_messages(self: &Self) -> Result<Option<Messages>> { let mut msgs = ptr::null_mut(); - unsafe { - msgs = ffi::notmuch_query_search_messages(self.0); - } - if !msgs.is_null() { - return Ok(Messages::new(msgs)); - }else{ - return Err(()); + try!(unsafe { + ffi::notmuch_query_search_messages( + self.0, &mut msgs, + ) + }.as_result()); + + match msgs.is_null() { + false => Ok(None), + true => Ok(Some(Messages::new(msgs))), } - } } |
