aboutsummaryrefslogtreecommitdiffstats
path: root/src/database.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/database.rs')
-rw-r--r--src/database.rs47
1 files changed, 16 insertions, 31 deletions
diff --git a/src/database.rs b/src/database.rs
index f4ef444..027a43f 100644
--- a/src/database.rs
+++ b/src/database.rs
@@ -10,7 +10,6 @@ use libc;
use error::{Error, Result};
use ffi;
use ffi::Status;
-use query::QueryPtr;
use utils::ToStr;
use Directory;
use Query;
@@ -31,32 +30,18 @@ pub struct Revision {
pub uuid: String,
}
+
#[derive(Debug)]
-pub(crate) struct DatabasePtr {
- pub ptr: *mut ffi::notmuch_database_t,
+pub struct Database {
+ pub(crate) ptr: *mut ffi::notmuch_database_t,
}
-impl Drop for DatabasePtr {
+impl Drop for Database {
fn drop(&mut self) {
unsafe { ffi::notmuch_database_destroy(self.ptr) };
}
}
-impl DatabasePtr {
- pub(crate) fn create_query(&self, query_string: &str) -> Result<QueryPtr> {
- let query_str = CString::new(query_string).unwrap();
-
- let query = unsafe { ffi::notmuch_query_create(self.ptr, query_str.as_ptr()) };
-
- Ok(QueryPtr { ptr: query })
- }
-}
-
-#[derive(Debug)]
-pub struct Database {
- pub(crate) handle: DatabasePtr,
-}
-
impl TagsOwner for Database {}
impl Database {
@@ -70,7 +55,7 @@ impl Database {
unsafe { ffi::notmuch_database_create(path_str.as_ptr(), &mut db) }.as_result()?;
Ok(Database {
- handle: DatabasePtr { ptr: db },
+ ptr: db,
})
}
@@ -85,12 +70,12 @@ impl Database {
.as_result()?;
Ok(Database {
- handle: DatabasePtr { ptr: db },
+ ptr: db,
})
}
pub fn close(&mut self) -> Result<()> {
- unsafe { ffi::notmuch_database_close(self.handle.ptr) }.as_result()?;
+ unsafe { ffi::notmuch_database_close(self.ptr) }.as_result()?;
Ok(())
}
@@ -147,14 +132,14 @@ impl Database {
pub fn path(&self) -> &Path {
Path::new(
- unsafe { ffi::notmuch_database_get_path(self.handle.ptr) }
+ unsafe { ffi::notmuch_database_get_path(self.ptr) }
.to_str()
.unwrap(),
)
}
pub fn version(&self) -> Version {
- Version(unsafe { ffi::notmuch_database_get_version(self.handle.ptr) })
+ Version(unsafe { ffi::notmuch_database_get_version(self.ptr) })
}
#[cfg(feature = "v0_21")]
@@ -162,7 +147,7 @@ impl Database {
let uuid_p: *const libc::c_char = ptr::null();
let revision = unsafe {
ffi::notmuch_database_get_revision(
- self.handle.ptr,
+ self.ptr,
(&uuid_p) as *const _ as *mut *const libc::c_char,
)
};
@@ -176,7 +161,7 @@ impl Database {
}
pub fn needs_upgrade(&self) -> bool {
- unsafe { ffi::notmuch_database_needs_upgrade(self.handle.ptr) == 1 }
+ unsafe { ffi::notmuch_database_needs_upgrade(self.ptr) == 1 }
}
pub fn upgrade<F>(&mut self) -> Result<()>
@@ -209,7 +194,7 @@ impl Database {
unsafe {
ffi::notmuch_database_upgrade(
- self.handle.ptr,
+ self.ptr,
if status.is_some() {
Some(wrapper::<F>)
} else {
@@ -253,7 +238,7 @@ pub trait DatabaseExt {
let dbref = database.into();
let query_str = CString::new(query_string).unwrap();
- let query = unsafe { ffi::notmuch_query_create(dbref.handle.ptr, query_str.as_ptr()) };
+ let query = unsafe { ffi::notmuch_query_create(dbref.ptr, query_str.as_ptr()) };
Ok(Query::from_ptr(query, Supercow::phantom(dbref)))
}
@@ -264,7 +249,7 @@ pub trait DatabaseExt {
{
let dbref = database.into();
- let tags = unsafe { ffi::notmuch_database_get_all_tags(dbref.handle.ptr) };
+ let tags = unsafe { ffi::notmuch_database_get_all_tags(dbref.ptr) };
Ok(Tags::from_ptr(tags, ScopedSupercow::phantom(dbref)))
}
@@ -280,7 +265,7 @@ pub trait DatabaseExt {
let mut dir = ptr::null_mut();
unsafe {
- ffi::notmuch_database_get_directory(dbref.handle.ptr, path_str.as_ptr(), &mut dir)
+ ffi::notmuch_database_get_directory(dbref.ptr, path_str.as_ptr(), &mut dir)
}.as_result()?;
if dir.is_null() {
@@ -300,7 +285,7 @@ pub trait DatabaseExt {
Some(path_str) => {
let msg_path = CString::new(path_str).unwrap();
- unsafe { ffi::notmuch_database_remove_message(dbref.handle.ptr, msg_path.as_ptr()) }
+ unsafe { ffi::notmuch_database_remove_message(dbref.ptr, msg_path.as_ptr()) }
.as_result()
}
None => Err(Error::NotmuchError(Status::FileError)),