Trait full_moon::node::Node[][src]

pub trait Node<'ast>: Sealed {
    fn start_position(&self) -> Option<Position>;
fn end_position(&self) -> Option<Position>;
fn similar(&self, other: &Self) -> bool
    where
        Self: Sized
;
fn tokens<'b>(&'b self) -> Tokens<'ast, 'b>

Notable traits for Tokens<'ast, 'b>

impl<'ast, 'b> Iterator for Tokens<'ast, 'b> type Item = &'b TokenReference<'ast>;
; fn range(&self) -> Option<(Position, Position)> { ... }
fn surrounding_trivia<'b>(
        &'b self
    ) -> (Vec<&'b Token<'ast>>, Vec<&'b Token<'ast>>) { ... } }

Used to represent nodes such as tokens or function definitions

This trait is sealed and cannot be implemented for types outside of full-moon

Required methods

fn start_position(&self) -> Option<Position>[src]

The start position of a node. None if can’t be determined

fn end_position(&self) -> Option<Position>[src]

The end position of a node. None if it can’t be determined

fn similar(&self, other: &Self) -> bool where
    Self: Sized
[src]

Whether another node of the same type is the same as this one semantically, ignoring position

fn tokens<'b>(&'b self) -> Tokens<'ast, 'b>

Notable traits for Tokens<'ast, 'b>

impl<'ast, 'b> Iterator for Tokens<'ast, 'b> type Item = &'b TokenReference<'ast>;
[src]

The token references that comprise a node

Loading content...

Provided methods

fn range(&self) -> Option<(Position, Position)>[src]

The full range of a node, if it has both start and end positions

fn surrounding_trivia<'b>(
    &'b self
) -> (Vec<&'b Token<'ast>>, Vec<&'b Token<'ast>>)
[src]

The tokens surrounding a node that are ignored and not accessible through the node’s own accessors. Use this if you want to get surrounding comments or whitespace. Returns a tuple of the leading and trailing trivia.

Loading content...

Implementations on Foreign Types

impl<'a, T: Node<'a>> Node<'a> for Box<T>[src]

impl<'a, T: Node<'a>> Node<'a> for &T[src]

impl<'a, T: Node<'a>> Node<'a> for &mut T[src]

impl<'a, T: Node<'a>> Node<'a> for Option<T>[src]

impl<'a, T: Node<'a>> Node<'a> for Vec<T>[src]

impl<'a, A: Node<'a>, B: Node<'a>> Node<'a> for (A, B)[src]

Loading content...

Implementors

impl<'a> Node<'a> for BinOp<'a>[src]

impl<'a> Node<'a> for Call<'a>[src]

impl<'a> Node<'a> for Expression<'a>[src]

impl<'a> Node<'a> for Field<'a>[src]

impl<'a> Node<'a> for FunctionArgs<'a>[src]

impl<'a> Node<'a> for Index<'a>[src]

impl<'a> Node<'a> for LastStmt<'a>[src]

impl<'a> Node<'a> for Parameter<'a>[src]

impl<'a> Node<'a> for Prefix<'a>[src]

impl<'a> Node<'a> for Stmt<'a>[src]

impl<'a> Node<'a> for Suffix<'a>[src]

impl<'a> Node<'a> for UnOp<'a>[src]

impl<'a> Node<'a> for Value<'a>[src]

impl<'a> Node<'a> for Var<'a>[src]

impl<'a> Node<'a> for CompoundOp<'a>[src]

impl<'a> Node<'a> for IndexedTypeInfo<'a>[src]

impl<'a> Node<'a> for TypeFieldKey<'a>[src]

impl<'a> Node<'a> for TypeInfo<'a>[src]

impl<'a> Node<'a> for Goto<'a>[src]

impl<'a> Node<'a> for Label<'a>[src]

impl<'a> Node<'a> for ContainedSpan<'a>[src]

impl<'a> Node<'a> for Assignment<'a>[src]

impl<'a> Node<'a> for Ast<'a>[src]

impl<'a> Node<'a> for Block<'a>[src]

impl<'a> Node<'a> for Do<'a>[src]

impl<'a> Node<'a> for ElseIf<'a>[src]

impl<'a> Node<'a> for FunctionBody<'a>[src]

impl<'a> Node<'a> for FunctionCall<'a>[src]

impl<'a> Node<'a> for FunctionDeclaration<'a>[src]

impl<'a> Node<'a> for FunctionName<'a>[src]

impl<'a> Node<'a> for GenericFor<'a>[src]

impl<'a> Node<'a> for If<'a>[src]

impl<'a> Node<'a> for LocalAssignment<'a>[src]

impl<'a> Node<'a> for LocalFunction<'a>[src]

impl<'a> Node<'a> for MethodCall<'a>[src]

impl<'a> Node<'a> for NumericFor<'a>[src]

impl<'a> Node<'a> for Repeat<'a>[src]

impl<'a> Node<'a> for Return<'a>[src]

impl<'a> Node<'a> for TableConstructor<'a>[src]

impl<'a> Node<'a> for VarExpression<'a>[src]

impl<'a> Node<'a> for While<'a>[src]

impl<'a> Node<'a> for CompoundAssignment<'a>[src]

impl<'a> Node<'a> for ExportedTypeDeclaration<'a>[src]

impl<'a> Node<'a> for GenericDeclaration<'a>[src]

impl<'a> Node<'a> for TypeAssertion<'a>[src]

impl<'a> Node<'a> for TypeDeclaration<'a>[src]

impl<'a> Node<'a> for TypeField<'a>[src]

impl<'a> Node<'a> for TypeSpecifier<'a>[src]

impl<'a> Node<'a> for TokenReference<'a>[src]

impl<'a, T: Node<'a>> Node<'a> for Pair<'a, T>[src]

impl<'a, T: Node<'a>> Node<'a> for Punctuated<'a, T>[src]

Loading content...