Struct swc_common::Span[][src]

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]

fn clone(&self) -> Span[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Span[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Default for Span[src]

fn default() -> Self[src]

Returns the “default value” for a type. Read more

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

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
    __D: Deserializer<'de>, 
[src]

Deserialize this value from the given Serde deserializer. Read more

impl EqIgnoreSpan for Span[src]

fn eq_ignore_span(&self, _: &Self) -> bool[src]

Always returns true

impl From<Span> for MultiSpan[src]

fn from(span: Span) -> MultiSpan[src]

Performs the conversion.

impl Hash for Span[src]

fn hash<__H: Hasher>(&self, state: &mut __H)[src]

Feeds this value into the given Hasher. Read more

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0[src]

Feeds a slice of this type into the given Hasher. Read more

impl Ord for Span[src]

fn cmp(&self, other: &Span) -> Ordering[src]

This method returns an Ordering between self and other. Read more

#[must_use]
fn max(self, other: Self) -> Self
1.21.0[src]

Compares and returns the maximum of two values. Read more

#[must_use]
fn min(self, other: Self) -> Self
1.21.0[src]

Compares and returns the minimum of two values. Read more

#[must_use]
fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]

Restrict a value to a certain interval. Read more

impl PartialEq<Span> for Span[src]

fn eq(&self, other: &Span) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Span) -> bool[src]

This method tests for !=.

impl PartialOrd<Span> for Span[src]

fn partial_cmp(&self, other: &Span) -> Option<Ordering>[src]

This method returns an ordering between self and other values if one exists. Read more

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Serialize for Span[src]

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
    __S: Serializer
[src]

Serialize this value into the given Serde serializer. Read more

impl Spanned for Span[src]

fn span(&self) -> Span[src]

Get span of self.

impl TypeEq for Span[src]

fn type_eq(&self, _: &Self) -> bool[src]

Always returns true

impl Copy for Span[src]

impl Eq 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]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

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