[−][src]Function rut::decode_one
pub fn decode_one(bytes: &[u8]) -> (Result<char, Error>, &[u8])
Decodes one character from a byte slice, returning a Result
and the 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::decode_one(&bytes); assert_eq!(result, Ok('€')); assert_eq!(rest, &[]);
use rut::Error::*; // Ill-formed sequence followed by 2 valid characters let bytes = [0xC2, 0x41, 0x42]; let (result1, rest1) = rut::decode_one(&bytes); let (result2, rest2) = rut::decode_one(rest1); let (result3, rest3) = rut::decode_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, &[]);