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

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>

Important traits for Tokens<'ast, 'b>

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

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

fn end_position(&self) -> Option<Position>

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

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

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

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

Important traits for Tokens<'ast, 'b>

impl<'ast, 'b> Iterator for Tokens<'ast, 'b> type Item = Cow<'b, TokenReference<'ast>>;

The token references that comprise a node

Loading content...

Provided methods

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

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

fn surrounding_trivia<'b>(
    &'b self
) -> (Vec<Cow<'b, Token<'ast>>>, Vec<Cow<'b, Token<'ast>>>)

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> + ToOwned, '_> Node<'a> for Cow<'_, 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 ContainedSpan<'a>[src]

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

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

impl<'a> Node<'a> for BinOpRhs<'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 Token<'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...