Trait ra_ap_syntax::ast::AstNode [−][src]
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; fn clone_for_update(&self) -> Self
where
Self: Sized, { ... } }
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,
[src]
Self: Sized,
fn cast(syntax: SyntaxNode) -> Option<Self> where
Self: Sized,
[src]
Self: Sized,
fn syntax(&self) -> &SyntaxNode
[src]
Provided methods
fn clone_for_update(&self) -> Self where
Self: Sized,
[src]
Self: Sized,
Implementors
impl AstNode for Adt
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for AssocItem
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for Expr
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for ExternItem
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for FieldList
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for GenericArg
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for GenericParam
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for Item
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for Macro
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for NameLike
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for Pat
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for Stmt
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for Type
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for Abi
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for ArgList
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for ArrayExpr
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for ArrayType
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for AssocItemList
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for AssocTypeArg
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for Attr
[src]
fn can_cast(kind: SyntaxKind) -> bool
[src]
fn cast(syntax: SyntaxNode) -> Option<Self>
[src]
fn syntax(&self) -> &SyntaxNode
[src]
impl AstNode for AttrsOwnerNode
[src]
fn can_cast(_: SyntaxKind) -> bool where
Self: Sized,
[src]
Self: Sized,
fn cast(_: SyntaxNode) -> Option<Self> where
Self: Sized,
[src]
Self: Sized,