Trait mun_syntax::ast::AstNode[][src]

pub trait AstNode: Clone {
    fn can_cast(kind: SyntaxKind) -> bool;
fn cast(syntax: SyntaxNode) -> Option<Self>
    where
        Self: Sized
;
fn syntax(&self) -> &SyntaxNode; }

The main trait to go from untyped SyntaxNode to a typed ast. The conversion itself has zero runtime cost; ast and syntax nodes have exactly the same representation; a pointer to the tree root and a pointer to the node itself.

Required methods

fn can_cast(kind: SyntaxKind) -> bool[src]

fn cast(syntax: SyntaxNode) -> Option<Self> where
    Self: Sized
[src]

fn syntax(&self) -> &SyntaxNode[src]

Loading content...

Implementors

impl AstNode for ArgList[src]

impl AstNode for BinExpr[src]

impl AstNode for BindPat[src]

impl AstNode for BlockExpr[src]

impl AstNode for BreakExpr[src]

impl AstNode for CallExpr[src]

impl AstNode for Condition[src]

impl AstNode for Expr[src]

impl AstNode for ExprStmt[src]

impl AstNode for FieldExpr[src]

impl AstNode for FunctionDef[src]

impl AstNode for IfExpr[src]

impl AstNode for LetStmt[src]

impl AstNode for Literal[src]

impl AstNode for LoopExpr[src]

impl AstNode for MemoryTypeSpecifier[src]

impl AstNode for ModuleItem[src]

impl AstNode for Name[src]

impl AstNode for NameRef[src]

impl AstNode for NeverType[src]

impl AstNode for Param[src]

impl AstNode for ParamList[src]

impl AstNode for ParenExpr[src]

impl AstNode for Pat[src]

impl AstNode for Path[src]

impl AstNode for PathExpr[src]

impl AstNode for PathSegment[src]

impl AstNode for PathType[src]

impl AstNode for PlaceholderPat[src]

impl AstNode for PrefixExpr[src]

impl AstNode for RecordField[src]

impl AstNode for RecordFieldDef[src]

impl AstNode for RecordFieldDefList[src]

impl AstNode for RecordFieldList[src]

impl AstNode for RecordLit[src]

impl AstNode for Rename[src]

impl AstNode for RetType[src]

impl AstNode for ReturnExpr[src]

impl AstNode for SourceFile[src]

impl AstNode for Stmt[src]

impl AstNode for StructDef[src]

impl AstNode for TupleFieldDef[src]

impl AstNode for TupleFieldDefList[src]

impl AstNode for TypeAliasDef[src]

impl AstNode for TypeRef[src]

impl AstNode for Use[src]

impl AstNode for UseTree[src]

impl AstNode for UseTreeList[src]

impl AstNode for Visibility[src]

impl AstNode for WhileExpr[src]

Loading content...