AstNode

Trait AstNode 

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

    // Provided methods
    fn text(&self) -> String { ... }
    fn range(&self) -> TextRange { ... }
}
Expand description

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§

Source

fn can_cast(kind: SyntaxKind) -> bool
where Self: Sized,

Source

fn cast(syntax: SyntaxNode) -> Option<Self>
where Self: Sized,

Source

fn syntax(&self) -> &SyntaxNode

Provided Methods§

Source

fn text(&self) -> String

Source

fn range(&self) -> TextRange

Implementors§

Source§

impl AstNode for ArrowExprParams

Source§

impl AstNode for ClassElement

Source§

impl AstNode for ConstructorParamOrPat

Source§

impl AstNode for Decl

Source§

impl AstNode for DefaultDecl

Source§

impl AstNode for Expr

Source§

impl AstNode for ExprOrBlock

Source§

impl AstNode for ExprOrSpread

Source§

impl AstNode for ForHead

Source§

impl AstNode for ImportClause

Source§

impl AstNode for MethodDefinition

Source§

impl AstNode for ModuleItem

Source§

impl AstNode for ObjectPatternProp

Source§

impl AstNode for ObjectProp

Source§

impl AstNode for Pattern

Source§

impl AstNode for PatternOrExpr

Source§

impl AstNode for PropName

Source§

impl AstNode for Stmt

Source§

impl AstNode for StmtListItem

Source§

impl AstNode for SwitchCase

Source§

impl AstNode for TsEntityName

Source§

impl AstNode for TsModuleRef

Source§

impl AstNode for TsNamespaceBody

Source§

impl AstNode for TsThisOrName

Source§

impl AstNode for TsType

Source§

impl AstNode for TsTypeElement

Source§

impl AstNode for TsTypeQueryExpr

Source§

impl AstNode for ArgList

Source§

impl AstNode for ArrayExpr

Source§

impl AstNode for ArrayPattern

Source§

impl AstNode for ArrowExpr

Source§

impl AstNode for AssignExpr

Source§

impl AstNode for AssignPattern

Source§

impl AstNode for AwaitExpr

Source§

impl AstNode for BinExpr

Source§

impl AstNode for BlockStmt

Source§

impl AstNode for BracketExpr

Source§

impl AstNode for BreakStmt

Source§

impl AstNode for CallExpr

Source§

impl AstNode for CaseClause

Source§

impl AstNode for CatchClause

Source§

impl AstNode for ClassBody

Source§

impl AstNode for ClassDecl

Source§

impl AstNode for ClassExpr

Source§

impl AstNode for ClassProp

Source§

impl AstNode for ComputedPropertyName

Source§

impl AstNode for CondExpr

Source§

impl AstNode for Condition

Source§

impl AstNode for Constructor

Source§

impl AstNode for ConstructorParameters

Source§

impl AstNode for ContinueStmt

Source§

impl AstNode for DebuggerStmt

Source§

impl AstNode for Declarator

Source§

impl AstNode for DefaultClause

Source§

impl AstNode for DoWhileStmt

Source§

impl AstNode for DotExpr

Source§

impl AstNode for EmptyStmt

Source§

impl AstNode for ExportDecl

Source§

impl AstNode for ExportDefaultDecl

Source§

impl AstNode for ExportDefaultExpr

Source§

impl AstNode for ExportNamed

Source§

impl AstNode for ExportWildcard

Source§

impl AstNode for ExprPattern

Source§

impl AstNode for ExprStmt

Source§

impl AstNode for Finalizer

Source§

impl AstNode for FnDecl

Source§

impl AstNode for FnExpr

Source§

impl AstNode for ForInStmt

Source§

impl AstNode for ForOfStmt

Source§

impl AstNode for ForStmt

Source§

impl AstNode for ForStmtInit

Source§

impl AstNode for ForStmtTest

Source§

impl AstNode for ForStmtUpdate

Source§

impl AstNode for Getter

Source§

impl AstNode for GroupingExpr

Source§

impl AstNode for IdentProp

Source§

impl AstNode for IfStmt

Source§

impl AstNode for ImportCall

Source§

impl AstNode for ImportDecl

Source§

impl AstNode for ImportMeta

Source§

impl AstNode for ImportStringSpecifier

Source§

impl AstNode for InitializedProp

Source§

impl AstNode for KeyValuePattern

Source§

impl AstNode for LabelledStmt

Source§

impl AstNode for Literal

Source§

impl AstNode for LiteralProp

Source§

impl AstNode for Method

Source§

impl AstNode for Module

Source§

impl AstNode for Name

Source§

impl AstNode for NameRef

Source§

impl AstNode for NamedImports

Source§

impl AstNode for NewExpr

Source§

impl AstNode for NewTarget

Source§

impl AstNode for ObjectExpr

Source§

impl AstNode for ObjectPattern

Source§

impl AstNode for ParameterList

Source§

impl AstNode for PrivateName

Source§

impl AstNode for PrivateProp

Source§

impl AstNode for PrivatePropAccess

Source§

impl AstNode for RestPattern

Source§

impl AstNode for ReturnStmt

Source§

impl AstNode for Script

Source§

impl AstNode for SequenceExpr

Source§

impl AstNode for Setter

Source§

impl AstNode for SinglePattern

Source§

impl AstNode for Specifier

Source§

impl AstNode for SpreadElement

Source§

impl AstNode for SpreadProp

Source§

impl AstNode for SuperCall

Source§

impl AstNode for SwitchStmt

Source§

impl AstNode for Template

Source§

impl AstNode for TemplateElement

Source§

impl AstNode for ThisExpr

Source§

impl AstNode for ThrowStmt

Source§

impl AstNode for TryStmt

Source§

impl AstNode for TsAccessibility

Source§

impl AstNode for TsAny

Source§

impl AstNode for TsArray

Source§

impl AstNode for TsAssertion

Source§

impl AstNode for TsBigint

Source§

impl AstNode for TsBoolean

Source§

impl AstNode for TsCallSignatureDecl

Source§

impl AstNode for TsConditionalType

Source§

impl AstNode for TsConstAssertion

Source§

impl AstNode for TsConstraint

Source§

impl AstNode for TsConstructSignatureDecl

Source§

impl AstNode for TsConstructorParam

Source§

impl AstNode for TsConstructorType

Source§

impl AstNode for TsDecorator

Source§

impl AstNode for TsDefault

Source§

impl AstNode for TsEnum

Source§

impl AstNode for TsEnumMember

Source§

impl AstNode for TsExportAssignment

Source§

impl AstNode for TsExprWithTypeArgs

Source§

impl AstNode for TsExtends

Source§

impl AstNode for TsExternalModuleRef

Source§

impl AstNode for TsFnType

Source§

impl AstNode for TsImport

Source§

impl AstNode for TsImportEqualsDecl

Source§

impl AstNode for TsIndexSignature

Source§

impl AstNode for TsIndexedArray

Source§

impl AstNode for TsInfer

Source§

impl AstNode for TsInterfaceDecl

Source§

impl AstNode for TsIntersection

Source§

impl AstNode for TsLiteral

Source§

impl AstNode for TsMappedType

Source§

impl AstNode for TsMappedTypeParam

Source§

impl AstNode for TsMappedTypeReadonly

Source§

impl AstNode for TsMethodSignature

Source§

impl AstNode for TsModuleBlock

Source§

impl AstNode for TsModuleDecl

Source§

impl AstNode for TsNamespaceDecl

Source§

impl AstNode for TsNamespaceExportDecl

Source§

impl AstNode for TsNever

Source§

impl AstNode for TsNonNull

Source§

impl AstNode for TsNull

Source§

impl AstNode for TsNumber

Source§

impl AstNode for TsObject

Source§

impl AstNode for TsObjectType

Source§

impl AstNode for TsParen

Source§

impl AstNode for TsPredicate

Source§

impl AstNode for TsPropertySignature

Source§

impl AstNode for TsQualifiedPath

Source§

impl AstNode for TsString

Source§

impl AstNode for TsSymbol

Source§

impl AstNode for TsTemplate

Source§

impl AstNode for TsTemplateElement

Source§

impl AstNode for TsThis

Source§

impl AstNode for TsTuple

Source§

impl AstNode for TsTupleElement

Source§

impl AstNode for TsTypeAliasDecl

Source§

impl AstNode for TsTypeArgs

Source§

impl AstNode for TsTypeName

Source§

impl AstNode for TsTypeOperator

Source§

impl AstNode for TsTypeParam

Source§

impl AstNode for TsTypeParams

Source§

impl AstNode for TsTypeQuery

Source§

impl AstNode for TsTypeRef

Source§

impl AstNode for TsUndefined

Source§

impl AstNode for TsUnion

Source§

impl AstNode for TsUnknown

Source§

impl AstNode for TsVoid

Source§

impl AstNode for UnaryExpr

Source§

impl AstNode for VarDecl

Source§

impl AstNode for WhileStmt

Source§

impl AstNode for WildcardImport

Source§

impl AstNode for WithStmt

Source§

impl AstNode for YieldExpr