From bb8a60ddc9fdecc6c1004639514b538578e37532 Mon Sep 17 00:00:00 2001 From: Dirk Van Haerenborgh Date: Thu, 20 Dec 2018 08:21:03 +0100 Subject: remove ptr indirection --- src/messages.rs | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'src/messages.rs') diff --git a/src/messages.rs b/src/messages.rs index db92f73..01e0ea4 100644 --- a/src/messages.rs +++ b/src/messages.rs @@ -7,26 +7,24 @@ use Message; use Tags; use TagsOwner; -#[derive(Debug)] -pub struct MessagesPtr { - pub ptr: *mut ffi::notmuch_messages_t, -} - -impl Drop for MessagesPtr { - fn drop(self: &mut Self) { - unsafe { ffi::notmuch_messages_destroy(self.ptr) }; - } -} - #[derive(Debug)] pub struct Messages<'o, O> where O: MessageOwner + 'o, { - pub(crate) handle: MessagesPtr, + pub(crate) ptr: *mut ffi::notmuch_messages_t, marker: ScopedPhantomcow<'o, O>, } +impl<'o, O> Drop for Messages<'o, O> +where + O: MessageOwner + 'o, +{ + fn drop(self: &mut Self) { + unsafe { ffi::notmuch_messages_destroy(self.ptr) }; + } +} + impl<'o, O> Messages<'o, O> where O: MessageOwner + 'o, @@ -36,7 +34,7 @@ where P: Into>, { Messages { - handle: MessagesPtr { ptr }, + ptr, marker: owner.into(), } } @@ -64,7 +62,7 @@ where */ pub fn collect_tags<'m>(self: &'o Self) -> Tags<'m, Self> { Tags::from_ptr( - unsafe { ffi::notmuch_messages_collect_tags(self.handle.ptr) }, + unsafe { ffi::notmuch_messages_collect_tags(self.ptr) }, self, ) } @@ -77,15 +75,15 @@ where type Item = Message<'o, O>; fn next(&mut self) -> Option { - let valid = unsafe { ffi::notmuch_messages_valid(self.handle.ptr) }; + let valid = unsafe { ffi::notmuch_messages_valid(self.ptr) }; if valid == 0 { return None; } let cthrd = unsafe { - let thrd = ffi::notmuch_messages_get(self.handle.ptr); - ffi::notmuch_messages_move_to_next(self.handle.ptr); + let thrd = ffi::notmuch_messages_get(self.ptr); + ffi::notmuch_messages_move_to_next(self.ptr); thrd }; -- cgit v1.2.1