diff options
| author | C. Morgan Hamill <me@cmhamill.org> | 2015-03-20 15:58:50 +0100 |
|---|---|---|
| committer | C. Morgan Hamill <me@cmhamill.org> | 2015-03-20 16:01:34 +0100 |
| commit | b7ea6953d44978ae3dadbd277f001bf35ae06822 (patch) | |
| tree | 7cdbcd6fb730942cf03ef389ebba39024004be09 | |
| parent | cba797fea1d9bf9d4b12b991b73a11b6d082faed (diff) | |
| download | mail-b7ea6953d44978ae3dadbd277f001bf35ae06822.tar.gz | |
Add `Database::open()` method.
Simple wrapper around notmuch API's `notmuch_database_open()` function.
| -rw-r--r-- | src/database.rs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/database.rs b/src/database.rs index c431254..5a7cec4 100644 --- a/src/database.rs +++ b/src/database.rs @@ -6,7 +6,10 @@ use std::{ use libc; use error::Result; -use utils::ToCString; +use utils::{ + NotmuchEnum, + ToCString, +}; use ffi; @@ -29,4 +32,18 @@ impl Database { Ok(Database(db)) } + + pub fn open<P: path::AsPath>(path: &P, mode: Mode) -> Result<Database> { + let path = path.as_path().to_cstring().unwrap(); + + let mut db = ptr::null_mut(); + try!(unsafe { + ffi::notmuch_database_open( + path.as_ptr(), mode.to_notmuch_t(), &mut db, + ) + }.as_result()); + + Ok(Database(db)) + } + } |
