Struct proc_macro2::Span[][src]

pub struct Span { /* fields omitted */ }

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

Implementations

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 mixed_site() -> Span[src]

The span located at the invocation of the procedural macro, but with local variables, labels, and $crate resolved at the definition site of the macro. This is the same hygiene behavior as macro_rules.

This function requires Rust 1.45 or later.

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.

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.

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 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.

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.