From 9eea3f0d1f92fed4e473540347aff627fa4389e3 Mon Sep 17 00:00:00 2001 From: Fenrir Date: Thu, 15 Feb 2024 13:17:27 -0700 Subject: [PATCH] Make initial text argument optional This allows the user to clear the initial_text field by supplying a `None` --- ctru-rs/src/applets/swkbd.rs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/ctru-rs/src/applets/swkbd.rs b/ctru-rs/src/applets/swkbd.rs index b1c4a28..9dd75d1 100644 --- a/ctru-rs/src/applets/swkbd.rs +++ b/ctru-rs/src/applets/swkbd.rs @@ -499,18 +499,23 @@ impl SoftwareKeyboard { /// use ctru::applets::swkbd::SoftwareKeyboard; /// let mut keyboard = SoftwareKeyboard::default(); /// - /// keyboard.set_initial_text("Write here what you like!"); + /// keyboard.set_initial_text(Some("Write here what you like!")); /// # /// # } #[doc(alias = "swkbdSetInitialText")] - pub fn set_initial_text(&mut self, text: &str) { - unsafe { - self.initial_text = Some(CString::new(text).unwrap()); + pub fn set_initial_text(&mut self, text: Option<&str>) { + if let Some(text) = text { + let initial_text = CString::new(text).unwrap(); - ctru_sys::swkbdSetInitialText( - self.state.as_mut(), - self.initial_text.as_ref().unwrap().as_ptr(), - ); + unsafe { + ctru_sys::swkbdSetInitialText(self.state.as_mut(), initial_text.as_ptr()); + } + + self.initial_text = Some(initial_text); + } else { + unsafe { ctru_sys::swkbdSetInitialText(self.state.as_mut(), std::ptr::null()) }; + + self.initial_text = None; } }