diff options
| author | Dirk Van Haerenborgh <vhdirk@gmail.com> | 2018-11-04 21:11:59 +0100 |
|---|---|---|
| committer | Dirk Van Haerenborgh <vhdirk@gmail.com> | 2018-11-04 21:11:59 +0100 |
| commit | 228e7665bc4dc20929ea2a8cb52600da3d4dd839 (patch) | |
| tree | 8ec41c3fc3db0c470c717befa08568010d2bed7f /src/message.rs | |
| parent | 08aa3be11a25c8ccbdf4806a4a08c9267cae9140 (diff) | |
| download | mail-228e7665bc4dc20929ea2a8cb52600da3d4dd839.tar.gz | |
add MessageExt trait
Diffstat (limited to 'src/message.rs')
| -rw-r--r-- | src/message.rs | 22 |
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> {} |
