[][src]Struct rustc_ap_rustc_span::SpanData

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

Represents a span.

Spans represent a region of code, used for error reporting. Positions in spans are absolute positions from the beginning of the SourceMap, 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, since 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 is equal to span.hi - span.lo; there may be space in the BytePos range between files.

SpanData is public because Span uses a thread-local interner and can't be sent to other threads, but some pieces of performance infra run in a separate thread. Using Span is generally preferred.

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 SpanData[src]

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

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

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

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

Trait Implementations

impl Clone for SpanData[src]

impl Copy for SpanData[src]

impl Debug for SpanData[src]

impl Eq for SpanData[src]

impl Hash for SpanData[src]

impl Ord for SpanData[src]

impl PartialEq<SpanData> for SpanData[src]

impl PartialOrd<SpanData> for SpanData[src]

impl StructuralEq for SpanData[src]

impl StructuralPartialEq for SpanData[src]

Auto Trait Implementations

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<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> Erased for T[src]

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

impl<T> Instrument for T[src]

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

impl<T> Same<T> for T

type Output = T

Should always be Self

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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,