Trait oq3_syntax::ast::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 clone_for_update(&self) -> Self
       where Self: Sized { ... }
    fn clone_subtree(&self) -> Self
       where Self: Sized { ... }
}
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 clone_for_update(&self) -> Self
where Self: Sized,

source

fn clone_subtree(&self) -> Self
where Self: Sized,

Implementations on Foreign Types§

source§

impl<L, R> AstNode for Either<L, R>
where L: AstNode, R: AstNode,

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

Implementors§

source§

impl AstNode for Expr

source§

impl AstNode for GateOperand

source§

impl AstNode for IndexKind

source§

impl AstNode for Modifier

source§

impl AstNode for Stmt

source§

impl AstNode for AliasDeclarationStatement

source§

impl AstNode for AnnotationStatement

source§

impl AstNode for AnyHasArgList

source§

impl AstNode for AnyHasName

source§

impl AstNode for ArgList

source§

impl AstNode for ArrayExpr

source§

impl AstNode for ArrayLiteral

source§

impl AstNode for ArrayType

source§

impl AstNode for AssignmentStmt

source§

impl AstNode for Barrier

source§

impl AstNode for BinExpr

source§

impl AstNode for BlockExpr

source§

impl AstNode for BoxExpr

source§

impl AstNode for BreakStmt

source§

impl AstNode for Cal

source§

impl AstNode for CallExpr

source§

impl AstNode for CaseExpr

source§

impl AstNode for CastExpression

source§

impl AstNode for ClassicalDeclarationStatement

source§

impl AstNode for ContinueStmt

source§

impl AstNode for CtrlModifier

source§

impl AstNode for Def

source§

impl AstNode for DefCal

source§

impl AstNode for DefCalGrammar

source§

impl AstNode for DelayStmt

source§

impl AstNode for Designator

source§

impl AstNode for EndStmt

source§

impl AstNode for ExprStmt

source§

impl AstNode for ExpressionList

source§

impl AstNode for FilePath

source§

impl AstNode for ForIterable

source§

impl AstNode for ForStmt

source§

impl AstNode for GPhaseCallExpr

source§

impl AstNode for Gate

source§

impl AstNode for GateCallExpr

source§

impl AstNode for HardwareQubit

source§

impl AstNode for IODeclarationStatement

source§

impl AstNode for Identifier

source§

impl AstNode for IfStmt

source§

impl AstNode for Include

source§

impl AstNode for IndexExpr

source§

impl AstNode for IndexOperator

source§

impl AstNode for IndexedIdentifier

source§

impl AstNode for InvModifier

source§

impl AstNode for LetStmt

source§

impl AstNode for Literal

source§

impl AstNode for Measure

source§

impl AstNode for MeasureExpression

source§

impl AstNode for ModifiedGateCallExpr

source§

impl AstNode for Name

source§

impl AstNode for NegCtrlModifier

source§

impl AstNode for OldStyleDeclarationStatement

source§

impl AstNode for Param

source§

impl AstNode for ParamList

source§

impl AstNode for ParenExpr

source§

impl AstNode for PowModifier

source§

impl AstNode for PragmaStatement

source§

impl AstNode for PrefixExpr

source§

impl AstNode for QuantumDeclarationStatement

source§

impl AstNode for QubitList

source§

impl AstNode for QubitType

source§

impl AstNode for RangeExpr

source§

impl AstNode for Reset

source§

impl AstNode for ReturnExpr

source§

impl AstNode for ReturnSignature

source§

impl AstNode for ScalarType

source§

impl AstNode for SetExpression

source§

impl AstNode for SourceFile

source§

impl AstNode for SwitchCaseStmt

source§

impl AstNode for TimingLiteral

source§

impl AstNode for TypedParam

source§

impl AstNode for TypedParamList

source§

impl AstNode for Version

source§

impl AstNode for VersionString

source§

impl AstNode for WhileStmt