pub struct Location {
pub code: Rc<Code>,
pub range: Range<usize>,
}
Expand description
Position of source code
Fields§
§code: Rc<Code>
Code that contains the character
range: Range<usize>
Character position in the code, counted from 0
Characters are counted in the number of Unicode scalar values, not
bytes. That means the index should be between 0 and
code.value.borrow().chars().count()
.
Implementations§
Source§impl Location
impl Location
Sourcepub fn dummy<S: Into<String>>(value: S) -> Location
pub fn dummy<S: Into<String>>(value: S) -> Location
Creates a dummy location.
The returned location has unknown source and the
given source code value. The start_line_number
will be 1.
The location ranges over the whole code.
This function is mainly for use in testing.
Sourcepub fn byte_range(&self) -> Range<usize>
pub fn byte_range(&self) -> Range<usize>
Returns the byte range corresponding to this location’s character range.
Trait Implementations§
impl Eq for Location
impl StructuralPartialEq for Location
Auto Trait Implementations§
impl Freeze for Location
impl !RefUnwindSafe for Location
impl !Send for Location
impl !Sync for Location
impl Unpin for Location
impl !UnwindSafe for Location
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more