[][src]Struct proc_macro2::Span

pub struct Span { /* fields omitted */ }

A region of source code, along with macro expansion information.

Methods

impl Span[src]

pub fn call_site() -> Span[src]

The span of the invocation of the current procedural macro.

Identifiers created with this span will be resolved as if they were written directly at the macro call location (call-site hygiene) and other code at the macro call site will be able to refer to them as well.

pub fn def_site() -> Span[src]

A span that resolves at the macro definition site.

This method is semver exempt and not exposed by default.

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

Creates a new span with the same line/column information as self but that resolves symbols as though it were at other.

This method is semver exempt and not exposed by default.

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

Creates a new span with the same name resolution behavior as self but with the line/column information of other.

This method is semver exempt and not exposed by default.

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

Convert proc_macro2::Span to proc_macro::Span.

This method is available when building with a nightly compiler, or when building with rustc 1.29+ without semver exempt features.

Panics

Panics if called from outside of a procedural macro. Unlike proc_macro2::Span, the proc_macro::Span type can only exist within the context of a procedural macro invocation.

pub fn source_file(&self) -> SourceFile[src]

The original source file into which this span points.

This method is semver exempt and not exposed by default.

pub fn start(&self) -> LineColumn[src]

Get the starting line/column in the source file for this span.

This method requires the "span-locations" feature to be enabled.

pub fn end(&self) -> LineColumn[src]

Get the ending line/column in the source file for this span.

This method requires the "span-locations" feature to be enabled.

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

Create a new span encompassing self and other.

Returns None if self and other are from different files.

Warning: the underlying proc_macro::Span::join method is nightly-only. When called from within a procedural macro not using a nightly compiler, this method will always return None.

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

Compares two spans to see if they're equal.

This method is semver exempt and not exposed by default.

Trait Implementations

impl Clone for Span[src]

impl Copy for Span[src]

impl Debug for Span[src]

Prints a span in a form convenient for debugging.

impl From<Span> 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> 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.