pub const MAXIMUM_SIZE_OF_CODEPOINT: usize = 4;
pub fn pop_parsed_from_front<T>(
buf: &mut Vec<u8>,
max_length: usize,
mut parse: impl FnMut(&[u8]) -> Option<T>,
) -> Option<T> {
for end_index in 1..=max_length.min(buf.len()) {
if let Some(value) = parse(&buf[..end_index]) {
buf.drain(..end_index);
return Some(value);
}
}
None
}