1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
pub trait _StrExt { fn _is_char_boundary(&self, index: usize) -> bool; } impl _StrExt for str { #[inline] fn _is_char_boundary(&self, index: usize) -> bool { if index == self.len() { return true; } match self.as_bytes().get(index) { None => false, Some(&b) => b < 128 || b >= 192, } } }