Struct gix::worktree::object::bstr::Utf8Chunk

source ·
pub struct Utf8Chunk<'a> { /* private fields */ }
Available on crate feature excludes only.
Expand description

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§

source§

impl<'a> Utf8Chunk<'a>

source

pub fn valid(&self) -> &'a str

Returns the (possibly empty) valid UTF-8 bytes in this chunk.

This may be empty if there are consecutive sequences of invalid UTF-8 bytes.

source

pub 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_lossy method.

source

pub fn incomplete(&self) -> bool

Returns 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> UnwindSafe for Utf8Chunk<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.