Skip to main content

AnyParsedStatement

Struct AnyParsedStatement 

Source
pub struct AnyParsedStatement<'a> { /* private fields */ }
Expand description

Grammar-erased view of a parsed statement.

Cheap to borrow — holds a raw parser pointer, source reference, and grammar handle. Nodes and lists store &'a AnyParsedStatement<'a> rather than an owned copy, making them Copy and eliminating grammar-handle clones.

Implementations§

Source§

impl<'a> AnyParsedStatement<'a>

Source

pub fn root_id(&self) -> AnyNodeId

Root node ID for the current statement (AnyNodeId::NULL if absent).

Source

pub fn macro_regions(&self) -> impl Iterator<Item = MacroRegion> + use<'_>

Macro expansion call-site spans recorded during parsing.

Source

pub fn source(&self) -> &'a str

The source text bound to this result.

Source

pub fn token_spans(&self) -> impl Iterator<Item = (u32, u32)> + use<'_>

Raw token spans (offset, length) for all collected tokens.

Returns an empty iterator if collect_tokens was not enabled. Always non-empty when the result comes from TypedParser::incremental_parse, which unconditionally enables token collection.

Source

pub fn comment_spans(&self) -> impl Iterator<Item = CommentSpan> + use<'_>

Lightweight comment descriptors without source text borrows.

Returns an empty iterator if collect_tokens was not enabled.

Source

pub fn extract_fields( &self, id: AnyNodeId, ) -> Option<(AnyNodeTag, NodeFields<'a>)>

Extract reflective node data (tag + field values) for id.

Source

pub fn list_children(&self, id: AnyNodeId) -> Option<&'a [AnyNodeId]>

Return child node IDs if id is a list node.

Source

pub fn child_node_ids( &self, id: AnyNodeId, ) -> impl Iterator<Item = AnyNodeId> + '_

Iterate direct child node IDs for the node at id.

Source

pub fn root_node(&self) -> Option<AnyNode<'_>>

Return the root node as an AnyNode, or None if the parse result has no root (e.g. empty input or fatal parse error).

When the serde feature is enabled, the returned AnyNode implements serde::Serialize using the same structure as dump_node.

Trait Implementations§

Source§

impl<'a> Clone for AnyParsedStatement<'a>

Source§

fn clone(&self) -> AnyParsedStatement<'a>

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<'a> Freeze for AnyParsedStatement<'a>

§

impl<'a> !RefUnwindSafe for AnyParsedStatement<'a>

§

impl<'a> !Send for AnyParsedStatement<'a>

§

impl<'a> !Sync for AnyParsedStatement<'a>

§

impl<'a> Unpin for AnyParsedStatement<'a>

§

impl<'a> UnsafeUnpin for AnyParsedStatement<'a>

§

impl<'a> !UnwindSafe for AnyParsedStatement<'a>

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.