pub struct Source { /* private fields */ }
Expand description
A type representing a single source that may be referred to by Span
s.
In most cases, a source is a single input file.
Implementations§
source§impl Source
impl Source
sourcepub fn chars(&self) -> impl Iterator<Item = char> + '_
pub fn chars(&self) -> impl Iterator<Item = char> + '_
Return an iterator over the characters in the source.
sourcepub fn lines(&self) -> impl ExactSizeIterator<Item = &Line> + '_
pub fn lines(&self) -> impl ExactSizeIterator<Item = &Line> + '_
Return an iterator over the Line
s in this source.
sourcepub fn get_offset_line(&self, offset: usize) -> Option<(&Line, usize, usize)>
pub fn get_offset_line(&self, offset: usize) -> Option<(&Line, usize, usize)>
Get the line that the given offset appears on, and the line/column numbers of the offset.
Note that the line/column numbers are zero-indexed.
sourcepub fn get_line_range<S: Span>(&self, span: &S) -> Range<usize>
pub fn get_line_range<S: Span>(&self, span: &S) -> Range<usize>
Get the range of lines that this span runs across.
The resulting range is guaranteed to contain valid line indices (i.e: those that can be used for
Source::line
).