From b7ea6953d44978ae3dadbd277f001bf35ae06822 Mon Sep 17 00:00:00 2001 From: "C. Morgan Hamill" Date: Fri, 20 Mar 2015 10:58:50 -0400 Subject: Add `Database::open()` method. Simple wrapper around notmuch API's `notmuch_database_open()` function. --- src/database.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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(path: &P, mode: Mode) -> Result { + 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)) + } + } -- cgit v1.2.1