[][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 is semver exempt and not exposed by default.

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

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

This method is semver exempt and not exposed by default.

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.

This method is semver exempt and not exposed by default.

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

Compares to spans to see if they're equal.

This method is semver exempt and not exposed by default.

Trait Implementations

impl From<Span> for Span
[src]

impl Copy for Span
[src]

impl Clone for Span
[src]

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

Performs copy-assignment from source. Read more

impl Debug for Span
[src]

Prints a span in a form convenient for debugging.

Auto Trait Implementations

impl !Send for Span

impl !Sync for Span

Blanket Implementations

impl<T> From for T
[src]

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

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

type Owned = T

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

type Error = !

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

The type returned in the event of a conversion error.

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

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

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

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

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

The type returned in the event of a conversion error.

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