Trait AstNode

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

    // Provided methods
    fn span(&self) -> Span { ... }
    fn to_text(&self) -> EcoString { ... }
    fn cast<T: AstNode<'a>>(&self) -> Option<T> { ... }
}

Required Methods§

Source

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

Source

fn to_untyped(&self) -> &'a SyntaxNode

Provided Methods§

Source

fn span(&self) -> Span

Source

fn to_text(&self) -> EcoString

Source

fn cast<T: AstNode<'a>>(&self) -> Option<T>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

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

Source§

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

Source§

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

Source§

impl<'a> AstNode<'a> for ParamKind<'a>

Source§

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

Source§

impl<'a> AstNode<'a> for Statement<'a>

Source§

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

Source§

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

Source§

impl<'a> AstNode<'a> for Assignment<'a>

Source§

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

Source§

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

Source§

impl<'a> AstNode<'a> for BreakStatement<'a>

Source§

impl<'a> AstNode<'a> for Capture<'a>

Source§

impl<'a> AstNode<'a> for CaptureList<'a>

Source§

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

Source§

impl<'a> AstNode<'a> for Condition<'a>

Source§

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

Source§

impl<'a> AstNode<'a> for ConditionalAlternate<'a>

Source§

impl<'a> AstNode<'a> for ConditionalElse<'a>

Source§

impl<'a> AstNode<'a> for Continue<'a>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'a> AstNode<'a> for ImportItem<'a>

Source§

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

Source§

impl<'a> AstNode<'a> for Lambda<'a>

Source§

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

Source§

impl<'a> AstNode<'a> for MapEntry<'a>

Source§

impl<'a> AstNode<'a> for MapLiteral<'a>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<'a> AstNode<'a> for PathAccess<'a>

Source§

impl<'a> AstNode<'a> for Range<'a>

Source§

impl<'a> AstNode<'a> for ReturnStatement<'a>

Source§

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

Source§

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

Source§

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

Source§

impl<'a> AstNode<'a> for Unit<'a>

Source§

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