#[inline(always)]
pub(crate) unsafe fn decode_utf8_raw(bytes: &[u8], offset: usize) -> (u32, usize) {
let b0 = unsafe { *bytes.get_unchecked(offset) };
if b0 < 0xE0 {
let b1 = unsafe { *bytes.get_unchecked(offset + 1) };
(((b0 as u32 & 0x1F) << 6) | (b1 as u32 & 0x3F), 2)
} else if b0 < 0xF0 {
let b1 = unsafe { *bytes.get_unchecked(offset + 1) };
let b2 = unsafe { *bytes.get_unchecked(offset + 2) };
(
((b0 as u32 & 0x0F) << 12) | ((b1 as u32 & 0x3F) << 6) | (b2 as u32 & 0x3F),
3,
)
} else {
let b1 = unsafe { *bytes.get_unchecked(offset + 1) };
let b2 = unsafe { *bytes.get_unchecked(offset + 2) };
let b3 = unsafe { *bytes.get_unchecked(offset + 3) };
(
((b0 as u32 & 0x07) << 18)
| ((b1 as u32 & 0x3F) << 12)
| ((b2 as u32 & 0x3F) << 6)
| (b3 as u32 & 0x3F),
4,
)
}
}