[][src]Struct syntax_pos::SpanData

pub struct SpanData {
    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.

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.

Methods

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

impl Clone for SpanData[src]

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

Performs copy-assignment from source. Read more

impl PartialEq<SpanData> for SpanData[src]

impl Eq for SpanData[src]

impl Ord for SpanData[src]

fn max(self, other: Self) -> Self1.21.0[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self1.21.0[src]

Compares and returns the minimum of two values. Read more

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

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

Restrict a value to a certain interval. Read more

impl Copy for SpanData[src]

impl Debug for SpanData[src]

impl Hash for SpanData[src]

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

Auto Trait Implementations

impl Send for SpanData

impl Sync for SpanData

Blanket Implementations

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

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

type Owned = T

The resulting type after obtaining ownership.

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

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<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<E> SpecializationError for E[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> Send for T where
    T: ?Sized
[src]

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