aboutsummaryrefslogtreecommitdiffstats
path: root/src/query.rs
diff options
context:
space:
mode:
authorDirk Van Haerenborgh <vhdirk@gmail.com>2018-03-23 06:49:37 +0100
committerDirk Van Haerenborgh <vhdirk@gmail.com>2018-03-23 06:49:37 +0100
commit257e61b035c8fa80458f3aa44e068a3522b6686c (patch)
treea0aaab9cd09cea6b02cdd500d1cd8469d25a346d /src/query.rs
parentccfa3d4864ff043abf1800e5397251afad7693d5 (diff)
downloadmail-257e61b035c8fa80458f3aa44e068a3522b6686c.tar.gz
search threads
Diffstat (limited to 'src/query.rs')
-rw-r--r--src/query.rs18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/query.rs b/src/query.rs
index 6d7da64..68e9baf 100644
--- a/src/query.rs
+++ b/src/query.rs
@@ -13,6 +13,7 @@ use utils::{
};
use Database;
use Messages;
+use Threads;
use ffi::Sort;
#[derive(Debug)]
@@ -53,7 +54,7 @@ impl<'d> Query<'d> {
pub fn search_messages(self: &Self) -> Result<Option<Messages>>
{
let mut msgs = ptr::null_mut();
- try!(unsafe {
+ let ret = try!(unsafe {
ffi::notmuch_query_search_messages(
self.0, &mut msgs,
)
@@ -64,6 +65,21 @@ impl<'d> Query<'d> {
true => Ok(Some(Messages::new(msgs))),
}
}
+
+ pub fn search_threads(self: &Self) -> Result<Option<Threads>>
+ {
+ let mut thrds = ptr::null_mut();
+ let ret = try!(unsafe {
+ ffi::notmuch_query_search_threads(
+ self.0, &mut thrds,
+ )
+ }.as_result());
+
+ match thrds.is_null() {
+ false => Ok(None),
+ true => Ok(Some(Threads::new(thrds))),
+ }
+ }
}
impl<'d> NewFromPtr<*mut ffi::notmuch_query_t> for Query<'d> {