Skip to main content

Loc

Struct Loc 

Source
pub struct Loc {
    pub file: FileId,
    pub line: u32,
    pub column: u32,
}
Expand description

A position resolved back to a human coordinate.

Lines and columns both count from one, because that is what every editor, every other compiler and every user expects, and an off by one here is the kind of bug that survives for years because nobody quite trusts their own arithmetic enough to file it.

Fields§

§file: FileId

Which file.

§line: u32

The line, counting from one.

§column: u32

The column in bytes, counting from one.

Bytes rather than characters or display columns. A tab counts as one and a multibyte character counts as its encoded length, which is what a caret line drawn from the same bytes needs. -ftabstop and the width of a CJK character are the renderer’s problem; what belongs here is the offset into the line.

Trait Implementations§

Source§

impl Clone for Loc

Source§

fn clone(&self) -> Loc

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Loc

Source§

impl Debug for Loc

Source§

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

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

impl Eq for Loc

Source§

impl PartialEq for Loc

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Loc

Auto Trait Implementations§

§

impl Freeze for Loc

§

impl RefUnwindSafe for Loc

§

impl Send for Loc

§

impl Sync for Loc

§

impl Unpin for Loc

§

impl UnsafeUnpin for Loc

§

impl UnwindSafe for Loc

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.