Skip to main content

AstNode

Trait AstNode 

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

A typed wrapper around a SyntaxNode.

Implementations are generated by the [ast_node!] macro.

Required Methods§

Source

fn can_cast(kind: SyntaxKind) -> bool

Returns true if a node with the given kind can be cast to Self.

Source

fn cast(node: SyntaxNode) -> Option<Self>

Try to cast a generic SyntaxNode into this typed wrapper.

Source

fn syntax(&self) -> &SyntaxNode

Access the underlying SyntaxNode.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl AstNode for AnnotationLine

Source§

impl AstNode for ArgList

Source§

impl AstNode for ArrayLiteral

Source§

impl AstNode for Assignment

Source§

impl AstNode for AuthorWarning

Source§

impl AstNode for AwaitStmt

Source§

impl AstNode for BlockStmt

Source§

impl AstNode for BooleanLit

Source§

impl AstNode for BranchContent

Source§

impl AstNode for BranchlessCondBody

Source§

impl AstNode for BreakStmt

Source§

impl AstNode for CallExpr

Source§

impl AstNode for Choice

Source§

impl AstNode for ChoiceBracketContent

Source§

impl AstNode for ChoiceBullets

Source§

impl AstNode for ChoiceCondition

Source§

impl AstNode for ChoiceInnerContent

Source§

impl AstNode for ChoiceStartContent

Source§

impl AstNode for ConditionalWithExpr

Source§

impl AstNode for ConstDecl

Source§

impl AstNode for ContentLine

Source§

impl AstNode for ContinueStmt

Source§

impl AstNode for DivertNode

Source§

impl AstNode for DivertTargetExpr

Source§

impl AstNode for DivertTargetWithArgs

Source§

impl AstNode for ElseBranch

Source§

impl AstNode for ElseClause

Source§

impl AstNode for EmptyLine

Source§

impl AstNode for Error

Source§

impl AstNode for Escape

Source§

impl AstNode for Expr

Source§

impl AstNode for ExprStmt

Source§

impl AstNode for ExternalDecl

Source§

impl AstNode for FieldAccessExpr

Source§

impl AstNode for FilePath

Source§

impl AstNode for FloatLit

Source§

impl AstNode for FnLiteral

Source§

impl AstNode for ForStmt

Source§

impl AstNode for FunctionCall

Source§

impl AstNode for FunctionParamList

Source§

impl AstNode for Gather

Source§

impl AstNode for GatherDashes

Source§

impl AstNode for GlueNode

Source§

impl AstNode for Identifier

Source§

impl AstNode for IfStmt

Source§

impl AstNode for ImplicitSequence

Source§

impl AstNode for ImportItem

Source§

impl AstNode for ImportList

Source§

impl AstNode for ImportModule

Source§

impl AstNode for ImportStmt

Source§

impl AstNode for IncludeStmt

Source§

impl AstNode for IndexExpr

Source§

impl AstNode for InfixExpr

Source§

impl AstNode for InlineBranchesCond

Source§

impl AstNode for InlineBranchesSeq

Source§

impl AstNode for InlineLogic

Source§

impl AstNode for InnerExpression

Source§

impl AstNode for IntegerLit

Source§

impl AstNode for KnotBody

Source§

impl AstNode for KnotDef

Source§

impl AstNode for KnotHeader

Source§

impl AstNode for KnotParamDecl

Source§

impl AstNode for KnotParams

Source§

impl AstNode for Label

Source§

impl AstNode for ListDecl

Source§

impl AstNode for ListDef

Source§

impl AstNode for ListExpr

Source§

impl AstNode for ListMember

Source§

impl AstNode for ListMemberOff

Source§

impl AstNode for ListMemberOn

Source§

impl AstNode for LogicLine

Source§

impl AstNode for MapEntry

Source§

impl AstNode for MapLiteral

Source§

impl AstNode for MixedContent

Source§

impl AstNode for MultilineBlock

Source§

impl AstNode for MultilineBranchBody

Source§

impl AstNode for MultilineBranchCond

Source§

impl AstNode for MultilineBranchSeq

Source§

impl AstNode for MultilineBranchesCond

Source§

impl AstNode for MultilineBranchesSeq

Source§

impl AstNode for MultilineConditional

Source§

impl AstNode for ParenExpr

Source§

impl AstNode for Path

Source§

impl AstNode for PostfixExpr

Source§

impl AstNode for PrefixExpr

Source§

impl AstNode for RangeExpr

Source§

impl AstNode for RefExpr

Source§

impl AstNode for ReturnStmt

Source§

impl AstNode for SequenceSymbolAnnotation

Source§

impl AstNode for SequenceWithAnnotation

Source§

impl AstNode for SequenceWordAnnotation

Source§

impl AstNode for SimpleDivert

Source§

impl AstNode for SourceFile

Source§

impl AstNode for StitchBody

Source§

impl AstNode for StitchDef

Source§

impl AstNode for StitchHeader

Source§

impl AstNode for StmtBlock

Source§

impl AstNode for StrayClosingBrace

Source§

impl AstNode for StringLit

Source§

impl AstNode for StructDecl

Source§

impl AstNode for StructFieldDecl

Source§

impl AstNode for StructFieldInit

Source§

impl AstNode for StructLiteral

Source§

impl AstNode for Tag

Source§

impl AstNode for TagLine

Source§

impl AstNode for Tags

Source§

impl AstNode for TempDecl

Source§

impl AstNode for Text

Source§

impl AstNode for ThreadStart

Source§

impl AstNode for TunnelCallNode

Source§

impl AstNode for TunnelOnwardsNode

Source§

impl AstNode for TypeAnnotation

Source§

impl AstNode for TypeExpr

Source§

impl AstNode for TypeFn

Source§

impl AstNode for TypeGeneric

Source§

impl AstNode for TypeName

Source§

impl AstNode for VarDecl

Source§

impl AstNode for WhileStmt