diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/database.rs | 8 | ||||
| -rw-r--r-- | src/lib.rs | 2 | ||||
| -rw-r--r-- | src/utils.rs | 6 |
3 files changed, 9 insertions, 7 deletions
diff --git a/src/database.rs b/src/database.rs index 9e0c001..6b0542d 100644 --- a/src/database.rs +++ b/src/database.rs @@ -25,7 +25,7 @@ pub struct Database(*mut ffi::notmuch_database_t); impl Database { pub fn create<P: AsRef<path::Path>>(path: &P) -> Result<Database> { - let path = path.as_ref().to_cstring().unwrap(); + let path = path.to_cstring().unwrap(); let mut db = ptr::null_mut(); try!(unsafe { @@ -36,7 +36,7 @@ impl Database { } pub fn open<P: AsRef<path::Path>>(path: &P, mode: Mode) -> Result<Database> { - let path = path.as_ref().to_cstring().unwrap(); + let path = path.to_cstring().unwrap(); let mut db = ptr::null_mut(); try!(unsafe { @@ -82,9 +82,9 @@ impl Database { } } - let path = path.as_ref().to_cstring().unwrap(); + let path = path.to_cstring().unwrap(); let backup_path = backup_path.map(|p| { - p.as_ref().to_cstring().unwrap() + p.to_cstring().unwrap() }); try!(unsafe { @@ -1,4 +1,4 @@ -#![feature(convert, core, libc, std_misc, unsafe_destructor)] +#![feature(convert, core, libc, unsafe_destructor)] extern crate libc; #[macro_use] diff --git a/src/utils.rs b/src/utils.rs index 75a5788..ec5b5b3 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,5 +1,6 @@ use std::{ ffi, + path, str, }; @@ -18,9 +19,10 @@ pub trait ToCString { fn to_cstring(&self) -> Result<ffi::CString, ffi::NulError>; } -impl<T: ffi::AsOsStr> ToCString for T { +impl<T: AsRef<path::Path>> ToCString for T { fn to_cstring(&self) -> Result<ffi::CString, ffi::NulError> { - self.as_os_str().to_cstring() + let path: &ffi::OsStr = self.as_ref().as_ref(); + path.to_cstring() } } |
