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 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,

Implementors§

Source§

impl AstNode for AlterColumnOption

Source§

impl AstNode for AlterDomainAction

Source§

impl AstNode for AlterTableAction

Source§

impl AstNode for Constraint

Source§

impl AstNode for Expr

Source§

impl AstNode for FuncOption

Source§

impl AstNode for JoinType

Source§

impl AstNode for JsonBehavior

Source§

impl AstNode for MatchType

Source§

impl AstNode for OnCommitAction

Source§

impl AstNode for ParamMode

Source§

impl AstNode for PartitionType

Source§

impl AstNode for RefAction

Source§

impl AstNode for Stmt

Source§

impl AstNode for TableArg

Source§

impl AstNode for TableConstraint

Source§

impl AstNode for Timezone

Source§

impl AstNode for TransactionMode

Source§

impl AstNode for Type

Source§

impl AstNode for WithQuery

Source§

impl AstNode for AddColumn

Source§

impl AstNode for AddConstraint

Source§

impl AstNode for AddGenerated

Source§

impl AstNode for Aggregate

Source§

impl AstNode for Alias

Source§

impl AstNode for AlterAggregate

Source§

impl AstNode for AlterCollation

Source§

impl AstNode for AlterColumn

Source§

impl AstNode for AlterConstraint

Source§

impl AstNode for AlterConversion

Source§

impl AstNode for AlterDatabase

Source§

impl AstNode for AlterDefaultPrivileges

Source§

impl AstNode for AlterDomain

Source§

impl AstNode for AlterEventTrigger

Source§

impl AstNode for AlterExtension

Source§

impl AstNode for AlterForeignDataWrapper

Source§

impl AstNode for AlterForeignTable

Source§

impl AstNode for AlterFunction

Source§

impl AstNode for AlterGroup

Source§

impl AstNode for AlterIndex

Source§

impl AstNode for AlterLanguage

Source§

impl AstNode for AlterLargeObject

Source§

impl AstNode for AlterMaterializedView

Source§

impl AstNode for AlterOperator

Source§

impl AstNode for AlterOperatorClass

Source§

impl AstNode for AlterOperatorFamily

Source§

impl AstNode for AlterPolicy

Source§

impl AstNode for AlterProcedure

Source§

impl AstNode for AlterPublication

Source§

impl AstNode for AlterRole

Source§

impl AstNode for AlterRoutine

Source§

impl AstNode for AlterRule

Source§

impl AstNode for AlterSchema

Source§

impl AstNode for AlterSequence

Source§

impl AstNode for AlterServer

Source§

impl AstNode for AlterStatistics

Source§

impl AstNode for AlterSubscription

Source§

impl AstNode for AlterSystem

Source§

impl AstNode for AlterTable

Source§

impl AstNode for AlterTablespace

Source§

impl AstNode for AlterTextSearchConfiguration

Source§

impl AstNode for AlterTextSearchDictionary

Source§

impl AstNode for AlterTextSearchParser

Source§

impl AstNode for AlterTextSearchTemplate

Source§

impl AstNode for AlterTrigger

Source§

impl AstNode for AlterType

Source§

impl AstNode for AlterUser

Source§

impl AstNode for AlterUserMapping

Source§

impl AstNode for AlterView

Source§

impl AstNode for Analyze

Source§

impl AstNode for Arg

Source§

impl AstNode for ArgList

Source§

impl AstNode for ArrayExpr

Source§

impl AstNode for ArrayType

Source§

impl AstNode for AsFuncOption

Source§

impl AstNode for AtTimeZone

Source§

impl AstNode for AttachPartition

Source§

impl AstNode for AttributeList

Source§

impl AstNode for AttributeOption

Source§

impl AstNode for Begin

Source§

impl AstNode for BeginFuncOption

Source§

impl AstNode for BetweenExpr

Source§

impl AstNode for BinExpr

Source§

impl AstNode for BitType

Source§

impl AstNode for Call

Source§

impl AstNode for CallExpr

Source§

impl AstNode for Cascade

Source§

impl AstNode for CaseExpr

Source§

impl AstNode for CastExpr

Source§

impl AstNode for CharType

Source§

impl AstNode for CheckConstraint

Source§

impl AstNode for Checkpoint

Source§

impl AstNode for Close

Source§

impl AstNode for Cluster

Source§

impl AstNode for ClusterOn

Source§

impl AstNode for Collate

Source§

impl AstNode for ColonColon

Source§

impl AstNode for ColonEq

Source§

impl AstNode for Column

Source§

impl AstNode for ColumnList

Source§

impl AstNode for CommentOn

Source§

impl AstNode for Commit

Source§

impl AstNode for CompoundSelect

Source§

impl AstNode for CompressionMethod

Source§

impl AstNode for ConstraintExclusions

Source§

impl AstNode for ConstraintIncludeClause

Source§

impl AstNode for ConstraintIndexMethod

Source§

impl AstNode for ConstraintIndexTablespace

Source§

impl AstNode for ConstraintWhereClause

Source§

impl AstNode for Copy

Source§

impl AstNode for CostFuncOption

Source§

impl AstNode for CreateAccessMethod

Source§

impl AstNode for CreateAggregate

Source§

impl AstNode for CreateCast

Source§

impl AstNode for CreateCollation

Source§

impl AstNode for CreateConversion

Source§

impl AstNode for CreateDatabase

Source§

impl AstNode for CreateDomain

Source§

impl AstNode for CreateEventTrigger

Source§

impl AstNode for CreateExtension

Source§

impl AstNode for CreateForeignDataWrapper

Source§

impl AstNode for CreateForeignTable

Source§

impl AstNode for CreateFunction

Source§

impl AstNode for CreateGroup

Source§

impl AstNode for CreateIndex

Source§

impl AstNode for CreateLanguage

Source§

impl AstNode for CreateMaterializedView

Source§

impl AstNode for CreateOperator

Source§

impl AstNode for CreateOperatorClass

Source§

impl AstNode for CreateOperatorFamily

Source§

impl AstNode for CreatePolicy

Source§

impl AstNode for CreateProcedure

Source§

impl AstNode for CreatePublication

Source§

impl AstNode for CreateRole

Source§

impl AstNode for CreateRule

Source§

impl AstNode for CreateSchema

Source§

impl AstNode for CreateSequence

Source§

impl AstNode for CreateServer

Source§

impl AstNode for CreateStatistics

Source§

impl AstNode for CreateSubscription

Source§

impl AstNode for CreateTable

Source§

impl AstNode for CreateTableAs

Source§

impl AstNode for CreateTablespace

Source§

impl AstNode for CreateTextSearchConfiguration

Source§

impl AstNode for CreateTextSearchDictionary

Source§

impl AstNode for CreateTextSearchParser

Source§

impl AstNode for CreateTextSearchTemplate

Source§

impl AstNode for CreateTransform

Source§

impl AstNode for CreateTrigger

Source§

impl AstNode for CreateType

Source§

impl AstNode for CreateUser

Source§

impl AstNode for CreateUserMapping

Source§

impl AstNode for CreateView

Source§

impl AstNode for CustomOp

Source§

impl AstNode for Deallocate

Source§

impl AstNode for Declare

Source§

impl AstNode for DefaultConstraint

Source§

impl AstNode for Deferrable

Source§

impl AstNode for DeferrableConstraintOption

Source§

impl AstNode for Delete

Source§

impl AstNode for DeleteRows

Source§

impl AstNode for DetachPartition

Source§

impl AstNode for DisableRls

Source§

impl AstNode for DisableRule

Source§

impl AstNode for DisableTrigger

Source§

impl AstNode for Discard

Source§

impl AstNode for DistinctClause

Source§

impl AstNode for Do

Source§

impl AstNode for DoubleType

Source§

impl AstNode for Drop

Source§

impl AstNode for DropAccessMethod

Source§

impl AstNode for DropAggregate

Source§

impl AstNode for DropCast

Source§

impl AstNode for DropCollation

Source§

impl AstNode for DropColumn

Source§

impl AstNode for DropConstraint

Source§

impl AstNode for DropConversion

Source§

impl AstNode for DropDatabase

Source§

impl AstNode for DropDefault

Source§

impl AstNode for DropDomain

Source§

impl AstNode for DropEventTrigger

Source§

impl AstNode for DropExpression

Source§

impl AstNode for DropExtension

Source§

impl AstNode for DropForeignDataWrapper

Source§

impl AstNode for DropForeignTable

Source§

impl AstNode for DropFunction

Source§

impl AstNode for DropGroup

Source§

impl AstNode for DropIdentity

Source§

impl AstNode for DropIndex

Source§

impl AstNode for DropLanguage

Source§

impl AstNode for DropMaterializedView

Source§

impl AstNode for DropNotNull

Source§

impl AstNode for DropOperator

Source§

impl AstNode for DropOperatorClass

Source§

impl AstNode for DropOperatorFamily

Source§

impl AstNode for DropOwned

Source§

impl AstNode for DropPolicy

Source§

impl AstNode for DropProcedure

Source§

impl AstNode for DropPublication

Source§

impl AstNode for DropRole

Source§

impl AstNode for DropRoutine

Source§

impl AstNode for DropRule

Source§

impl AstNode for DropSchema

Source§

impl AstNode for DropSequence

Source§

impl AstNode for DropServer

Source§

impl AstNode for DropStatistics

Source§

impl AstNode for DropSubscription

Source§

impl AstNode for DropTable

Source§

impl AstNode for DropTablespace

Source§

impl AstNode for DropTextSearchConfig

Source§

impl AstNode for DropTextSearchDict

Source§

impl AstNode for DropTextSearchParser

Source§

impl AstNode for DropTextSearchTemplate

Source§

impl AstNode for DropTransform

Source§

impl AstNode for DropTrigger

Source§

impl AstNode for DropType

Source§

impl AstNode for DropUser

Source§

impl AstNode for DropUserMapping

Source§

impl AstNode for DropView

Source§

impl AstNode for EnableAlwaysRule

Source§

impl AstNode for EnableAlwaysTrigger

Source§

impl AstNode for EnableReplicaRule

Source§

impl AstNode for EnableReplicaTrigger

Source§

impl AstNode for EnableRls

Source§

impl AstNode for EnableRule

Source§

impl AstNode for EnableTrigger

Source§

impl AstNode for Enforced

Source§

impl AstNode for ExcludeConstraint

Source§

impl AstNode for Execute

Source§

impl AstNode for Explain

Source§

impl AstNode for FatArrow

Source§

impl AstNode for Fetch

Source§

impl AstNode for FetchClause

Source§

impl AstNode for FieldExpr

Source§

impl AstNode for FilterClause

Source§

impl AstNode for ForceRls

Source§

impl AstNode for ForeignKeyConstraint

Source§

impl AstNode for FrameClause

Source§

impl AstNode for FromClause

Source§

impl AstNode for FromItem

Source§

impl AstNode for FuncOptionList

Source§

impl AstNode for GeneratedConstraint

Source§

impl AstNode for Grant

Source§

impl AstNode for GroupByClause

Source§

impl AstNode for GroupingCube

Source§

impl AstNode for GroupingExpr

Source§

impl AstNode for GroupingRollup

Source§

impl AstNode for GroupingSets

Source§

impl AstNode for Gteq

Source§

impl AstNode for HavingClause

Source§

impl AstNode for IfExists

Source§

impl AstNode for IfNotExists

Source§

impl AstNode for ImportForeignSchema

Source§

impl AstNode for IndexExpr

Source§

impl AstNode for IndexParams

Source§

impl AstNode for Inherit

Source§

impl AstNode for Inherits

Source§

impl AstNode for InitiallyDeferredConstraintOption

Source§

impl AstNode for InitiallyImmediateConstraintOption

Source§

impl AstNode for Insert

Source§

impl AstNode for IntervalType

Source§

impl AstNode for IntoClause

Source§

impl AstNode for IsDistinctFrom

Source§

impl AstNode for IsJson

Source§

impl AstNode for IsJsonArray

Source§

impl AstNode for IsJsonObject

Source§

impl AstNode for IsJsonScalar

Source§

impl AstNode for IsJsonValue

Source§

impl AstNode for IsNormalized

Source§

impl AstNode for IsNot

Source§

impl AstNode for IsNotDistinctFrom

Source§

impl AstNode for IsNotJson

Source§

impl AstNode for IsNotJsonArray

Source§

impl AstNode for IsNotJsonObject

Source§

impl AstNode for IsNotJsonScalar

Source§

impl AstNode for IsNotJsonValue

Source§

impl AstNode for IsNotNormalized

Source§

impl AstNode for Join

Source§

impl AstNode for JoinCross

Source§

impl AstNode for JoinExpr

Source§

impl AstNode for JoinFull

Source§

impl AstNode for JoinInner

Source§

impl AstNode for JoinLeft

Source§

impl AstNode for JoinRight

Source§

impl AstNode for JoinUsingClause

Source§

impl AstNode for JsonBehaviorDefault

Source§

impl AstNode for JsonBehaviorEmptyArray

Source§

impl AstNode for JsonBehaviorEmptyObject

Source§

impl AstNode for JsonBehaviorError

Source§

impl AstNode for JsonBehaviorFalse

Source§

impl AstNode for JsonBehaviorNull

Source§

impl AstNode for JsonBehaviorTrue

Source§

impl AstNode for JsonBehaviorUnknown

Source§

impl AstNode for JsonFormatClause

Source§

impl AstNode for JsonKeyValue

Source§

impl AstNode for JsonKeysUniqueClause

Source§

impl AstNode for JsonNullClause

Source§

impl AstNode for JsonOnEmptyClause

Source§

impl AstNode for JsonOnErrorClause

Source§

impl AstNode for JsonPassingArg

Source§

impl AstNode for JsonPassingClause

Source§

impl AstNode for JsonQuotesClause

Source§

impl AstNode for JsonReturningClause

Source§

impl AstNode for JsonTableColumn

Source§

impl AstNode for JsonTableColumnList

Source§

impl AstNode for JsonValueExpr

Source§

impl AstNode for JsonWrapperBehaviorClause

Source§

impl AstNode for LanguageFuncOption

Source§

impl AstNode for LeakproofFuncOption

Source§

impl AstNode for LikeClause

Source§

impl AstNode for LikeOption

Source§

impl AstNode for LimitClause

Source§

impl AstNode for Listen

Source§

impl AstNode for Literal

Source§

impl AstNode for Load

Source§

impl AstNode for Lock

Source§

impl AstNode for LockingClause

Source§

impl AstNode for Lteq

Source§

impl AstNode for MatchFull

Source§

impl AstNode for MatchPartial

Source§

impl AstNode for MatchSimple

Source§

impl AstNode for Materialized

Source§

impl AstNode for Merge

Source§

impl AstNode for Move

Source§

impl AstNode for Name

Source§

impl AstNode for NameRef

Source§

impl AstNode for NamedArg

Source§

impl AstNode for Neq

Source§

impl AstNode for Neqb

Source§

impl AstNode for NoAction

Source§

impl AstNode for NoForceRls

Source§

impl AstNode for NoInherit

Source§

impl AstNode for NonStandardParam

Source§

impl AstNode for NotDeferrable

Source§

impl AstNode for NotDeferrableConstraintOption

Source§

impl AstNode for NotEnforced

Source§

impl AstNode for NotIlike

Source§

impl AstNode for NotIn

Source§

impl AstNode for NotLike

Source§

impl AstNode for NotMaterialized

Source§

impl AstNode for NotNullConstraint

Source§

impl AstNode for NotOf

Source§

impl AstNode for NotSimilarTo

Source§

impl AstNode for NotValid

Source§

impl AstNode for Notify

Source§

impl AstNode for NullConstraint

Source§

impl AstNode for NullsDistinct

Source§

impl AstNode for NullsFirst

Source§

impl AstNode for NullsLast

Source§

impl AstNode for NullsNotDistinct

Source§

impl AstNode for OfType

Source§

impl AstNode for OffsetClause

Source§

impl AstNode for OnClause

Source§

impl AstNode for OnCommit

Source§

impl AstNode for OnDeleteAction

Source§

impl AstNode for OnUpdateAction

Source§

impl AstNode for Op

Source§

impl AstNode for OperatorCall

Source§

impl AstNode for OptionsList

Source§

impl AstNode for OrReplace

Source§

impl AstNode for OrderByClause

Source§

impl AstNode for OverClause

Source§

impl AstNode for OwnerTo

Source§

impl AstNode for ParallelFuncOption

Source§

impl AstNode for Param

Source§

impl AstNode for ParamDefault

Source§

impl AstNode for ParamIn

Source§

impl AstNode for ParamInOut

Source§

impl AstNode for ParamList

Source§

impl AstNode for ParamOut

Source§

impl AstNode for ParamVariadic

Source§

impl AstNode for ParenExpr

Source§

impl AstNode for ParenSelect

Source§

impl AstNode for PartitionBy

Source§

impl AstNode for PartitionDefault

Source§

impl AstNode for PartitionForValuesFrom

Source§

impl AstNode for PartitionForValuesIn

Source§

impl AstNode for PartitionForValuesWith

Source§

impl AstNode for PartitionItem

Source§

impl AstNode for PartitionOf

Source§

impl AstNode for Path

Source§

impl AstNode for PathSegment

Source§

impl AstNode for PathType

Source§

impl AstNode for PercentType

Source§

impl AstNode for PercentTypeClause

Source§

impl AstNode for PostfixExpr

Source§

impl AstNode for PrefixExpr

Source§

impl AstNode for Prepare

Source§

impl AstNode for PrepareTransaction

Source§

impl AstNode for PreserveRows

Source§

impl AstNode for PrimaryKeyConstraint

Source§

impl AstNode for ReadCommitted

Source§

impl AstNode for ReadOnly

Source§

impl AstNode for ReadUncommitted

Source§

impl AstNode for ReadWrite

Source§

impl AstNode for Reassign

Source§

impl AstNode for ReferencesConstraint

Source§

impl AstNode for Refresh

Source§

impl AstNode for Reindex

Source§

impl AstNode for RelationName

Source§

impl AstNode for ReleaseSavepoint

Source§

impl AstNode for RenameColumn

Source§

impl AstNode for RenameConstraint

Source§

impl AstNode for RenameTable

Source§

impl AstNode for RenameTo

Source§

impl AstNode for RepeatableRead

Source§

impl AstNode for ReplicaIdentity

Source§

impl AstNode for Reset

Source§

impl AstNode for ResetFuncOption

Source§

impl AstNode for ResetOptions

Source§

impl AstNode for ResetStorageParams

Source§

impl AstNode for Restart

Source§

impl AstNode for Restrict

Source§

impl AstNode for RetType

Source§

impl AstNode for ReturnFuncOption

Source§

impl AstNode for ReturningClause

Source§

impl AstNode for Revoke

Source§

impl AstNode for Role

Source§

impl AstNode for Rollback

Source§

impl AstNode for RowsFuncOption

Source§

impl AstNode for Savepoint

Source§

impl AstNode for SecurityFuncOption

Source§

impl AstNode for SecurityLabel

Source§

impl AstNode for Select

Source§

impl AstNode for SelectClause

Source§

impl AstNode for SelectInto

Source§

impl AstNode for SequenceOptionList

Source§

impl AstNode for Serializable

Source§

impl AstNode for Set

Source§

impl AstNode for SetAccessMethod

Source§

impl AstNode for SetCompression

Source§

impl AstNode for SetConstraints

Source§

impl AstNode for SetDefault

Source§

impl AstNode for SetDefaultColumns

Source§

impl AstNode for SetExpression

Source§

impl AstNode for SetFuncOption

Source§

impl AstNode for SetGenerated

Source§

impl AstNode for SetGeneratedOptions

Source§

impl AstNode for SetLogged

Source§

impl AstNode for SetNotNull

Source§

impl AstNode for SetNullColumns

Source§

impl AstNode for SetOptions

Source§

impl AstNode for SetOptionsList

Source§

impl AstNode for SetRole

Source§

impl AstNode for SetSchema

Source§

impl AstNode for SetSequenceOption

Source§

impl AstNode for SetSessionAuth

Source§

impl AstNode for SetStatistics

Source§

impl AstNode for SetStorage

Source§

impl AstNode for SetStorageParams

Source§

impl AstNode for SetTablespace

Source§

impl AstNode for SetTransaction

Source§

impl AstNode for SetType

Source§

impl AstNode for SetUnlogged

Source§

impl AstNode for SetWithoutCluster

Source§

impl AstNode for SetWithoutOids

Source§

impl AstNode for Show

Source§

impl AstNode for SimilarTo

Source§

impl AstNode for SortAsc

Source§

impl AstNode for SortBy

Source§

impl AstNode for SortDesc

Source§

impl AstNode for SortUsing

Source§

impl AstNode for SourceFile

Source§

impl AstNode for Storage

Source§

impl AstNode for StrictFuncOption

Source§

impl AstNode for SupportFuncOption

Source§

impl AstNode for Table

Source§

impl AstNode for TableArgList

Source§

impl AstNode for TableList

Source§

impl AstNode for Tablespace

Source§

impl AstNode for Target

Source§

impl AstNode for TargetList

Source§

impl AstNode for TimeType

Source§

impl AstNode for TransactionModeList

Source§

impl AstNode for TransformFuncOption

Source§

impl AstNode for Truncate

Source§

impl AstNode for TupleExpr

Source§

impl AstNode for UnicodeNormalForm

Source§

impl AstNode for UniqueConstraint

Source§

impl AstNode for Unlisten

Source§

impl AstNode for Update

Source§

impl AstNode for UsingClause

Source§

impl AstNode for UsingIndex

Source§

impl AstNode for UsingMethod

Source§

impl AstNode for Vacuum

Source§

impl AstNode for ValidateConstraint

Source§

impl AstNode for Values

Source§

impl AstNode for VolatilityFuncOption

Source§

impl AstNode for WhenClause

Source§

impl AstNode for WhereClause

Source§

impl AstNode for WindowClause

Source§

impl AstNode for WindowDef

Source§

impl AstNode for WindowFuncOption

Source§

impl AstNode for WindowSpec

Source§

impl AstNode for WithClause

Source§

impl AstNode for WithData

Source§

impl AstNode for WithNoData

Source§

impl AstNode for WithOptions

Source§

impl AstNode for WithParams

Source§

impl AstNode for WithTable

Source§

impl AstNode for WithTimezone

Source§

impl AstNode for WithinClause

Source§

impl AstNode for WithoutOids

Source§

impl AstNode for WithoutTimezone

Source§

impl AstNode for XmlColumnOption

Source§

impl AstNode for XmlColumnOptionList

Source§

impl AstNode for XmlTableColumn

Source§

impl AstNode for XmlTableColumnList