From 7719c3b31f67eded7af6cd63d99b56c0f74c97cd Mon Sep 17 00:00:00 2001 From: Dirk Van Haerenborgh Date: Fri, 23 Mar 2018 11:56:52 +0100 Subject: wip --- src/message.rs | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'src/message.rs') diff --git a/src/message.rs b/src/message.rs index 79fb19c..eb94cc8 100644 --- a/src/message.rs +++ b/src/message.rs @@ -2,7 +2,8 @@ use std; use std::{ ops, marker, - ptr, + str, + result }; use error::Result; @@ -10,8 +11,11 @@ use error::Result; use ffi; use utils::{ NewFromPtr, + ToStr }; use Query; +use Messages; +use Filenames; #[derive(Debug)] pub struct Message<'q, 'd:'q>( @@ -25,6 +29,35 @@ impl<'q, 'd> NewFromPtr<*mut ffi::notmuch_message_t> for Message<'q, 'd> { } } +impl<'q, 'd> Message<'q, 'd>{ + + pub fn id(self: &Self) -> result::Result<&'q str, str::Utf8Error>{ + let tid = unsafe { + ffi::notmuch_message_get_message_id(self.0) + }; + tid.to_str() + } + + pub fn replies(self: &Self) -> Messages<'q, 'd>{ + Messages::new(unsafe { + ffi::notmuch_message_get_replies(self.0) + }) + } + + pub fn count_files(self: &Self) -> i32 + { + unsafe { + ffi::notmuch_message_count_files(self.0) + } + } + + pub fn filenames(self: &Self) -> Filenames<'d>{ + Filenames::new(unsafe { + ffi::notmuch_message_get_filenames(self.0) + }) + } +} + impl<'q, 'd> ops::Drop for Message<'q, 'd> { fn drop(&mut self) { -- cgit v1.2.1