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