pub struct Position { /* private fields */ }Expand description
Represents a position in source code.
Positions use zero-based line and column numbers, where line 0 is the first line and column 0 is the first character. Unlike tree-sitter’s internal positions, these are character-based rather than byte-based for easier human consumption.
§Note
Computing the character column from byte positions is an O(n) operation,
so avoid calling Position::column in performance-critical loops.
§Example
let ast = Language::Tsx.ast_grep("let x = 42;\nlet y = 24;");
let root = ast.root();
let start_pos = root.start_pos();
assert_eq!(start_pos.line(), 0);Implementations§
Source§impl Position
impl Position
pub const fn new(line: usize, byte_column: usize, byte_offset: usize) -> Self
pub const fn line(&self) -> usize
Sourcepub fn column<D: Doc>(&self, node: &Node<'_, D>) -> usize
pub fn column<D: Doc>(&self, node: &Node<'_, D>) -> usize
Returns the column in terms of characters. Note: node does not have to be a node of matching position.
pub const fn byte_point(&self) -> (usize, usize)
Trait Implementations§
Source§impl Ord for Position
impl Ord for Position
Source§impl PartialOrd for Position
impl PartialOrd for Position
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 UnsafeUnpin 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