pub enum TokenKind {
Show 109 variants
IntLiteral,
FloatLiteral,
StringLiteral,
RawStringLiteral,
MultiLineStringLiteral,
RawMultiLineStringLiteral,
CharLiteral,
BoolLiteral,
StringLiteralPart,
InterpolationStart,
InterpolationEnd,
Ident,
TypeIdent,
Fn,
Let,
Mut,
Const,
If,
Else,
Match,
For,
In,
While,
Loop,
Break,
Continue,
Return,
Guard,
With,
Handling,
Handle,
Record,
Enum,
Class,
Trait,
Impl,
SelfLower,
SelfUpper,
Module,
Use,
Public,
Internal,
Native,
Async,
Await,
Effect,
Platform,
Where,
Type,
Ok_,
Err_,
Some_,
None_,
Property,
Forall,
Unreachable,
Is,
Plus,
Minus,
Star,
Slash,
Percent,
Power,
Eq,
Neq,
Lt,
Gt,
Lte,
Gte,
And,
Or,
Not,
BitAnd,
BitOr,
BitXor,
BitNot,
Shl,
Shr,
Compose,
Assign,
PlusEq,
MinusEq,
StarEq,
SlashEq,
PercentEq,
Pipe,
FatArrow,
ThinArrow,
Question,
DotDot,
DotDotEq,
Dot,
Underscore,
Hash,
At,
LParen,
RParen,
LBracket,
RBracket,
LBrace,
RBrace,
Comma,
Colon,
Semicolon,
Newline,
DocComment,
ModuleDocComment,
Eof,
Error,
}Expand description
The kind of a lexical token.
§Note on Shr vs Compose
Both >> and the function-composition operator >> share the same
source spelling. The lexer always emits Shr; the parser
re-interprets the token as Compose when it appears in an expression
context where the shift reading makes no sense.
Variants§
IntLiteral
Integer literal: 42, 0xFF, 0o77, 0b1010
FloatLiteral
Floating-point literal: 3.14, 1.0e10
StringLiteral
Standard string literal: "hello"
RawStringLiteral
Raw string literal: r"no escapes"
MultiLineStringLiteral
Multi-line string literal: """..."""
RawMultiLineStringLiteral
Raw multi-line string literal: r"""..."""
CharLiteral
Character literal: 'a'
BoolLiteral
Boolean literal: true / false (also produced as keywords)
StringLiteralPart
A literal text segment between interpolation expressions.
InterpolationStart
${ — starts an interpolated expression inside a string.
InterpolationEnd
} — closes an interpolated expression inside a string.
Ident
Lowercase/underscore identifier: foo, _bar
TypeIdent
Type identifier (starts with uppercase): Foo, MyType
Fn
Let
Mut
Const
If
Else
Match
For
In
While
Loop
Break
Continue
Return
Guard
With
Handling
Handle
Record
Enum
Class
Trait
Impl
SelfLower
self (lowercase)
SelfUpper
Self (uppercase)
Module
Use
Public
Internal
Native
Async
Await
Effect
Platform
Where
Type
Ok_
Ok — standard result variant keyword
Err_
Err — standard result variant keyword
Some_
Some — standard option variant keyword
None_
None — standard option variant keyword
Property
Forall
Unreachable
Is
is — type-test / pattern keyword
Plus
+
Minus
-
Star
*
Slash
/
Percent
%
Power
**
Eq
==
Neq
!=
Lt
<
Gt
>
Lte
<=
Gte
>=
And
&&
Or
||
Not
!
BitAnd
&
BitOr
|
BitXor
^
BitNot
~
Shl
<<
Shr
>> — lexer always emits this; parser re-interprets as Compose when needed.
Compose
>> in function-composition context — never emitted by the lexer directly;
the parser re-interprets Shr as Compose in expression position.
Assign
=
PlusEq
+=
MinusEq
-=
StarEq
*=
SlashEq
/=
PercentEq
%=
Pipe
|> — pipe operator
FatArrow
=> — fat arrow (match arms, lambdas)
ThinArrow
-> — thin arrow (return-type annotation)
Question
? — error propagation / optional chaining
DotDot
.. — exclusive range
DotDotEq
..= — inclusive range
Dot
.
Underscore
_ — wildcard / placeholder
Hash
# — attribute sigil
At
@
LParen
(
RParen
)
LBracket
[
RBracket
]
LBrace
{
RBrace
}
Comma
,
Colon
:
Semicolon
;
Newline
Significant newline (statement terminator)
DocComment
/// doc comment
ModuleDocComment
//! module doc comment
Eof
End of file
Error
Lexer error token
Trait Implementations§
impl Eq for TokenKind
impl StructuralPartialEq for TokenKind
Auto Trait Implementations§
impl Freeze for TokenKind
impl RefUnwindSafe for TokenKind
impl Send for TokenKind
impl Sync for TokenKind
impl Unpin for TokenKind
impl UnsafeUnpin for TokenKind
impl UnwindSafe for TokenKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);