Struct line_index::LineIndex

source ·
pub struct LineIndex { /* private fields */ }
Expand description

Maps flat TextSize offsets to/from (line, column) representation.

Implementations§

source§

impl LineIndex

source

pub fn new(text: &str) -> LineIndex

Returns a LineIndex for the text.

source

pub fn line_col(&self, offset: TextSize) -> LineCol

Transforms the TextSize into a LineCol.

Panics

If the offset is invalid. See Self::try_line_col.

source

pub fn try_line_col(&self, offset: TextSize) -> Option<LineCol>

Transforms the TextSize into a LineCol.

Returns None if the offset was invalid, e.g. if it extends past the end of the text or points to the middle of a multi-byte character.

source

pub fn offset(&self, line_col: LineCol) -> Option<TextSize>

Transforms the LineCol into a TextSize.

source

pub fn to_wide( &self, enc: WideEncoding, line_col: LineCol ) -> Option<WideLineCol>

Transforms the LineCol with the given WideEncoding into a WideLineCol.

source

pub fn to_utf8( &self, enc: WideEncoding, line_col: WideLineCol ) -> Option<LineCol>

Transforms the WideLineCol with the given WideEncoding into a LineCol.

source

pub fn lines(&self, range: TextRange) -> impl Iterator<Item = TextRange> + '_

Given a range [start, end), returns a sorted iterator of non-empty ranges [start, x1), [x1, x2), …, [xn, end) where all the xi, which are positions of newlines, are inside the range [start, end).

source

pub fn len(&self) -> TextSize

Returns the length of the original text.

Trait Implementations§

source§

impl Clone for LineIndex

source§

fn clone(&self) -> LineIndex

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for LineIndex

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for LineIndex

source§

fn eq(&self, other: &LineIndex) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for LineIndex

source§

impl StructuralEq for LineIndex

source§

impl StructuralPartialEq for LineIndex

Auto Trait Implementations§

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.