aboutsummaryrefslogtreecommitdiffstats
path: root/src/filenames.rs
diff options
context:
space:
mode:
authorDirk Van Haerenborgh <vhdirk@gmail.com>2018-10-25 08:02:04 +0200
committerDirk Van Haerenborgh <vhdirk@gmail.com>2018-10-25 08:02:04 +0200
commitbd1a184600a0d42c36d7d2fc5f010692d0ab46aa (patch)
treeb377aaea58b99ef56a98b58f0bb30ba5d06f275f /src/filenames.rs
parenta4ffe47c51d1617fc0e728c7bbd7e9b3738878cb (diff)
downloadmail-bd1a184600a0d42c36d7d2fc5f010692d0ab46aa.tar.gz
more correct lifetimes
Diffstat (limited to 'src/filenames.rs')
-rw-r--r--src/filenames.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/filenames.rs b/src/filenames.rs
index 5f369e8..3c167df 100644
--- a/src/filenames.rs
+++ b/src/filenames.rs
@@ -8,6 +8,8 @@ use utils::FromPtr;
use Database;
use ffi;
+pub trait FilenamesOwner{}
+
#[derive(Debug)]
pub(crate) struct FilenamesPtr {
pub ptr: *mut ffi::notmuch_filenames_t
@@ -28,13 +30,13 @@ impl Drop for FilenamesPtr {
}
#[derive(Debug)]
-pub struct Filenames<'d>{
+pub struct Filenames<'o, Owner: FilenamesOwner>{
pub(crate) handle: FilenamesPtr,
- phantom: PhantomData<&'d Database>
+ pub(crate) phantom: PhantomData<&'o Owner>
}
-impl<'d> FromPtr<*mut ffi::notmuch_filenames_t> for Filenames<'d> {
- fn from_ptr(ptr: *mut ffi::notmuch_filenames_t) -> Filenames<'d> {
+impl<'o, Owner: FilenamesOwner> FromPtr<*mut ffi::notmuch_filenames_t> for Filenames<'o, Owner> {
+ fn from_ptr(ptr: *mut ffi::notmuch_filenames_t) -> Filenames<'o, Owner> {
Filenames{
handle: FilenamesPtr{ptr},
phantom: PhantomData
@@ -42,7 +44,7 @@ impl<'d> FromPtr<*mut ffi::notmuch_filenames_t> for Filenames<'d> {
}
}
-impl<'d> Iterator for Filenames<'d> {
+impl<'o, Owner: FilenamesOwner> Iterator for Filenames<'o, Owner> {
type Item = PathBuf;
fn next(self: &mut Self) -> Option<Self::Item> {
@@ -65,5 +67,5 @@ impl<'d> Iterator for Filenames<'d> {
}
}
-unsafe impl<'d> Send for Filenames<'d>{}
-unsafe impl<'d> Sync for Filenames<'d>{}
+unsafe impl<'o, Owner: FilenamesOwner> Send for Filenames<'o, Owner>{}
+unsafe impl<'o, Owner: FilenamesOwner> Sync for Filenames<'o, Owner>{}