Skip to main content

SourceSpan

Struct SourceSpan 

Source
pub struct SourceSpan {
    pub start_inclusive: SourcePosition,
    pub end_exclusive: SourcePosition,
    pub file_path: Option<PathBuf>,
}
Expand description

Represents a span of source text from start to end position.

The span is a half-open interval: [start_inclusive, end_exclusive).

  • start_inclusive: Position of the first character of the source text
  • end_exclusive: Position immediately after the last character

Optionally includes a file path for the referenced source text.

Fields§

§start_inclusive: SourcePosition§end_exclusive: SourcePosition§file_path: Option<PathBuf>

The file path to the source text this span refers to, if available.

Implementations§

Source§

impl SourceSpan

Source

pub fn line_col(&self) -> ((u32, u32), (u32, u32))

Returns ((start_line, start_col), (end_line, end_col)) as 0-based u32 tuples.

Delegates to SourcePosition::line_col() on both endpoints.

Source

pub fn new(start: SourcePosition, end: SourcePosition) -> Self

Creates a span without file path information.

Source

pub fn with_file( start: SourcePosition, end: SourcePosition, file_path: PathBuf, ) -> Self

Creates a span with file path information.

Source

pub fn zero() -> Self

Creates a zero-position span with no file path.

Used as a fallback when source position resolution is unavailable (e.g. errors constructed without a SourceMap).

Trait Implementations§

Source§

impl Clone for SourceSpan

Source§

fn clone(&self) -> SourceSpan

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SourceSpan

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for SourceSpan

Source§

fn eq(&self, other: &SourceSpan) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SourceSpan

Source§

impl StructuralPartialEq for SourceSpan

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.