aboutsummaryrefslogtreecommitdiffstats
path: root/src/message.rs
diff options
context:
space:
mode:
authorDirk Van Haerenborgh <vhdirk@gmail.com>2019-10-25 09:52:00 +0200
committerDirk Van Haerenborgh <vhdirk@gmail.com>2019-10-25 09:52:00 +0200
commit9d3eaa7aa7e2be84e150075fb12e97083d7c61f8 (patch)
tree0a37df89edab79f930a01d686ba65c3bc5dd8ff1 /src/message.rs
parent51f063aaf2cab590a6cfe42e1da3f7bbd6423ba5 (diff)
downloadmail-9d3eaa7aa7e2be84e150075fb12e97083d7c61f8.tar.gz
implement message_properties
Diffstat (limited to 'src/message.rs')
-rw-r--r--src/message.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/message.rs b/src/message.rs
index 77aecc3..b4eacc8 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -9,6 +9,7 @@ use utils::{ToStr, ScopedPhantomcow, ScopedSupercow};
use Filenames;
use FilenamesOwner;
use Messages;
+use MessageProperties;
use Tags;
use TagsOwner;
use IndexOpts;
@@ -131,6 +132,11 @@ where
pub fn thaw(self: &Self) -> Result<()> {
unsafe { ffi::notmuch_message_thaw(self.ptr) }.as_result()
}
+
+ pub fn get_properties<'m>(&'m self, key: &str, exact: bool) -> MessageProperties<'m, 'o, O>
+ {
+ <Self as MessageExt<'o, O>>::get_properties(self, key, exact)
+ }
}
pub trait MessageExt<'o, O>
@@ -169,6 +175,20 @@ where
Supercow::phantom(messageref),
)
}
+
+ fn get_properties<'m, M>(message: M, key: &str, exact: bool) -> MessageProperties<'m, 'o, O>
+ where
+ M: Into<ScopedSupercow<'m, Message<'o, O>>>,
+ {
+ let messageref = message.into();
+ let key_str = CString::new(key).unwrap();
+
+ let props = unsafe {
+ ffi::notmuch_message_get_properties(messageref.ptr, key_str.as_ptr(), exact as i32)
+ };
+
+ MessageProperties::from_ptr(props, Supercow::phantom(messageref))
+ }
}
impl<'o, O> MessageExt<'o, O> for Message<'o, O> where O: MessageOwner + 'o {}