[][src]Struct swc_common::Span

pub struct Span {
    pub lo: BytePos,
    pub hi: BytePos,
    pub ctxt: SyntaxContext,
}

Spans represent a region of code, used for error reporting. Positions in spans are absolute positions from the beginning of the source_map, not positions relative to SourceFiles. Methods on the SourceMap can be used to relate spans back to the original source. You must be careful if the span crosses more than one file - you will not be able to use many of the functions on spans in source_map and you cannot assume that the length of the span = hi - lo; there may be space in the BytePos range between files.

Fields

lo: BytePoshi: BytePosctxt: SyntaxContext

Information about where the macro came from, if this piece of code was created by a macro expansion.

Implementations

impl Span[src]

pub fn lo(self) -> BytePos[src]

pub fn new(lo: BytePos, hi: BytePos, ctxt: SyntaxContext) -> Self[src]

pub fn with_lo(&self, lo: BytePos) -> Span[src]

pub fn hi(self) -> BytePos[src]

pub fn with_hi(&self, hi: BytePos) -> Span[src]

pub fn ctxt(self) -> SyntaxContext[src]

pub fn with_ctxt(&self, ctxt: SyntaxContext) -> Span[src]

pub fn is_dummy(self) -> bool[src]

Returns true if this is a dummy span with any hygienic context.

pub fn shrink_to_lo(self) -> Span[src]

Returns a new span representing an empty span at the beginning of this span

pub fn shrink_to_hi(self) -> Span[src]

Returns a new span representing an empty span at the end of this span

pub fn substitute_dummy(self, other: Span) -> Span[src]

Returns self if self is not the dummy span, and other otherwise.

pub fn contains(self, other: Span) -> bool[src]

Return true if self fully encloses other.

pub fn source_equal(self, other: Span) -> bool[src]

Return true if the spans are equal with regards to the source text.

Use this instead of == when either span could be generated code, and you only care that they point to the same bytes of source text.

pub fn trim_start(self, other: Span) -> Option<Span>[src]

Returns Some(span), where the start is trimmed by the end of other

pub fn to(self, end: Span) -> Span[src]

Return a Span that would enclose both self and end.

pub fn between(self, end: Span) -> Span[src]

Return a Span between the end of self to the beginning of end.

pub fn until(self, end: Span) -> Span[src]

Return a Span between the beginning of self to the beginning of end.

pub fn from_inner_byte_pos(self, start: usize, end: usize) -> Span[src]

pub fn apply_mark(self, mark: Mark) -> Span[src]

pub fn remove_mark(&mut self) -> Mark[src]

pub fn adjust(&mut self, expansion: Mark) -> Option<Mark>[src]

pub fn glob_adjust(
    &mut self,
    expansion: Mark,
    glob_ctxt: SyntaxContext
) -> Option<Option<Mark>>
[src]

pub fn reverse_glob_adjust(
    &mut self,
    expansion: Mark,
    glob_ctxt: SyntaxContext
) -> Option<Option<Mark>>
[src]

Trait Implementations

impl Clone for Span[src]

impl Copy for Span[src]

impl Debug for Span[src]

impl Default for Span[src]

impl<'de> Deserialize<'de> for Span[src]

impl Eq for Span[src]

impl From<Span> for MultiSpan[src]

impl Hash for Span[src]

impl Ord for Span[src]

impl PartialEq<Span> for Span[src]

impl PartialOrd<Span> for Span[src]

impl Serialize for Span[src]

impl Spanned for Span[src]

impl StructuralEq for Span[src]

impl StructuralPartialEq for Span[src]

Auto Trait Implementations

impl RefUnwindSafe for Span

impl Send for Span

impl Sync for Span

impl Unpin for Span

impl UnwindSafe for Span

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> Erased for T

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.