[−][src]Function rut::parse_one
pub fn parse_one<'a>(
bytes: &'a [u8]
) -> (Result<char, Utf8ParseError>, &'a [u8])
Parses one UTF-8 sequence from a byte slice, returning a Result
and the unparsed remainder of the slice.
Panics
Panics if bytes
is empty.
Examples
// Valid UTF-8 encoding of '€' let bytes = [0xE2, 0x82, 0xAC]; let (result, rest) = rut::parse_one(&bytes); assert_eq!(result, Ok('€')); assert_eq!(rest, &[]);
use rut::Utf8ParseError::*; // Ill-formed sequence followed by 2 valid characters let bytes = [0xC2, 0x41, 0x42]; let (result1, rest1) = rut::parse_one(&bytes); let (result2, rest2) = rut::parse_one(rest1); let (result3, rest3) = rut::parse_one(rest2); assert_eq!(result1, Err(BrokenSequence)); assert_eq!(result2, Ok('A')); assert_eq!(result3, Ok('B')); assert_eq!(rest1, &[0x41, 0x42]); assert_eq!(rest2, &[0x42]); assert_eq!(rest3, &[]);