From 4513eafb2017b93850153fa978497335df9845be Mon Sep 17 00:00:00 2001 From: Dirk Van Haerenborgh Date: Fri, 23 Mar 2018 04:02:26 +0100 Subject: message and thread iterators --- src/message.rs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/message.rs') diff --git a/src/message.rs b/src/message.rs index e69de29..d774043 100644 --- a/src/message.rs +++ b/src/message.rs @@ -0,0 +1,35 @@ +use std; +use std::{ + ops, + marker, + ptr, +}; + +use error::Result; + +use ffi; +use utils::{ + NewFromPtr, +}; +use Database; + +#[derive(Debug)] +pub struct Message<'d>( + pub(crate) *mut ffi::notmuch_message_t, + marker::PhantomData<&'d mut Database>, +); + +impl<'d> NewFromPtr<*mut ffi::notmuch_message_t> for Message<'d> { + fn new(ptr: *mut ffi::notmuch_message_t) -> Message<'d> { + Message(ptr, marker::PhantomData) + } +} + + +impl<'d> ops::Drop for Message<'d> { + fn drop(&mut self) { + unsafe { + ffi::notmuch_message_destroy(self.0) + }; + } +} -- cgit v1.2.1