Skip to main content

AstNode

Trait AstNode 

Source
pub trait AstNode<'a>: Sized {
    // Required methods
    fn from_untyped(node: &'a SyntaxNode) -> Option<Self>;
    fn to_untyped(self) -> &'a SyntaxNode;
    fn placeholder() -> Self;

    // Provided method
    fn span(self) -> Span { ... }
}
Expand description

A typed AST node.

Required Methods§

Source

fn from_untyped(node: &'a SyntaxNode) -> Option<Self>

Convert a node into its typed variant.

Source

fn to_untyped(self) -> &'a SyntaxNode

A reference to the underlying syntax node.

Source

fn placeholder() -> Self

A placeholder for this node type. If the underlying CST has syntax errors or did not come from the parser, the AST is not guaranteed to be valid. But instead of panicking in that case, we return placeholder nodes.

Provided Methods§

Source

fn span(self) -> Span

The source code location.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl<'a> AstNode<'a> for Arg<'a>

Source§

impl<'a> AstNode<'a> for Args<'a>

Source§

impl<'a> AstNode<'a> for Array<'a>

Source§

impl<'a> AstNode<'a> for ArrayItem<'a>

Source§

impl<'a> AstNode<'a> for Auto<'a>

Source§

impl<'a> AstNode<'a> for Binary<'a>

Source§

impl<'a> AstNode<'a> for BlockComment<'a>

Source§

impl<'a> AstNode<'a> for Bool<'a>

Source§

impl<'a> AstNode<'a> for Closure<'a>

Source§

impl<'a> AstNode<'a> for Code<'a>

Source§

impl<'a> AstNode<'a> for CodeBlock<'a>

Source§

impl<'a> AstNode<'a> for Conditional<'a>

Source§

impl<'a> AstNode<'a> for ContentBlock<'a>

Source§

impl<'a> AstNode<'a> for Contextual<'a>

Source§

impl<'a> AstNode<'a> for DestructAssignment<'a>

Source§

impl<'a> AstNode<'a> for Destructuring<'a>

Source§

impl<'a> AstNode<'a> for DestructuringItem<'a>

Source§

impl<'a> AstNode<'a> for Dict<'a>

Source§

impl<'a> AstNode<'a> for DictItem<'a>

Source§

impl<'a> AstNode<'a> for Emph<'a>

Source§

impl<'a> AstNode<'a> for EnumItem<'a>

Source§

impl<'a> AstNode<'a> for Equation<'a>

Source§

impl<'a> AstNode<'a> for Escape<'a>

Source§

impl<'a> AstNode<'a> for Expr<'a>

Source§

impl<'a> AstNode<'a> for FieldAccess<'a>

Source§

impl<'a> AstNode<'a> for Float<'a>

Source§

impl<'a> AstNode<'a> for ForLoop<'a>

Source§

impl<'a> AstNode<'a> for FuncCall<'a>

Source§

impl<'a> AstNode<'a> for FuncReturn<'a>

Source§

impl<'a> AstNode<'a> for Heading<'a>

Source§

impl<'a> AstNode<'a> for Ident<'a>

Source§

impl<'a> AstNode<'a> for ImportItemPath<'a>

Source§

impl<'a> AstNode<'a> for ImportItems<'a>

Source§

impl<'a> AstNode<'a> for Int<'a>

Source§

impl<'a> AstNode<'a> for Keyed<'a>

Source§

impl<'a> AstNode<'a> for Label<'a>

Source§

impl<'a> AstNode<'a> for LetBinding<'a>

Source§

impl<'a> AstNode<'a> for LineComment<'a>

Source§

impl<'a> AstNode<'a> for Linebreak<'a>

Source§

impl<'a> AstNode<'a> for Link<'a>

Source§

impl<'a> AstNode<'a> for ListItem<'a>

Source§

impl<'a> AstNode<'a> for LoopBreak<'a>

Source§

impl<'a> AstNode<'a> for LoopContinue<'a>

Source§

impl<'a> AstNode<'a> for Markup<'a>

Source§

impl<'a> AstNode<'a> for Math<'a>

Source§

impl<'a> AstNode<'a> for MathAccess<'a>

Source§

impl<'a> AstNode<'a> for MathAlignPoint<'a>

Source§

impl<'a> AstNode<'a> for MathArgs<'a>

Source§

impl<'a> AstNode<'a> for MathAttach<'a>

Source§

impl<'a> AstNode<'a> for MathCall<'a>

Source§

impl<'a> AstNode<'a> for MathDelimited<'a>

Source§

impl<'a> AstNode<'a> for MathFieldAccess<'a>

Source§

impl<'a> AstNode<'a> for MathFrac<'a>

Source§

impl<'a> AstNode<'a> for MathIdent<'a>

Source§

impl<'a> AstNode<'a> for MathPrimes<'a>

Source§

impl<'a> AstNode<'a> for MathRoot<'a>

Source§

impl<'a> AstNode<'a> for MathShorthand<'a>

Source§

impl<'a> AstNode<'a> for MathText<'a>

Source§

impl<'a> AstNode<'a> for ModuleImport<'a>

Source§

impl<'a> AstNode<'a> for ModuleInclude<'a>

Source§

impl<'a> AstNode<'a> for Named<'a>

Source§

impl<'a> AstNode<'a> for None<'a>

Source§

impl<'a> AstNode<'a> for Numeric<'a>

Source§

impl<'a> AstNode<'a> for Param<'a>

Source§

impl<'a> AstNode<'a> for Params<'a>

Source§

impl<'a> AstNode<'a> for Parbreak<'a>

Source§

impl<'a> AstNode<'a> for Parenthesized<'a>

Source§

impl<'a> AstNode<'a> for Pattern<'a>

Source§

impl<'a> AstNode<'a> for Raw<'a>

Source§

impl<'a> AstNode<'a> for RawDelim<'a>

Source§

impl<'a> AstNode<'a> for RawLang<'a>

Source§

impl<'a> AstNode<'a> for Ref<'a>

Source§

impl<'a> AstNode<'a> for RenamedImportItem<'a>

Source§

impl<'a> AstNode<'a> for SetRule<'a>

Source§

impl<'a> AstNode<'a> for Shorthand<'a>

Source§

impl<'a> AstNode<'a> for ShowRule<'a>

Source§

impl<'a> AstNode<'a> for SmartQuote<'a>

Source§

impl<'a> AstNode<'a> for Space<'a>

Source§

impl<'a> AstNode<'a> for Spread<'a>

Source§

impl<'a> AstNode<'a> for Str<'a>

Source§

impl<'a> AstNode<'a> for Strong<'a>

Source§

impl<'a> AstNode<'a> for TermItem<'a>

Source§

impl<'a> AstNode<'a> for Text<'a>

Source§

impl<'a> AstNode<'a> for Unary<'a>

Source§

impl<'a> AstNode<'a> for Underscore<'a>

Source§

impl<'a> AstNode<'a> for WhileLoop<'a>