AstNode

Trait AstNode 

Source
pub trait AstNode {
    type Language: Language;

    // Required methods
    fn can_cast(kind: <Self::Language as Language>::Kind) -> bool
       where Self: Sized;
    fn cast(node: SyntaxNode<Self::Language>) -> Option<Self>
       where Self: Sized;
    fn syntax(&self) -> &SyntaxNode<Self::Language>;

    // 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 Associated Types§

Required Methods§

Source

fn can_cast(kind: <Self::Language as Language>::Kind) -> bool
where Self: Sized,

Source

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

Source

fn syntax(&self) -> &SyntaxNode<Self::Language>

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 Body

Source§

impl AstNode for Error

Source§

impl AstNode for HtmlAttribute

Source§

impl AstNode for HtmlAttributeList

Source§

impl AstNode for HtmlComment

Source§

impl AstNode for HtmlDoctype

Source§

impl AstNode for HtmlEndingTag

Source§

impl AstNode for HtmlRawText

Source§

impl AstNode for HtmlStartingTag

Source§

impl AstNode for HtmlString

Source§

impl AstNode for HtmlStringInner

Source§

impl AstNode for HtmlTag

Source§

impl AstNode for HtmlText

Source§

impl AstNode for LudtwigDirectiveFileIgnore

Source§

impl AstNode for LudtwigDirectiveIgnore

Source§

impl AstNode for LudtwigDirectiveRuleList

Source§

impl AstNode for Root

Source§

impl AstNode for ShopwareIcon

Source§

impl AstNode for ShopwareIconStyle

Source§

impl AstNode for ShopwareReturn

Source§

impl AstNode for ShopwareSilentFeatureCall

Source§

impl AstNode for ShopwareSilentFeatureCallEndingBlock

Source§

impl AstNode for ShopwareSilentFeatureCallStartingBlock

Source§

impl AstNode for ShopwareThumbnails

Source§

impl AstNode for ShopwareThumbnailsWith

Source§

impl AstNode for ShopwareTwigExtends

Source§

impl AstNode for ShopwareTwigInclude

Source§

impl AstNode for TwigAccessor

Source§

impl AstNode for TwigApply

Source§

impl AstNode for TwigApplyEndingBlock

Source§

impl AstNode for TwigApplyStartingBlock

Source§

impl AstNode for TwigArguments

Source§

impl AstNode for TwigArrowFunction

Source§

impl AstNode for TwigAssignment

Source§

impl AstNode for TwigAutoescape

Source§

impl AstNode for TwigAutoescapeEndingBlock

Source§

impl AstNode for TwigAutoescapeStartingBlock

Source§

impl AstNode for TwigBinaryExpression

Source§

impl AstNode for TwigBlock

Source§

impl AstNode for TwigCache

Source§

impl AstNode for TwigCacheEndingBlock

Source§

impl AstNode for TwigCacheStartingBlock

Source§

impl AstNode for TwigCacheTTL

Source§

impl AstNode for TwigCacheTags

Source§

impl AstNode for TwigComment

Source§

impl AstNode for TwigComponent

Source§

impl AstNode for TwigComponentEndingBlock

Source§

impl AstNode for TwigComponentStartingBlock

Source§

impl AstNode for TwigConditionalExpression

Source§

impl AstNode for TwigDeprecated

Source§

impl AstNode for TwigDo

Source§

impl AstNode for TwigElseBlock

Source§

impl AstNode for TwigElseIfBlock

Source§

impl AstNode for TwigEmbed

Source§

impl AstNode for TwigEmbedEndingBlock

Source§

impl AstNode for TwigEmbedStartingBlock

Source§

impl AstNode for TwigEndForBlock

Source§

impl AstNode for TwigEndIfBlock

Source§

impl AstNode for TwigEndSetBlock

Source§

impl AstNode for TwigEndingBlock

Source§

impl AstNode for TwigExpression

Source§

impl AstNode for TwigExtends

Source§

impl AstNode for TwigFilter

Source§

impl AstNode for TwigFlush

Source§

impl AstNode for TwigFor

Source§

impl AstNode for TwigForBlock

Source§

impl AstNode for TwigForElseBlock

Source§

impl AstNode for TwigFrom

Source§

impl AstNode for TwigFunctionCall

Source§

impl AstNode for TwigIf

Source§

impl AstNode for TwigIfBlock

Source§

impl AstNode for TwigImport

Source§

impl AstNode for TwigInclude

Source§

impl AstNode for TwigIncludeWith

Source§

impl AstNode for TwigIndex

Source§

impl AstNode for TwigIndexLookup

Source§

impl AstNode for TwigIndexRange

Source§

impl AstNode for TwigLiteralArray

Source§

impl AstNode for TwigLiteralArrayInner

Source§

impl AstNode for TwigLiteralBoolean

Source§

impl AstNode for TwigLiteralHash

Source§

impl AstNode for TwigLiteralHashItems

Source§

impl AstNode for TwigLiteralHashKey

Source§

impl AstNode for TwigLiteralHashPair

Source§

impl AstNode for TwigLiteralHashValue

Source§

impl AstNode for TwigLiteralName

Source§

impl AstNode for TwigLiteralNull

Source§

impl AstNode for TwigLiteralNumber

Source§

impl AstNode for TwigLiteralString

Source§

impl AstNode for TwigLiteralStringInner

Source§

impl AstNode for TwigLiteralStringInterpolation

Source§

impl AstNode for TwigMacro

Source§

impl AstNode for TwigMacroEndingBlock

Source§

impl AstNode for TwigMacroStartingBlock

Source§

impl AstNode for TwigNamedArgument

Source§

impl AstNode for TwigOperand

Source§

impl AstNode for TwigOverride

Source§

impl AstNode for TwigParenthesesExpression

Source§

impl AstNode for TwigPropDeclaration

Source§

impl AstNode for TwigProps

Source§

impl AstNode for TwigSandbox

Source§

impl AstNode for TwigSandboxEndingBlock

Source§

impl AstNode for TwigSandboxStartingBlock

Source§

impl AstNode for TwigSet

Source§

impl AstNode for TwigSetBlock

Source§

impl AstNode for TwigStartingBlock

Source§

impl AstNode for TwigTrans

Source§

impl AstNode for TwigTransEndingBlock

Source§

impl AstNode for TwigTransStartingBlock

Source§

impl AstNode for TwigUnaryExpression

Source§

impl AstNode for TwigUse

Source§

impl AstNode for TwigVar

Source§

impl AstNode for TwigVerbatim

Source§

impl AstNode for TwigVerbatimEndingBlock

Source§

impl AstNode for TwigVerbatimStartingBlock

Source§

impl AstNode for TwigWith

Source§

impl AstNode for TwigWithEndingBlock

Source§

impl AstNode for TwigWithStartingBlock