From e3dedb375ae1166b6010dea1ae0e20978b1700e8 Mon Sep 17 00:00:00 2001 From: tarpaha Date: Wed, 2 Jul 2025 02:35:38 +0200 Subject: [PATCH 1/2] Refactor find_first_russian signature --- src/desc_parser.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/desc_parser.rs b/src/desc_parser.rs index b4172b0..bc5a519 100644 --- a/src/desc_parser.rs +++ b/src/desc_parser.rs @@ -21,8 +21,9 @@ fn get_filtered_chars(s: &str) -> Vec { .collect() } -fn find_first_russian(chars: &Vec) -> Option { - let russian_chars: HashSet = ('а'..='я').collect(); +fn find_first_russian(chars: &[char]) -> Option { + let russian_chars: HashSet = + ('а'..='я').chain(std::iter::once('ё')).collect(); chars.iter().enumerate() .find(|(_, c)| russian_chars.contains(&c.to_lowercase().next().unwrap())) .map(|(i, _)| i) @@ -59,6 +60,11 @@ mod test_first_russian { fn mixed_case() { assert_eq!(find_first_russian(&to_char_array("Test ПРИВЕТ привет")), Some(5)); } + + #[test] + fn starts_with_io() { + assert_eq!(find_first_russian(&to_char_array("ёлка")), Some(0)); + } } #[cfg(test)] From c473ff1b0472d91d8fc5fd736f9c31e53fa9aee6 Mon Sep 17 00:00:00 2001 From: tarpaha Date: Wed, 2 Jul 2025 03:04:49 +0200 Subject: [PATCH 2/2] Restore Vec reference for find_first_russian --- src/desc_parser.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/desc_parser.rs b/src/desc_parser.rs index bc5a519..0b50520 100644 --- a/src/desc_parser.rs +++ b/src/desc_parser.rs @@ -21,7 +21,7 @@ fn get_filtered_chars(s: &str) -> Vec { .collect() } -fn find_first_russian(chars: &[char]) -> Option { +fn find_first_russian(chars: &Vec) -> Option { let russian_chars: HashSet = ('а'..='я').chain(std::iter::once('ё')).collect(); chars.iter().enumerate()