diff --git a/src/lib.rs b/src/lib.rs index 0b0ea7d..b17fec9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -124,25 +124,25 @@ impl Platform for Windows { use winrt::windows::ui::notifications::*; use winrt::*; let toast_xml = - ToastNotificationManager::get_template_content(ToastTemplateType::ToastText02)??; + ToastNotificationManager::get_template_content(ToastTemplateType::ToastText02)?.unwrap(); let toast_text_elements = - toast_xml.get_elements_by_tag_name(&FastHString::new("text"))??; + toast_xml.get_elements_by_tag_name(&FastHString::new("text"))?.unwrap(); - toast_text_elements.item(0)??.append_child( + toast_text_elements.item(0)?.unwrap().append_child( &*toast_xml - .create_text_node(&FastHString::from(msg_title))?? - .query_interface::()?, + .create_text_node(&FastHString::from(msg_title))?.unwrap() + .query_interface::().unwrap(), )?; - toast_text_elements.item(1)??.append_child( + toast_text_elements.item(1)?.unwrap().append_child( &*toast_xml - .create_text_node(&FastHString::from(msg_body))?? - .query_interface::()?, + .create_text_node(&FastHString::from(msg_body))?.unwrap() + .query_interface::().unwrap(), )?; let toast = ToastNotification::create_toast_notification(&*toast_xml)?; ToastNotificationManager::create_toast_notifier_with_id(&FastHString::new( "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\\WindowsPowerShell\\v1.0\\powershell.exe", - ))?? + ))?.unwrap() .show(&*toast)?; Ok(()) } -- 2.51.2 From 401d63243206550ca720fc1aded2ec80fd2d656d Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Sun, 28 Apr 2019 13:26:10 -0400 Subject: [PATCH 2/3] Change drop self mutability --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index b17fec9..23d5225 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -150,7 +150,7 @@ impl Platform for Windows { #[cfg(target_os = "windows")] impl Drop for Windows { - fn drop(&mut self) { + fn drop(self) { self.0.uninit(); } } -- 2.51.2 From 4524cbe8e3d9e367cf206da2b22d98c844a8a432 Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Sun, 28 Apr 2019 13:55:30 -0400 Subject: [PATCH 3/3] Make drop work --- src/lib.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 23d5225..e414210 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -111,12 +111,12 @@ impl From for Error { } #[cfg(target_os = "windows")] -struct Windows(winrt::RuntimeContext); +struct Windows(Option); #[cfg(target_os = "windows")] impl Platform for Windows { fn setup() -> Self { - Windows(winrt::RuntimeContext::init()) + Windows(Some(winrt::RuntimeContext::init())) } fn notify(msg_title: &str, msg_body: &str) -> Result<(), Error> { @@ -150,8 +150,10 @@ impl Platform for Windows { #[cfg(target_os = "windows")] impl Drop for Windows { - fn drop(self) { - self.0.uninit(); + fn drop(&mut self) { + if let Some(runtime_context) = self.0.take() { + runtime_context.uninit(); + } } }