aboutsummaryrefslogtreecommitdiffstats
path: root/src/directory.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/directory.rs')
-rw-r--r--src/directory.rs24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/directory.rs b/src/directory.rs
index 4bf0a7a..ce219f5 100644
--- a/src/directory.rs
+++ b/src/directory.rs
@@ -5,6 +5,7 @@ use utils::FromPtr;
use Database;
use Filenames;
+use filenames::{FilenamesPtr, FilenamesOwner};
use ffi;
@@ -21,17 +22,32 @@ impl Drop for DirectoryPtr {
}
}
+impl DirectoryPtr {
+ pub fn child_directories(self: &Self) -> FilenamesPtr{
+ FilenamesPtr{
+ ptr: unsafe {
+ ffi::notmuch_directory_get_child_directories(self.ptr)
+ }
+ }
+ }
+}
+
+
+
#[derive(Debug)]
pub struct Directory<'d>{
handle: DirectoryPtr,
phantom: PhantomData<&'d Database>,
}
+impl<'d> FilenamesOwner for Directory<'d>{}
+
impl<'d> Directory<'d>{
- pub fn child_directories(self: &'d Self) -> Filenames<'d>{
- Filenames::from_ptr(unsafe {
- ffi::notmuch_directory_get_child_directories(self.handle.ptr)
- })
+ pub fn child_directories(self: &'d Self) -> Filenames<Self>{
+ Filenames{
+ handle: self.handle.child_directories(),
+ phantom: PhantomData
+ }
}
}