Struct Region

Source
pub struct Region {
    pub start: Loc,
    pub end: Loc,
}
Expand description

The location enclosed by a region begins at start and ends exclusively at end. It is required that both locations come from the same source and that end monotonically proceeds start (so start and end can compare equal). This invariant is enforced when constructing through Region::new.

Fields§

§start: Loc

An inclusive lower bound (see Loc::partial_cmp) on the region enclosed.

§end: Loc

An exclusive upper bound (see Loc::partial_cmp) on the region enclosed.

Implementations§

Source§

impl Region

Source

pub fn new(start: Loc, end: Loc) -> Region

A region from start up to (but not including) end.

Source

pub fn unit(start: Loc) -> Region

A region at start of length 1.

Requires: the start.line contains at least one more character after start.col.

Source

pub fn source(&self) -> Rc<Source>

The source where this region occurs.

Source

pub fn start_line(&self) -> isize

Source

pub fn end_line(&self) -> isize

Source

pub fn find_intersection( &self, lines: &[String], start_line: isize, ) -> Vec<LineSection>

Given a set of complete lines from the same source as source() and the line number of the first line in lines, start_line, this function computes the intersection of this region and the given lines. If the output vector is non-empty, the first entry in the output vector corresponds to the first line of this region, which is not necessarily the first line in lines. See LineSection.

Trait Implementations§

Source§

impl Clone for Region

Source§

fn clone(&self) -> Region

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 Region

Source§

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

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

impl Default for Region

Source§

fn default() -> Region

Returns the “default value” for a type. Read more
Source§

impl Display for Region

Source§

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

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

impl PartialEq for Region

Source§

fn eq(&self, other: &Region) -> 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 RegionProvider for Region

Source§

fn start(&self) -> Loc

The starting location of this region.
Source§

fn end(&self) -> Loc

Must be in the same source and monotonically after RegionProvider::start. See Region for details.
Source§

fn region(&self) -> Region

The region of this object.
Source§

impl Eq for Region

Source§

impl StructuralPartialEq for Region

Auto Trait Implementations§

§

impl Freeze for Region

§

impl RefUnwindSafe for Region

§

impl !Send for Region

§

impl !Sync for Region

§

impl Unpin for Region

§

impl UnwindSafe for Region

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.