Struct deno_ast::SourceTextInfo
source · [−]pub struct SourceTextInfo { /* private fields */ }
Expand description
Stores the source text along with other data such as where all the lines occur in the text.
Note: This struct is cheap to clone.
Implementations
sourceimpl SourceTextInfo
impl SourceTextInfo
sourcepub fn new(text: Arc<String>) -> Self
pub fn new(text: Arc<String>) -> Self
Creates a new SourceTextInfo
from the provided source text.
sourcepub fn new_with_pos(start_pos: BytePos, text: Arc<String>) -> Self
pub fn new_with_pos(start_pos: BytePos, text: Arc<String>) -> Self
Creates a new SourceTextInfo
from the provided byte position
and source text.
Generally, most files will have a start position of BytePos(0)
and when in doubt provide that, but SWC will not necessarily
start files with BytePos(0)
when bundling.
sourcepub fn new_with_indent_width(
start_pos: BytePos,
text: Arc<String>,
indent_width: usize
) -> Self
pub fn new_with_indent_width(
start_pos: BytePos,
text: Arc<String>,
indent_width: usize
) -> Self
Creates a new SourceTextInfo
from the provided start position,
source text, and indentation width.
The indentation width determines the number of columns to use
when going over a tab character. For example, an indent width
of 2 will mean each tab character will represent 2 columns.
The default indentation width used in the other methods is 2
to match the default indentation used by deno fmt
.
sourcepub fn from_string(text: String) -> Self
pub fn from_string(text: String) -> Self
Creates a new SourceTextInfo
from the provided source text.
Generally, prefer using SourceTextInfo::new
to provide a
string already in an std::sync::Arc
.
sourcepub fn lines_count(&self) -> usize
pub fn lines_count(&self) -> usize
Gets the number of lines in the source text.
sourcepub fn line_index(&self, pos: BytePos) -> usize
pub fn line_index(&self, pos: BytePos) -> usize
Gets the 0-indexed line index at the provided byte position.
Note that this will panic when providing a byte position outside the range of the source text.
sourcepub fn line_start(&self, line_index: usize) -> BytePos
pub fn line_start(&self, line_index: usize) -> BytePos
Gets the line start byte position of the provided 0-indexed line index.
Note that this will panic if providing a line index outside the bounds of the number of lines.
sourcepub fn line_end(&self, line_index: usize) -> BytePos
pub fn line_end(&self, line_index: usize) -> BytePos
Gets the line end byte position of the provided 0-indexed line index.
Note that this will panic if providing a line index outside the bounds of the number of lines.
sourcepub fn line_and_column_index(&self, pos: BytePos) -> LineAndColumnIndex
pub fn line_and_column_index(&self, pos: BytePos) -> LineAndColumnIndex
Gets the 0-indexed line and column index of the provided byte position.
Note that this will panic when providing a byte position outside the range of the source text.
sourcepub fn line_and_column_display(&self, pos: BytePos) -> LineAndColumnDisplay
pub fn line_and_column_display(&self, pos: BytePos) -> LineAndColumnDisplay
Gets the 1-indexed line and column index of the provided byte position taking into account the default indentation width.
Note that this will panic when providing a byte position outside the range of the source text.
sourcepub fn line_and_column_display_with_indent_width(
&self,
pos: BytePos,
indent_width: usize
) -> LineAndColumnDisplay
pub fn line_and_column_display_with_indent_width(
&self,
pos: BytePos,
indent_width: usize
) -> LineAndColumnDisplay
Gets the 1-indexed line and column index of the provided byte position with a custom indentation width.
Note that this will panic when providing a byte position outside the range of the source text.
sourcepub fn byte_index(&self, line_and_column_index: LineAndColumnIndex) -> BytePos
pub fn byte_index(&self, line_and_column_index: LineAndColumnIndex) -> BytePos
Gets the byte position of the provided line and column index.
Note that this will panic if providing a line index outside the bounds of the number of lines, but will clip the the line end byte index when exceeding the line length.
Trait Implementations
sourceimpl Clone for SourceTextInfo
impl Clone for SourceTextInfo
sourcefn clone(&self) -> SourceTextInfo
fn clone(&self) -> SourceTextInfo
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for SourceTextInfo
impl Debug for SourceTextInfo
sourceimpl SourceFile for SourceTextInfo
impl SourceFile for SourceTextInfo
fn text(&self) -> &str
fn span(&self) -> Span
fn lines_count(&self) -> usize
fn line_index(&self, pos: BytePos) -> usize
fn line_start(&self, line_index: usize) -> BytePos
fn line_end(&self, line_index: usize) -> BytePos
fn line_and_column_index(&self, pos: BytePos) -> LineAndColumnIndex
Auto Trait Implementations
impl RefUnwindSafe for SourceTextInfo
impl Send for SourceTextInfo
impl Sync for SourceTextInfo
impl Unpin for SourceTextInfo
impl UnwindSafe for SourceTextInfo
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more