From cba797fea1d9bf9d4b12b991b73a11b6d082faed Mon Sep 17 00:00:00 2001 From: "C. Morgan Hamill" Date: Fri, 20 Mar 2015 10:55:05 -0400 Subject: Add `Database::create()` method. Simple wrapper around notmuch API's `notmuch_database_create()` function. --- src/database.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src') diff --git a/src/database.rs b/src/database.rs index 196932c..c431254 100644 --- a/src/database.rs +++ b/src/database.rs @@ -1,5 +1,13 @@ +use std::{ + path, + ptr, +}; + use libc; +use error::Result; +use utils::ToCString; + use ffi; // Re-exported under database module for pretty namespacin'. @@ -9,3 +17,16 @@ pub use ffi::NotmuchDatabaseMode as Mode; pub struct Version(libc::c_uint); pub struct Database(*mut ffi::notmuch_database_t); + +impl Database { + pub fn create(path: &P) -> Result { + let path = path.as_path().to_cstring().unwrap(); + + let mut db = ptr::null_mut(); + try!(unsafe { + ffi::notmuch_database_create(path.as_ptr(), &mut db) + }.as_result()); + + Ok(Database(db)) + } +} -- cgit v1.2.1