Match stdlib strip_prefix return value

This commit is contained in:
Johannes Altmanninger 2024-04-20 10:49:13 +02:00
parent 30fbd4280d
commit 7dc0446c5c
2 changed files with 4 additions and 7 deletions

View File

@ -291,7 +291,7 @@ pub(crate) fn parse_keys(value: &wstr) -> Result<Vec<Key>, WString> {
codepoint, codepoint,
})? })?
} else if codepoint.is_none() && key_name.starts_with('F') && key_name.len() <= 3 { } 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) { let codepoint = match fish_wcstoi(num) {
Ok(n) if (1..=12).contains(&n) => function_key(u32::try_from(n).unwrap()), Ok(n) if (1..=12).contains(&n) => function_key(u32::try_from(n).unwrap()),
_ => { _ => {

View File

@ -277,14 +277,11 @@ pub trait WExt {
iter_prefixes_iter(prefix.chars(), self.as_char_slice().iter().copied()) 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 iter = prefix.chars();
let prefix_len = iter.clone().count(); let prefix_len = iter.clone().count();
if iter_prefixes_iter(iter, self.as_char_slice().iter().copied()) { iter_prefixes_iter(iter, self.as_char_slice().iter().copied())
self.slice_from(prefix_len) .then(|| self.slice_from(prefix_len))
} else {
self.slice_from(0)
}
} }
/// \return whether we end with a given Suffix. /// \return whether we end with a given Suffix.