aboutsummaryrefslogtreecommitdiffstats
path: root/src/message.rs
diff options
context:
space:
mode:
authorDirk Van Haerenborgh <vhdirk@gmail.com>2018-11-04 21:11:59 +0100
committerDirk Van Haerenborgh <vhdirk@gmail.com>2018-11-04 21:11:59 +0100
commit228e7665bc4dc20929ea2a8cb52600da3d4dd839 (patch)
tree8ec41c3fc3db0c470c717befa08568010d2bed7f /src/message.rs
parent08aa3be11a25c8ccbdf4806a4a08c9267cae9140 (diff)
downloadmail-228e7665bc4dc20929ea2a8cb52600da3d4dd839.tar.gz
add MessageExt trait
Diffstat (limited to 'src/message.rs')
-rw-r--r--src/message.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/message.rs b/src/message.rs
index ed72997..f825e03 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -1,7 +1,7 @@
use std::ffi::CString;
use std::ops::Drop;
use std::path::PathBuf;
-use supercow::Phantomcow;
+use supercow::{Supercow, Phantomcow};
use error::{Error, Result};
use ffi;
@@ -131,5 +131,25 @@ impl<'o, Owner: MessageOwner + 'o> Message<'o, Owner> {
}
}
+
+pub trait MessageExt<'o, Owner: MessageOwner + 'o>{
+
+ fn replies<'s, M: Into<Supercow<'s, Message<'o, Owner>>>>(message: M) -> Messages<'s, Message<'o, Owner>> {
+ let messageref = message.into();
+ Messages::from_ptr(
+ unsafe { ffi::notmuch_message_get_replies(messageref.handle.ptr) },
+ Supercow::phantom(messageref)
+ )
+ }
+
+ fn filenames<'s, M: Into<Supercow<'s, Message<'o, Owner>>>>(message: M) -> Filenames<'s, Message<'o, Owner>> {
+ let messageref = message.into();
+ Filenames::from_ptr(
+ unsafe { ffi::notmuch_message_get_filenames(messageref.handle.ptr) },
+ Supercow::phantom(messageref)
+ )
+ }
+}
+
unsafe impl<'o, Owner: MessageOwner + 'o> Send for Message<'o, Owner> {}
unsafe impl<'o, Owner: MessageOwner + 'o> Sync for Message<'o, Owner> {}