Terminal

Trait Terminal 

Source
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§

Required Associated Types§

Required Methods§

Source

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

Source

fn text(&self, db: &'a dyn Database) -> SmolStrId<'a>

Returns the text of the token of this terminal (excluding the trivia).

Provided Methods§

Source

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.

Implementors§

Source§

impl<'db> Terminal<'db> for TerminalAnd<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalAnd

Source§

type TokenType = TokenAnd<'db>

Source§

impl<'db> Terminal<'db> for TerminalAndAnd<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalAndAnd

Source§

type TokenType = TokenAndAnd<'db>

Source§

impl<'db> Terminal<'db> for TerminalArrow<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalArrow

Source§

type TokenType = TokenArrow<'db>

Source§

impl<'db> Terminal<'db> for TerminalAs<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalAs

Source§

type TokenType = TokenAs<'db>

Source§

impl<'db> Terminal<'db> for TerminalAt<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalAt

Source§

type TokenType = TokenAt<'db>

Source§

impl<'db> Terminal<'db> for TerminalBadCharacters<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalBadCharacters

Source§

type TokenType = TokenBadCharacters<'db>

Source§

impl<'db> Terminal<'db> for TerminalBitNot<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalBitNot

Source§

type TokenType = TokenBitNot<'db>

Source§

impl<'db> Terminal<'db> for TerminalBreak<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalBreak

Source§

type TokenType = TokenBreak<'db>

Source§

impl<'db> Terminal<'db> for TerminalColon<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalColon

Source§

type TokenType = TokenColon<'db>

Source§

impl<'db> Terminal<'db> for TerminalColonColon<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalColonColon

Source§

type TokenType = TokenColonColon<'db>

Source§

impl<'db> Terminal<'db> for TerminalComma<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalComma

Source§

type TokenType = TokenComma<'db>

Source§

impl<'db> Terminal<'db> for TerminalConst<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalConst

Source§

type TokenType = TokenConst<'db>

Source§

impl<'db> Terminal<'db> for TerminalContinue<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalContinue

Source§

type TokenType = TokenContinue<'db>

Source§

impl<'db> Terminal<'db> for TerminalDiv<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalDiv

Source§

type TokenType = TokenDiv<'db>

Source§

impl<'db> Terminal<'db> for TerminalDivEq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalDivEq

Source§

type TokenType = TokenDivEq<'db>

Source§

impl<'db> Terminal<'db> for TerminalDollar<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalDollar

Source§

type TokenType = TokenDollar<'db>

Source§

impl<'db> Terminal<'db> for TerminalDot<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalDot

Source§

type TokenType = TokenDot<'db>

Source§

impl<'db> Terminal<'db> for TerminalDotDot<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalDotDot

Source§

type TokenType = TokenDotDot<'db>

Source§

impl<'db> Terminal<'db> for TerminalDotDotEq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalDotDotEq

Source§

type TokenType = TokenDotDotEq<'db>

Source§

impl<'db> Terminal<'db> for TerminalElse<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalElse

Source§

type TokenType = TokenElse<'db>

Source§

impl<'db> Terminal<'db> for TerminalEmpty<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalEmpty

Source§

type TokenType = TokenEmpty<'db>

Source§

impl<'db> Terminal<'db> for TerminalEndOfFile<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalEndOfFile

Source§

type TokenType = TokenEndOfFile<'db>

Source§

impl<'db> Terminal<'db> for TerminalEnum<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalEnum

Source§

type TokenType = TokenEnum<'db>

Source§

impl<'db> Terminal<'db> for TerminalEq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalEq

Source§

type TokenType = TokenEq<'db>

Source§

impl<'db> Terminal<'db> for TerminalEqEq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalEqEq

Source§

type TokenType = TokenEqEq<'db>

Source§

impl<'db> Terminal<'db> for TerminalExtern<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalExtern

Source§

type TokenType = TokenExtern<'db>

Source§

impl<'db> Terminal<'db> for TerminalFalse<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalFalse

Source§

type TokenType = TokenFalse<'db>

Source§

impl<'db> Terminal<'db> for TerminalFor<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalFor

Source§

type TokenType = TokenFor<'db>

Source§

impl<'db> Terminal<'db> for TerminalFunction<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalFunction

Source§

type TokenType = TokenFunction<'db>

Source§

impl<'db> Terminal<'db> for TerminalGE<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalGE

Source§

type TokenType = TokenGE<'db>

Source§

impl<'db> Terminal<'db> for TerminalGT<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalGT

Source§

type TokenType = TokenGT<'db>

Source§

impl<'db> Terminal<'db> for TerminalHash<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalHash

Source§

type TokenType = TokenHash<'db>

Source§

impl<'db> Terminal<'db> for TerminalIdentifier<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalIdentifier

Source§

type TokenType = TokenIdentifier<'db>

Source§

impl<'db> Terminal<'db> for TerminalIf<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalIf

Source§

type TokenType = TokenIf<'db>

Source§

impl<'db> Terminal<'db> for TerminalImpl<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalImpl

Source§

type TokenType = TokenImpl<'db>

Source§

impl<'db> Terminal<'db> for TerminalImplicits<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalImplicits

Source§

type TokenType = TokenImplicits<'db>

Source§

impl<'db> Terminal<'db> for TerminalLBrace<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalLBrace

Source§

type TokenType = TokenLBrace<'db>

Source§

impl<'db> Terminal<'db> for TerminalLBrack<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalLBrack

Source§

type TokenType = TokenLBrack<'db>

Source§

impl<'db> Terminal<'db> for TerminalLE<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalLE

Source§

type TokenType = TokenLE<'db>

Source§

impl<'db> Terminal<'db> for TerminalLParen<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalLParen

Source§

type TokenType = TokenLParen<'db>

Source§

impl<'db> Terminal<'db> for TerminalLT<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalLT

Source§

type TokenType = TokenLT<'db>

Source§

impl<'db> Terminal<'db> for TerminalLet<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalLet

Source§

type TokenType = TokenLet<'db>

Source§

impl<'db> Terminal<'db> for TerminalLiteralNumber<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalLiteralNumber

Source§

type TokenType = TokenLiteralNumber<'db>

Source§

impl<'db> Terminal<'db> for TerminalLoop<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalLoop

Source§

type TokenType = TokenLoop<'db>

Source§

impl<'db> Terminal<'db> for TerminalMacro<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMacro

Source§

type TokenType = TokenMacro<'db>

Source§

impl<'db> Terminal<'db> for TerminalMatch<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMatch

Source§

type TokenType = TokenMatch<'db>

Source§

impl<'db> Terminal<'db> for TerminalMatchArrow<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMatchArrow

Source§

type TokenType = TokenMatchArrow<'db>

Source§

impl<'db> Terminal<'db> for TerminalMinus<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMinus

Source§

type TokenType = TokenMinus<'db>

Source§

impl<'db> Terminal<'db> for TerminalMinusEq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMinusEq

Source§

type TokenType = TokenMinusEq<'db>

Source§

impl<'db> Terminal<'db> for TerminalMod<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMod

Source§

type TokenType = TokenMod<'db>

Source§

impl<'db> Terminal<'db> for TerminalModEq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalModEq

Source§

type TokenType = TokenModEq<'db>

Source§

impl<'db> Terminal<'db> for TerminalModule<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalModule

Source§

type TokenType = TokenModule<'db>

Source§

impl<'db> Terminal<'db> for TerminalMul<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMul

Source§

type TokenType = TokenMul<'db>

Source§

impl<'db> Terminal<'db> for TerminalMulEq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMulEq

Source§

type TokenType = TokenMulEq<'db>

Source§

impl<'db> Terminal<'db> for TerminalMut<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalMut

Source§

type TokenType = TokenMut<'db>

Source§

impl<'db> Terminal<'db> for TerminalNeq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalNeq

Source§

type TokenType = TokenNeq<'db>

Source§

impl<'db> Terminal<'db> for TerminalNoPanic<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalNoPanic

Source§

type TokenType = TokenNoPanic<'db>

Source§

impl<'db> Terminal<'db> for TerminalNot<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalNot

Source§

type TokenType = TokenNot<'db>

Source§

impl<'db> Terminal<'db> for TerminalOf<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalOf

Source§

type TokenType = TokenOf<'db>

Source§

impl<'db> Terminal<'db> for TerminalOr<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalOr

Source§

type TokenType = TokenOr<'db>

Source§

impl<'db> Terminal<'db> for TerminalOrOr<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalOrOr

Source§

type TokenType = TokenOrOr<'db>

Source§

impl<'db> Terminal<'db> for TerminalPlus<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalPlus

Source§

type TokenType = TokenPlus<'db>

Source§

impl<'db> Terminal<'db> for TerminalPlusEq<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalPlusEq

Source§

type TokenType = TokenPlusEq<'db>

Source§

impl<'db> Terminal<'db> for TerminalPub<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalPub

Source§

type TokenType = TokenPub<'db>

Source§

impl<'db> Terminal<'db> for TerminalQuestionMark<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalQuestionMark

Source§

type TokenType = TokenQuestionMark<'db>

Source§

impl<'db> Terminal<'db> for TerminalRBrace<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalRBrace

Source§

type TokenType = TokenRBrace<'db>

Source§

impl<'db> Terminal<'db> for TerminalRBrack<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalRBrack

Source§

type TokenType = TokenRBrack<'db>

Source§

impl<'db> Terminal<'db> for TerminalRParen<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalRParen

Source§

type TokenType = TokenRParen<'db>

Source§

impl<'db> Terminal<'db> for TerminalRef<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalRef

Source§

type TokenType = TokenRef<'db>

Source§

impl<'db> Terminal<'db> for TerminalReturn<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalReturn

Source§

type TokenType = TokenReturn<'db>

Source§

impl<'db> Terminal<'db> for TerminalSemicolon<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalSemicolon

Source§

type TokenType = TokenSemicolon<'db>

Source§

impl<'db> Terminal<'db> for TerminalShortString<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalShortString

Source§

type TokenType = TokenShortString<'db>

Source§

impl<'db> Terminal<'db> for TerminalString<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalString

Source§

type TokenType = TokenString<'db>

Source§

impl<'db> Terminal<'db> for TerminalStruct<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalStruct

Source§

type TokenType = TokenStruct<'db>

Source§

impl<'db> Terminal<'db> for TerminalTrait<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalTrait

Source§

type TokenType = TokenTrait<'db>

Source§

impl<'db> Terminal<'db> for TerminalTrue<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalTrue

Source§

type TokenType = TokenTrue<'db>

Source§

impl<'db> Terminal<'db> for TerminalType<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalType

Source§

type TokenType = TokenType<'db>

Source§

impl<'db> Terminal<'db> for TerminalUnderscore<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalUnderscore

Source§

type TokenType = TokenUnderscore<'db>

Source§

impl<'db> Terminal<'db> for TerminalUse<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalUse

Source§

type TokenType = TokenUse<'db>

Source§

impl<'db> Terminal<'db> for TerminalWhile<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalWhile

Source§

type TokenType = TokenWhile<'db>

Source§

impl<'db> Terminal<'db> for TerminalXor<'db>

Source§

const KIND: SyntaxKind = SyntaxKind::TerminalXor

Source§

type TokenType = TokenXor<'db>