1 use core::str::Utf8Chunks;
5 macro_rules! assert_chunks {
6 ( $string:expr, $(($valid:expr, $invalid:expr)),* $(,)? ) => {{
7 let mut iter = Utf8Chunks::new($string);
9 let chunk = iter.next().expect("missing chunk");
10 assert_eq!($valid, chunk.valid());
11 assert_eq!($invalid, chunk.invalid());
13 assert_eq!(None, iter.next());
17 assert_chunks!(b"hello", ("hello", b""));
18 assert_chunks!("ศไทย中华Việt Nam".as_bytes(), ("ศไทย中华Việt Nam", b""));
20 b"Hello\xC2 There\xFF Goodbye",
26 b"Hello\xC0\x80 There\xE6\x83 Goodbye",
29 (" There", b"\xE6\x83"),
33 b"\xF5foo\xF5\x80bar",
40 b"\xF1foo\xF1\x80bar\xF1\x80\x80baz",
43 ("bar", b"\xF1\x80\x80"),
47 b"\xF4foo\xF4\x80bar\xF4\xBFbaz",
55 b"\xF0\x80\x80\x80foo\xF0\x90\x80\x80bar",
60 ("foo\u{10000}bar", b""),
65 b"\xED\xA0\x80foo\xED\xBF\xBFbar",
79 "\"Hello\\xC0\\x80 There\\xE6\\x83 Goodbye\\u{10d4ea}\"",
82 Utf8Chunks::new(b"Hello\xC0\x80 There\xE6\x83 Goodbye\xf4\x8d\x93\xaa").debug(),