From 9a39c056e8040a4a6904b2de17efc36430b62b5c Mon Sep 17 00:00:00 2001 From: Greg <gregory.mkv@gmail.com> Date: Wed, 15 Apr 2020 17:22:09 -0400 Subject: [PATCH] implement unset --- src/main.rs | 6 ++++++ src/mimeapps.rs | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/src/main.rs b/src/main.rs index d308d67..16d666d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -26,6 +26,9 @@ enum Cmd { mime: Mime, handler: Handler, }, + Unset { + mime: Mime + } } fn main() -> Result<()> { @@ -55,6 +58,9 @@ fn main() -> Result<()> { }, Cmd::List => { apps.print()?; + }, + Cmd::Unset { mime } => { + apps.remove_handler(&mime)?; } }; diff --git a/src/mimeapps.rs b/src/mimeapps.rs index e2d6fc9..057dab7 100644 --- a/src/mimeapps.rs +++ b/src/mimeapps.rs @@ -21,6 +21,13 @@ impl MimeApps { self.save()?; Ok(()) } + pub fn remove_handler(&mut self, mime: &Mime) -> Result<()> { + if let Some(_removed) = self.default_apps.remove(mime) { + self.save()?; + } + + Ok(()) + } pub fn get_handler(&self, mime: &Mime) -> Result<Handler> { self.default_apps .get(mime)