aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Van Haerenborgh <vhdirk@gmail.com>2019-10-18 16:09:48 +0200
committerDirk Van Haerenborgh <vhdirk@gmail.com>2019-10-18 16:10:32 +0200
commit1e4e67fde1a7c75c9a81312d71340801d0ee06d3 (patch)
treefdcdc3ab3429f1c9d57574cd8affdcc23a00ea9b
parentcf3b912a94dd18cb3f5af664e11a0e2391d16b0b (diff)
downloadmail-1e4e67fde1a7c75c9a81312d71340801d0ee06d3.tar.gz
message: implement reindex
-rw-r--r--src/ffi.rs13
-rw-r--r--src/message.rs5
2 files changed, 18 insertions, 0 deletions
diff --git a/src/ffi.rs b/src/ffi.rs
index 6075014..1e29783 100644
--- a/src/ffi.rs
+++ b/src/ffi.rs
@@ -1114,6 +1114,19 @@ extern "C" {
message: *mut notmuch_message_t,
) -> *mut notmuch_filenames_t;
+ /// Re-index the e-mail corresponding to 'message' using the supplied index options
+ ///
+ /// Returns the status of the re-index operation. (see the return
+ /// codes documented in notmuch_database_index_file)
+ ///
+ /// After reindexing, the user should discard the message object passed
+ /// in here by calling notmuch_message_destroy, since it refers to the
+ /// original message, not to the reindexed message.
+ pub fn notmuch_message_reindex(
+ message: *mut notmuch_message_t,
+ indexopts: *mut notmuch_indexopts_t
+ ) -> notmuch_status_t;
+
/// Get a value of a flag for the email corresponding to 'message'.
pub fn notmuch_message_get_flag(
message: *mut notmuch_message_t,
diff --git a/src/message.rs b/src/message.rs
index 2172713..73727f9 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -11,6 +11,7 @@ use FilenamesOwner;
use Messages;
use Tags;
use TagsOwner;
+use IndexOpts;
pub trait MessageOwner: Send + Sync {}
@@ -118,6 +119,10 @@ where
pub fn maildir_flags_to_tags(self: &Self) -> Result<()> {
unsafe { ffi::notmuch_message_maildir_flags_to_tags(self.ptr) }.as_result()
}
+
+ pub fn reindex<'d>(self: &Self, indexopts: IndexOpts<'d>) -> Result<()> {
+ unsafe { ffi::notmuch_message_reindex(self.ptr, indexopts.ptr) }.as_result()
+ }
}
pub trait MessageExt<'o, O>