aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Van Haerenborgh <vhdirk@gmail.com>2018-11-21 07:43:18 +0100
committerGitHub <noreply@github.com>2018-11-21 07:43:18 +0100
commit678010129d42a1647458a6919a0e17148e7bc506 (patch)
treeeb9b50f7ebdb05f775441e271a3fe31076f59f9d
parent7f14f694090b097dd486cab79c0b54235b2eb6d6 (diff)
parent47a084069c9b253dc5ec5c92c14527845ed89bec (diff)
downloadmail-678010129d42a1647458a6919a0e17148e7bc506.tar.gz
Merge pull request #13 from eaon/remove-message
Match up Database::remove_message with Message::filename return type
-rw-r--r--src/database.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/database.rs b/src/database.rs
index 8f365cb..82579f3 100644
--- a/src/database.rs
+++ b/src/database.rs
@@ -243,7 +243,7 @@ impl Database {
pub fn remove_message<'d, P>(&'d self, path: &P) -> Status
where
- P: AsRef<str>,
+ P: AsRef<Path>,
{
<Self as DatabaseExt>::remove_message(self, path)
}
@@ -299,14 +299,19 @@ pub trait DatabaseExt {
fn remove_message<'d, D, P>(database: D, path: &P) -> Status
where
D: Into<Supercow<'d, Database>>,
- P: AsRef<str>,
+ P: AsRef<Path>,
{
let dbref = database.into();
- let msg_path = CString::new(path.as_ref()).unwrap();
-
- Status::from(unsafe {
- ffi::notmuch_database_remove_message(dbref.handle.ptr, msg_path.as_ptr())
- })
+ match path.as_ref().to_str() {
+ Some(path_str) => {
+ let msg_path = CString::new(path_str).unwrap();
+
+ Status::from(unsafe {
+ ffi::notmuch_database_remove_message(dbref.handle.ptr, msg_path.as_ptr())
+ })
+ }
+ None => Status::FileError
+ }
}
}