aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Van Haerenborgh <vhdirk@gmail.com>2018-04-13 18:51:55 +0200
committerDirk Van Haerenborgh <vhdirk@gmail.com>2018-04-13 18:51:55 +0200
commit3f02ab97bea870111aa23c32291de129b824de89 (patch)
tree598fb2aab59a34976278b06725b9384040edf15b
parent52050a5e1dcd613915135e217439bc6293bea257 (diff)
downloadmail-3f02ab97bea870111aa23c32291de129b824de89.tar.gz
add missing lifetime parameters
-rw-r--r--src/database.rs24
-rw-r--r--src/directory.rs7
-rw-r--r--src/filenames.rs7
-rw-r--r--src/message.rs12
-rw-r--r--src/messages.rs7
-rw-r--r--src/query.rs9
-rw-r--r--src/tags.rs3
-rw-r--r--src/thread.rs6
-rw-r--r--src/threads.rs5
9 files changed, 45 insertions, 35 deletions
diff --git a/src/database.rs b/src/database.rs
index 314c354..6dcbd0d 100644
--- a/src/database.rs
+++ b/src/database.rs
@@ -171,7 +171,7 @@ impl Database {
Ok(())
}
- pub fn directory<'d, P: AsRef<path::Path>>(&self, path: &P) -> Result<Option<Directory<'d>>> {
+ pub fn directory<'d, P: AsRef<path::Path>>(&'d self, path: &P) -> Result<Option<Directory<'d>>> {
let path_str = CString::new(path.as_ref().to_str().unwrap()).unwrap();
let mut dir = ptr::null_mut();
@@ -187,23 +187,22 @@ impl Database {
}
}
- pub fn create_query<'d>(&self, query_string: &String) -> Result<Query<'d>> {
+ pub fn create_query<'d>(&'d self, query_string: &String) -> Result<Query<'d>> {
let query_str = CString::new(query_string.as_str()).unwrap();
println!("query {:?}", query_str);
- let mut query = ptr::null_mut();
- unsafe {
- query = ffi::notmuch_query_create(self.0, query_str.as_ptr());
- }
+
+ let mut query = unsafe {
+ ffi::notmuch_query_create(self.0, query_str.as_ptr())
+ };
Ok(Query::new(query))
}
- pub fn all_tags<'d>(&self) -> Result<Tags<'d>> {
+ pub fn all_tags<'d>(&'d self) -> Result<Tags<'d>> {
- let mut tags = ptr::null_mut();
- unsafe {
- tags = ffi::notmuch_database_get_all_tags(self.0);
- }
+ let mut tags = unsafe {
+ ffi::notmuch_database_get_all_tags(self.0)
+ };
Ok(Tags::new(tags))
}
@@ -221,4 +220,5 @@ impl ops::Drop for Database {
}
}
-unsafe impl Send for Database{}
+unsafe impl Send for Database {}
+// unsafe impl Sync for Database {}
diff --git a/src/directory.rs b/src/directory.rs
index 7237100..d01f21e 100644
--- a/src/directory.rs
+++ b/src/directory.rs
@@ -15,11 +15,11 @@ use ffi;
#[derive(Debug)]
pub struct Directory<'d>(
*mut ffi::notmuch_directory_t,
- marker::PhantomData<&'d mut Database>,
+ marker::PhantomData<&'d Database>,
);
impl<'d> Directory<'d>{
- pub fn child_directories(self: &Self) -> Filenames<'d>{
+ pub fn child_directories(self: &'d Self) -> Filenames<'d>{
Filenames::new(unsafe {
ffi::notmuch_directory_get_child_directories(self.0)
})
@@ -33,7 +33,7 @@ impl<'d> NewFromPtr<*mut ffi::notmuch_directory_t> for Directory<'d> {
}
impl<'d> ops::Drop for Directory<'d> {
- fn drop(&mut self) {
+ fn drop(self: &mut Self) {
unsafe {
ffi::notmuch_directory_destroy(self.0)
};
@@ -41,3 +41,4 @@ impl<'d> ops::Drop for Directory<'d> {
}
unsafe impl<'d> Send for Directory<'d>{}
+//unsafe impl<'d> Sync for Directory<'d>{}
diff --git a/src/filenames.rs b/src/filenames.rs
index 0d32bd6..30367a9 100644
--- a/src/filenames.rs
+++ b/src/filenames.rs
@@ -22,7 +22,7 @@ use ffi;
#[derive(Debug)]
pub struct Filenames<'d>(
*mut ffi::notmuch_filenames_t,
- marker::PhantomData<&'d mut database::Database>,
+ marker::PhantomData<&'d database::Database>,
);
impl<'d> NewFromPtr<*mut ffi::notmuch_filenames_t> for Filenames<'d> {
@@ -32,7 +32,7 @@ impl<'d> NewFromPtr<*mut ffi::notmuch_filenames_t> for Filenames<'d> {
}
impl<'d> ops::Drop for Filenames<'d> {
- fn drop(&mut self) {
+ fn drop(self: &mut Self) {
unsafe {
ffi::notmuch_filenames_destroy(self.0)
};
@@ -42,7 +42,7 @@ impl<'d> ops::Drop for Filenames<'d> {
impl<'d> iter::Iterator for Filenames<'d> {
type Item = PathBuf;
- fn next(&mut self) -> Option<Self::Item> {
+ fn next(self: &mut Self) -> Option<Self::Item> {
let valid = unsafe {
ffi::notmuch_filenames_valid(self.0)
@@ -64,3 +64,4 @@ impl<'d> iter::Iterator for Filenames<'d> {
unsafe impl<'d> Send for Filenames<'d>{}
+// unsafe impl<'d> Sync for Filenames<'d>{}
diff --git a/src/message.rs b/src/message.rs
index a1f7816..409c101 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -22,7 +22,7 @@ use Filenames;
#[derive(Debug)]
pub struct Message<'q, 'd:'q>(
pub(crate) *mut ffi::notmuch_message_t,
- marker::PhantomData<&'q mut Query<'d>>,
+ marker::PhantomData<&'q Query<'d>>,
);
impl<'q, 'd> NewFromPtr<*mut ffi::notmuch_message_t> for Message<'q, 'd> {
@@ -47,12 +47,13 @@ impl<'q, 'd> Message<'q, 'd>{
tid.to_str().unwrap().to_string()
}
- pub fn replies(self: &Self) -> Messages<'q, 'd>{
+ pub fn replies(self: &'q Self) -> Messages<'q, 'd>{
Messages::new(unsafe {
ffi::notmuch_message_get_replies(self.0)
})
}
-#[cfg(feature = "0.26")]
+
+ #[cfg(feature = "0.26")]
pub fn count_files(self: &Self) -> i32
{
unsafe {
@@ -60,7 +61,7 @@ impl<'q, 'd> Message<'q, 'd>{
}
}
- pub fn filenames(self: &Self) -> Filenames<'d>{
+ pub fn filenames(self: &'d Self) -> Filenames<'d>{
Filenames::new(unsafe {
ffi::notmuch_message_get_filenames(self.0)
})
@@ -75,7 +76,7 @@ impl<'q, 'd> Message<'q, 'd>{
impl<'q, 'd> ops::Drop for Message<'q, 'd> {
- fn drop(&mut self) {
+ fn drop(self: &mut Self) {
unsafe {
ffi::notmuch_message_destroy(self.0)
};
@@ -83,3 +84,4 @@ impl<'q, 'd> ops::Drop for Message<'q, 'd> {
}
unsafe impl<'q, 'd> Send for Message<'q, 'd>{}
+// unsafe impl<'q, 'd> Sync for Message<'q, 'd>{}
diff --git a/src/messages.rs b/src/messages.rs
index 94b823c..925b027 100644
--- a/src/messages.rs
+++ b/src/messages.rs
@@ -19,7 +19,7 @@ pub struct Messages<'q, 'd:'q>(
// TODO: is this lifetime specifier correct?
// query may outlive messages.
pub(crate) *mut ffi::notmuch_messages_t,
- marker::PhantomData<&'q mut Query<'d>>,
+ marker::PhantomData<&'q Query<'d>>,
);
impl<'q, 'd> NewFromPtr<*mut ffi::notmuch_messages_t> for Messages<'q, 'd> {
@@ -30,7 +30,7 @@ impl<'q, 'd> NewFromPtr<*mut ffi::notmuch_messages_t> for Messages<'q, 'd> {
impl<'q, 'd> Messages<'q, 'd>{
- pub fn collect_tags(self: &Self) -> Tags{
+ pub fn collect_tags(self: &'d Self) -> Tags<'d>{
Tags::new(unsafe {
ffi::notmuch_messages_collect_tags(self.0)
})
@@ -39,7 +39,7 @@ impl<'q, 'd> Messages<'q, 'd>{
}
impl<'q, 'd> ops::Drop for Messages<'q, 'd> {
- fn drop(&mut self) {
+ fn drop(self: &mut Self) {
unsafe {
ffi::notmuch_messages_destroy(self.0)
};
@@ -70,3 +70,4 @@ impl<'q, 'd> iter::Iterator for Messages<'q, 'd> {
}
unsafe impl<'q, 'd> Send for Messages<'q, 'd>{}
+// unsafe impl<'q, 'd> Sync for Messages<'q, 'd>{}
diff --git a/src/query.rs b/src/query.rs
index aa5d9f5..660c86c 100644
--- a/src/query.rs
+++ b/src/query.rs
@@ -19,7 +19,7 @@ use ffi::Sort;
#[derive(Debug)]
pub struct Query<'d>(
pub(crate) *mut ffi::notmuch_query_t,
- marker::PhantomData<&'d mut Database>,
+ marker::PhantomData<&'d Database>,
);
@@ -51,7 +51,7 @@ impl<'d> Query<'d> {
/// Filter messages according to the query and return
- pub fn search_messages<'q>(self: &Self) -> Result<Messages<'q, 'd>>
+ pub fn search_messages<'q>(self: &'d Self) -> Result<Messages<'q, 'd>>
{
let mut msgs = ptr::null_mut();
try!(unsafe {
@@ -75,7 +75,7 @@ impl<'d> Query<'d> {
return Ok(cnt);
}
- pub fn search_threads<'q>(self: &Self) -> Result<Threads<'q, 'd>>
+ pub fn search_threads<'q>(self: &'d Self) -> Result<Threads<'q, 'd>>
{
let mut thrds = ptr::null_mut();
try!(unsafe {
@@ -115,4 +115,5 @@ impl<'d> ops::Drop for Query<'d> {
}
}
-unsafe impl<'d> Send for Query<'d>{}
+unsafe impl<'d> Send for Query<'d> {}
+// unsafe impl<'d> Sync for Query<'d> {}
diff --git a/src/tags.rs b/src/tags.rs
index c58f670..37cc33d 100644
--- a/src/tags.rs
+++ b/src/tags.rs
@@ -19,7 +19,7 @@ use ffi;
#[derive(Debug)]
pub struct Tags<'d>(
*mut ffi::notmuch_tags_t,
- marker::PhantomData<&'d mut database::Database>,
+ marker::PhantomData<&'d database::Database>,
);
impl<'d> NewFromPtr<*mut ffi::notmuch_tags_t> for Tags<'d> {
@@ -61,3 +61,4 @@ impl<'d> iter::Iterator for Tags<'d> {
}
unsafe impl<'d> Send for Tags<'d>{}
+// unsafe impl<'d> Sync for Tags<'d>{}
diff --git a/src/thread.rs b/src/thread.rs
index 97b005a..ef6023d 100644
--- a/src/thread.rs
+++ b/src/thread.rs
@@ -5,6 +5,7 @@ use std::{
str,
result
};
+use std::sync::atomic::AtomicPtr;
use std::ffi::{CString, CStr};
@@ -22,7 +23,7 @@ use Tags;
#[derive(Debug)]
pub struct Thread<'q, 'd:'q>(
pub(crate) *mut ffi::notmuch_thread_t,
- marker::PhantomData<&'q mut Query<'d>>,
+ marker::PhantomData<&'q Query<'d>>,
);
impl<'q, 'd> NewFromPtr<*mut ffi::notmuch_thread_t> for Thread<'q, 'd> {
@@ -115,4 +116,5 @@ impl<'q, 'd> ops::Drop for Thread<'q, 'd> {
}
}
-unsafe impl<'q, 'd> Send for Thread<'q, 'd>{}
+unsafe impl<'q, 'd> Send for Thread<'q, 'd> {}
+// unsafe impl<'q, 'd> Sync for Thread<'q, 'd> {}
diff --git a/src/threads.rs b/src/threads.rs
index 2d6d7c4..596874a 100644
--- a/src/threads.rs
+++ b/src/threads.rs
@@ -15,7 +15,7 @@ use ffi;
#[derive(Debug)]
pub struct Threads<'q, 'd:'q>(
*mut ffi::notmuch_threads_t,
- marker::PhantomData<&'q mut Query<'d>>,
+ marker::PhantomData<&'q Query<'d>>,
);
impl<'q, 'd> NewFromPtr<*mut ffi::notmuch_threads_t> for Threads<'q, 'd> {
@@ -55,4 +55,5 @@ impl<'q, 'd> iter::Iterator for Threads<'q, 'd> {
}
}
-unsafe impl<'q, 'd> Send for Threads<'q, 'd>{}
+unsafe impl<'q, 'd> Send for Threads<'q, 'd> {}
+// unsafe impl<'q, 'd> Sync for Threads<'q, 'd> {}