TreeCursor

Struct TreeCursor 

Source
#[repr(transparent)]
pub struct TreeCursor<'tree>(pub TreeCursor<'tree>);
Expand description

A stateful object for walking a syntax tree efficiently. See raw::TreeCursor

Tuple Fields§

§0: TreeCursor<'tree>

Implementations§

Source§

impl<'tree> TreeCursor<'tree>

Source

pub fn wrap_ref<'a>(cursor: &'a TreeCursor<'_>) -> &'a Self

Transmute an immutable reference, since they have the same representation.

Source

pub fn wrap_mut<'a>(cursor: &'a mut TreeCursor<'_>) -> &'a mut Self

Transmute a mutable reference, since they have the same representation.

Source

pub fn node(&self) -> UntypedNode<'tree>

Gets the cursor’s current node

Source

pub fn field_name(&mut self) -> Option<&'static str>

Gets the field name of the cursor’s current node

Source

pub fn reset(&mut self, node: impl Node<'tree>)

Re-initialize the cursor to point to the given node

Source

pub fn goto_first_child(&mut self) -> bool

Move the cursor to the first child of the current node and return true, or return false if the current node has no children

Source

pub fn goto_first_child_for_byte(&mut self, index: usize) -> Option<usize>

Move the cursor to the first child of the current node that extends beyond the given byte offset, and return its index.

Returns None if the current node has no children past that offset.

Source

pub fn goto_first_child_for_point(&mut self, point: Point) -> Option<usize>

Move the cursor to the first child of the current node that extends beyond the given row and column, and return its index.

Returns None if the current node has no children past that row and column.

Source

pub fn goto_next_sibling(&mut self) -> bool

Move the cursor to the next sibling of the current node and return true, or return false if the current node has no next sibling.

Also returns false if the cursor was initialized or re-initialized to this node, even if it has a sibling.

Source

pub fn goto_parent(&mut self) -> bool

Move the cursor to the parent of the current node and return true, or return false if the current node is a tree root.

Also returns false if the cursor was initialized or re-initialized to this node, even if it has a parent.

Trait Implementations§

Source§

impl<'tree> Clone for TreeCursor<'tree>

Source§

fn clone(&self) -> TreeCursor<'tree>

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

Auto Trait Implementations§

§

impl<'tree> Freeze for TreeCursor<'tree>

§

impl<'tree> RefUnwindSafe for TreeCursor<'tree>

§

impl<'tree> Send for TreeCursor<'tree>

§

impl<'tree> Sync for TreeCursor<'tree>

§

impl<'tree> Unpin for TreeCursor<'tree>

§

impl<'tree> UnwindSafe for TreeCursor<'tree>

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.