[][src]Trait ra_ap_syntax::ast::AstNode

pub trait AstNode {
    fn can_cast(kind: SyntaxKind) -> bool
    where
        Self: Sized
;
fn cast(syntax: SyntaxNode) -> Option<Self>
    where
        Self: Sized
;
fn syntax(&self) -> &SyntaxNode; }

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

fn can_cast(kind: SyntaxKind) -> bool where
    Self: Sized

fn cast(syntax: SyntaxNode) -> Option<Self> where
    Self: Sized

fn syntax(&self) -> &SyntaxNode

Loading content...

Implementors

impl AstNode for AdtDef[src]

impl AstNode for AssocItem[src]

impl AstNode for Expr[src]

impl AstNode for ExternItem[src]

impl AstNode for FieldList[src]

impl AstNode for GenericArg[src]

impl AstNode for GenericParam[src]

impl AstNode for Item[src]

impl AstNode for Pat[src]

impl AstNode for Stmt[src]

impl AstNode for Type[src]

impl AstNode for Abi[src]

impl AstNode for ArgList[src]

impl AstNode for ArrayExpr[src]

impl AstNode for ArrayType[src]

impl AstNode for AssocItemList[src]

impl AstNode for AssocTypeArg[src]

impl AstNode for Attr[src]

impl AstNode for AwaitExpr[src]

impl AstNode for BinExpr[src]

impl AstNode for BlockExpr[src]

impl AstNode for BoxExpr[src]

impl AstNode for BoxPat[src]

impl AstNode for BreakExpr[src]

impl AstNode for CallExpr[src]

impl AstNode for CastExpr[src]

impl AstNode for ClosureExpr[src]

impl AstNode for Condition[src]

impl AstNode for Const[src]

impl AstNode for ConstArg[src]

impl AstNode for ConstParam[src]

impl AstNode for ContinueExpr[src]

impl AstNode for DynTraitType[src]

impl AstNode for EffectExpr[src]

impl AstNode for Enum[src]

impl AstNode for ExprStmt[src]

impl AstNode for ExternBlock[src]

impl AstNode for ExternCrate[src]

impl AstNode for ExternItemList[src]

impl AstNode for FieldExpr[src]

impl AstNode for Fn[src]

impl AstNode for FnPtrType[src]

impl AstNode for ForExpr[src]

impl AstNode for ForType[src]

impl AstNode for GenericArgList[src]

impl AstNode for GenericParamList[src]

impl AstNode for IdentPat[src]

impl AstNode for IfExpr[src]

impl AstNode for Impl[src]

impl AstNode for ImplTraitType[src]

impl AstNode for IndexExpr[src]

impl AstNode for InferType[src]

impl AstNode for ItemList[src]

impl AstNode for Label[src]

impl AstNode for LetStmt[src]

impl AstNode for LifetimeArg[src]

impl AstNode for LifetimeParam[src]

impl AstNode for Literal[src]

impl AstNode for LiteralPat[src]

impl AstNode for LoopExpr[src]

impl AstNode for MacroCall[src]

impl AstNode for MacroItems[src]

impl AstNode for MacroPat[src]

impl AstNode for MacroStmts[src]

impl AstNode for MatchArm[src]

impl AstNode for MatchArmList[src]

impl AstNode for MatchExpr[src]

impl AstNode for MatchGuard[src]

impl AstNode for MethodCallExpr[src]

impl AstNode for Module[src]

impl AstNode for Name[src]

impl AstNode for NameRef[src]

impl AstNode for NeverType[src]

impl AstNode for OrPat[src]

impl AstNode for Param[src]

impl AstNode for ParamList[src]

impl AstNode for ParenExpr[src]

impl AstNode for ParenPat[src]

impl AstNode for ParenType[src]

impl AstNode for Path[src]

impl AstNode for PathExpr[src]

impl AstNode for PathPat[src]

impl AstNode for PathSegment[src]

impl AstNode for PathType[src]

impl AstNode for PrefixExpr[src]

impl AstNode for PtrType[src]

impl AstNode for RangeExpr[src]

impl AstNode for RangePat[src]

impl AstNode for RecordExpr[src]

impl AstNode for RecordExprField[src]

impl AstNode for RecordExprFieldList[src]

impl AstNode for RecordField[src]

impl AstNode for RecordFieldList[src]

impl AstNode for RecordPat[src]

impl AstNode for RecordPatField[src]

impl AstNode for RecordPatFieldList[src]

impl AstNode for RefExpr[src]

impl AstNode for RefPat[src]

impl AstNode for RefType[src]

impl AstNode for Rename[src]

impl AstNode for RestPat[src]

impl AstNode for RetType[src]

impl AstNode for ReturnExpr[src]

impl AstNode for SelfParam[src]

impl AstNode for SlicePat[src]

impl AstNode for SliceType[src]

impl AstNode for Static[src]

impl AstNode for Struct[src]

impl AstNode for TokenTree[src]

impl AstNode for Trait[src]

impl AstNode for TryExpr[src]

impl AstNode for TupleExpr[src]

impl AstNode for TupleField[src]

impl AstNode for TupleFieldList[src]

impl AstNode for TuplePat[src]

impl AstNode for TupleStructPat[src]

impl AstNode for TupleType[src]

impl AstNode for TypeAlias[src]

impl AstNode for TypeArg[src]

impl AstNode for TypeBound[src]

impl AstNode for TypeBoundList[src]

impl AstNode for TypeParam[src]

impl AstNode for Union[src]

impl AstNode for Use[src]

impl AstNode for UseTree[src]

impl AstNode for UseTreeList[src]

impl AstNode for Variant[src]

impl AstNode for VariantList[src]

impl AstNode for Visibility[src]

impl AstNode for WhereClause[src]

impl AstNode for WherePred[src]

impl AstNode for WhileExpr[src]

impl AstNode for WildcardPat[src]

impl AstNode for SourceFile[src]

Loading content...