Skip to main content

ByteToChar

Struct ByteToChar 

Source
pub struct ByteToChar<'a> { /* private fields */ }
Expand description

Struct to map byte positions in a UTF-8 string to character positions, for error reporting.

Memory usage is optimized by storing cumulative character counts at 128 byte intervals, which allows for efficient mapping of byte positions to character positions without needing to store a mapping for every single byte.

Implementations§

Source§

impl<'a> ByteToChar<'a>

Source

pub fn new(bytes: &'a [u8]) -> Self

Create a new ByteToChar mapping for the given byte slice.

Source

pub fn map(&self, byte_pos: usize) -> usize

Map a byte position to a character position.

Source

pub fn map_span(&self, span: Range<usize>) -> Range<usize>

Map a byte-offset span to a char-offset span.

Auto Trait Implementations§

§

impl<'a> Freeze for ByteToChar<'a>

§

impl<'a> RefUnwindSafe for ByteToChar<'a>

§

impl<'a> Send for ByteToChar<'a>

§

impl<'a> Sync for ByteToChar<'a>

§

impl<'a> Unpin for ByteToChar<'a>

§

impl<'a> UnsafeUnpin for ByteToChar<'a>

§

impl<'a> UnwindSafe for ByteToChar<'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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.