diff options
| author | Dirk Van Haerenborgh <vhdirk@gmail.com> | 2018-03-23 11:56:52 +0100 |
|---|---|---|
| committer | Dirk Van Haerenborgh <vhdirk@gmail.com> | 2018-03-23 11:56:52 +0100 |
| commit | 7719c3b31f67eded7af6cd63d99b56c0f74c97cd (patch) | |
| tree | 9baa207493944912204e4452ccad85c8e6170d13 /src/message.rs | |
| parent | c7f1127b960d1208b12a1abbd33885826fb6dd0c (diff) | |
| download | mail-7719c3b31f67eded7af6cd63d99b56c0f74c97cd.tar.gz | |
wip
Diffstat (limited to 'src/message.rs')
| -rw-r--r-- | src/message.rs | 35 |
1 files changed, 34 insertions, 1 deletions
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) { |
