use crate::RopeSlice; pub fn find_nth_next(text: RopeSlice, ch: char, mut pos: usize, n: usize) -> Option { if pos >= text.len_chars() || n == 0 { return None; } let mut chars = text.chars_at(pos); for _ in 0..n { loop { let c = chars.next()?; pos += 1; if c == ch { break; } } } Some(pos - 1) } pub fn find_nth_prev(text: RopeSlice, ch: char, mut pos: usize, n: usize) -> Option { if pos == 0 || n == 0 { return None; } let mut chars = text.chars_at(pos); for _ in 0..n { loop { let c = chars.prev()?; pos -= 1; if c == ch { break; } } } Some(pos) }