pub trait TypedSyntaxNode<'a>: Sized {
type StablePtr: TypedStablePtr<'a>;
type Green;
const OPTIONAL_KIND: Option<SyntaxKind>;
// Required methods
fn missing(db: &'a dyn Database) -> Self::Green;
fn from_syntax_node(db: &'a dyn Database, node: SyntaxNode<'a>) -> Self;
fn cast(db: &'a dyn Database, node: SyntaxNode<'a>) -> Option<Self>;
fn as_syntax_node(&self) -> SyntaxNode<'a>;
fn stable_ptr(&self, db: &'a dyn Database) -> Self::StablePtr;
}Expand description
Trait for the typed view of the syntax tree. All the internal node implementations are under the ast module.
Required Associated Constants§
Sourceconst OPTIONAL_KIND: Option<SyntaxKind>
const OPTIONAL_KIND: Option<SyntaxKind>
The relevant SyntaxKind. None for enums.
Required Associated Types§
type StablePtr: TypedStablePtr<'a>
type Green
Required Methods§
fn missing(db: &'a dyn Database) -> Self::Green
fn from_syntax_node(db: &'a dyn Database, node: SyntaxNode<'a>) -> Self
fn cast(db: &'a dyn Database, node: SyntaxNode<'a>) -> Option<Self>
fn as_syntax_node(&self) -> SyntaxNode<'a>
fn stable_ptr(&self, db: &'a dyn Database) -> Self::StablePtr
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.