pub trait Terminal<'a>: TypedSyntaxNode<'a> {
type TokenType: Token<'a>;
const KIND: SyntaxKind;
// Required methods
fn new_green(
db: &'a dyn Database,
leading_trivia: TriviaGreen<'a>,
token: <<Self as Terminal<'a>>::TokenType as TypedSyntaxNode<'a>>::Green,
trailing_trivia: TriviaGreen<'a>,
) -> <Self as TypedSyntaxNode<'a>>::Green;
fn text(&self, db: &'a dyn Database) -> SmolStrId<'a>;
// Provided method
fn cast_token(db: &'a dyn Database, node: SyntaxNode<'a>) -> Option<Self> { ... }
}Required Associated Constants§
const KIND: SyntaxKind
Required Associated Types§
Required Methods§
fn new_green( db: &'a dyn Database, leading_trivia: TriviaGreen<'a>, token: <<Self as Terminal<'a>>::TokenType as TypedSyntaxNode<'a>>::Green, trailing_trivia: TriviaGreen<'a>, ) -> <Self as TypedSyntaxNode<'a>>::Green
Provided Methods§
Sourcefn cast_token(db: &'a dyn Database, node: SyntaxNode<'a>) -> Option<Self>
fn cast_token(db: &'a dyn Database, node: SyntaxNode<'a>) -> Option<Self>
Casts a syntax node to this terminal type’s token and then walks up to return the terminal.
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.