diff options
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) { |
