pub struct Utf8Chunk<'a> { /* private fields */ }
Expand description
An item returned by the Utf8Chunks
iterator.
A Utf8Chunk
stores a sequence of u8
up to the first broken character
when decoding a UTF-8 string.
§Examples
// An invalid UTF-8 string
let bytes = b"foo\xF1\x80bar";
// Decode the first `Utf8Chunk`
let chunk = bytes.utf8_chunks().next().unwrap();
// The first three characters are valid UTF-8
assert_eq!("foo", chunk.valid());
// The fourth character is broken
assert_eq!(b"\xF1\x80", chunk.invalid());
Implementations§
Source§impl<'a> Utf8Chunk<'a>
impl<'a> Utf8Chunk<'a>
1.79.0 · Sourcepub fn valid(&self) -> &'a str
pub fn valid(&self) -> &'a str
Returns the next validated UTF-8 substring.
This substring can be empty at the start of the string or between broken UTF-8 characters.
1.79.0 · Sourcepub fn invalid(&self) -> &'a [u8] ⓘ
pub fn invalid(&self) -> &'a [u8] ⓘ
Returns the invalid sequence that caused a failure.
The returned slice will have a maximum length of 3 and starts after the
substring given by valid
. Decoding will resume after this sequence.
If empty, this is the last chunk in the string. If non-empty, an unexpected byte was encountered or the end of the input was reached unexpectedly.
Lossy decoding would replace this sequence with U+FFFD REPLACEMENT CHARACTER
.
Trait Implementations§
impl<'a> Eq for Utf8Chunk<'a>
impl<'a> StructuralPartialEq for Utf8Chunk<'a>
Auto Trait Implementations§
impl<'a> Freeze for Utf8Chunk<'a>
impl<'a> RefUnwindSafe for Utf8Chunk<'a>
impl<'a> Send for Utf8Chunk<'a>
impl<'a> Sync for Utf8Chunk<'a>
impl<'a> Unpin for Utf8Chunk<'a>
impl<'a> UnwindSafe for Utf8Chunk<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes