#[repr(C)]pub struct Position {
pub file_id: FileId,
pub offset: usize,
}Expand description
Represents a specific byte offset within a single source file.
This struct combines a FileId with a zero-based offset to create a
precise, unique location pointer.
The memory layout is specified as #[repr(C)] to ensure stability for
potential foreign function interfaces (FFI).
Fields§
§file_id: FileIdThe unique identifier of the file this position belongs to.
offset: usizeThe zero-based byte offset from the beginning of the file.
Implementations§
Source§impl Position
impl Position
Sourcepub fn new(file_id: FileId, offset: usize) -> Self
pub fn new(file_id: FileId, offset: usize) -> Self
Creates a new Position from a file ID and a byte offset.
Sourcepub fn dummy(offset: usize) -> Self
pub fn dummy(offset: usize) -> Self
Creates a “dummy” position with a null file ID.
This is useful for generated code or locations that don’t map to a real file.
Sourcepub const fn forward(&self, offset: usize) -> Self
pub const fn forward(&self, offset: usize) -> Self
Returns a new position moved forward by the given offset.
Uses saturating arithmetic to prevent overflow.
Trait Implementations§
Source§impl AddAssign<usize> for Position
impl AddAssign<usize> for Position
Source§fn add_assign(&mut self, rhs: usize)
fn add_assign(&mut self, rhs: usize)
Performs the
+= operation. Read moreSource§impl<'de> Deserialize<'de> for Position
impl<'de> Deserialize<'de> for Position
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl HasPosition for Position
impl HasPosition for Position
Source§impl Ord for Position
impl Ord for Position
Source§impl PartialOrd for Position
impl PartialOrd for Position
Source§impl SubAssign<usize> for Position
impl SubAssign<usize> for Position
Source§fn sub_assign(&mut self, rhs: usize)
fn sub_assign(&mut self, rhs: usize)
Moves the position backward in-place.
impl Copy for Position
impl Eq for Position
impl StructuralPartialEq for Position
Auto Trait Implementations§
impl Freeze for Position
impl RefUnwindSafe for Position
impl Send for Position
impl Sync for Position
impl Unpin for Position
impl UnwindSafe for Position
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more