Struct Utf8Chunk
pub struct Utf8Chunk<'a> { /* private fields */ }
A chunk of valid UTF-8, possibly followed by invalid UTF-8 bytes.
This is yielded by the
Utf8Chunks
iterator, which can be created via the
ByteSlice::utf8_chunks
method.
The 'a lifetime parameter corresponds to the lifetime of the bytes that
are being iterated over.
Implementations
impl<'a> Utf8Chunk<'a>
fn valid(&self) -> &'a strReturns the (possibly empty) valid UTF-8 bytes in this chunk.
This may be empty if there are consecutive sequences of invalid UTF-8 bytes.
fn invalid(&self) -> &'a [u8]Returns the (possibly empty) invalid UTF-8 bytes in this chunk that immediately follow the valid UTF-8 bytes in this chunk.
This is only empty when this chunk corresponds to the last chunk in the original bytes.
The maximum length of this slice is 3. That is, invalid UTF-8 byte sequences greater than 1 always correspond to a valid prefix of a valid UTF-8 encoded codepoint. This corresponds to the "substitution of maximal subparts" strategy that is described in more detail in the docs for the
ByteSlice::to_str_lossymethod.fn incomplete(&self) -> boolReturns whether the invalid sequence might still become valid if more bytes are added.
Returns true if the end of the input was reached unexpectedly, without encountering an unexpected byte.
This can only be the case for the last chunk.
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> UnsafeUnpin for Utf8Chunk<'a>
impl<'a> UnwindSafe for Utf8Chunk<'a>
Blanket Implementations
impl<T> Any for Utf8Chunk<'a>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Utf8Chunk<'a>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Utf8Chunk<'a>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for Utf8Chunk<'a>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into<U> for Utf8Chunk<'a>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Utf8Chunk<'a>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Utf8Chunk<'a>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>