From 89b177046d8fbe8fa0597a5468bfbc082d9fa7da Mon Sep 17 00:00:00 2001 From: "C. Morgan Hamill" Date: Fri, 27 Mar 2015 15:52:05 -0400 Subject: Add `Database::directory()` method. Simple wrapper around notmuch API's `notmuch_database_get_directory` function. --- src/database.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/database.rs b/src/database.rs index b046600..7f16900 100644 --- a/src/database.rs +++ b/src/database.rs @@ -8,10 +8,13 @@ use libc; use error::Result; use utils::{ + NewFromPtr, ToCString, ToStr, }; +use directory::Directory; + use ffi; // Re-exported under database module for pretty namespacin'. @@ -150,6 +153,22 @@ impl Database { Ok(()) } + + pub fn directory>(&self, path: &P) -> Result> { + let path = path.to_cstring().unwrap(); + + let mut dir = ptr::null_mut(); + try!(unsafe { + ffi::notmuch_database_get_directory( + self.0, path.as_ptr(), &mut dir, + ) + }.as_result()); + + match dir.is_null() { + false => Ok(None), + true => Ok(Some(Directory::new(dir))), + } + } } impl ops::Drop for Database { -- cgit v1.2.1