From 7dc0446c5c31a2b1dc5d0539c88624b4e931b880 Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger <aclopte@gmail.com> Date: Sat, 20 Apr 2024 10:49:13 +0200 Subject: [PATCH] Match stdlib strip_prefix return value --- src/key.rs | 2 +- src/wchar_ext.rs | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/key.rs b/src/key.rs index 6ff0c02ba..380d92d85 100644 --- a/src/key.rs +++ b/src/key.rs @@ -291,7 +291,7 @@ pub(crate) fn parse_keys(value: &wstr) -> Result<Vec<Key>, WString> { codepoint, })? } else if codepoint.is_none() && key_name.starts_with('F') && key_name.len() <= 3 { - let num = key_name.strip_prefix('F'); + let num = key_name.strip_prefix('F').unwrap(); let codepoint = match fish_wcstoi(num) { Ok(n) if (1..=12).contains(&n) => function_key(u32::try_from(n).unwrap()), _ => { diff --git a/src/wchar_ext.rs b/src/wchar_ext.rs index 45c463caa..b07b14cf8 100644 --- a/src/wchar_ext.rs +++ b/src/wchar_ext.rs @@ -277,14 +277,11 @@ pub trait WExt { iter_prefixes_iter(prefix.chars(), self.as_char_slice().iter().copied()) } - fn strip_prefix<Prefix: IntoCharIter>(&self, prefix: Prefix) -> &wstr { + fn strip_prefix<Prefix: IntoCharIter>(&self, prefix: Prefix) -> Option<&wstr> { let iter = prefix.chars(); let prefix_len = iter.clone().count(); - if iter_prefixes_iter(iter, self.as_char_slice().iter().copied()) { - self.slice_from(prefix_len) - } else { - self.slice_from(0) - } + iter_prefixes_iter(iter, self.as_char_slice().iter().copied()) + .then(|| self.slice_from(prefix_len)) } /// \return whether we end with a given Suffix.