aboutsummaryrefslogtreecommitdiffstats
path: root/src/message.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/message.rs')
-rw-r--r--src/message.rs35
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) {