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

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

Notable traits for Tokens<'ast, 'b>

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

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

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

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

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

pub 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

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

Notable traits for Tokens<'ast, 'b>

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

The token references that comprise a node

Loading content...

Provided methods

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

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

pub fn surrounding_trivia<'b>(
    &'b self
) -> (Vec<Cow<'b, Token<'ast>>>, Vec<Cow<'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> + 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...