pub enum TokenKind {
Show 101 variants
Commons,
Type,
Fn,
Where,
And,
True,
False,
Int,
String,
Bool,
Float,
Duration,
Instant,
Bytes,
Let,
If,
Else,
Ok,
Err,
Result,
ValidationError,
JsonError,
Enum,
Match,
Option,
Record,
Self_,
Some,
None,
Is,
Opaque,
Uses,
Context,
Consumes,
Exports,
Transparent,
As,
Expect,
Mocks,
Suite,
Case,
Property,
Wires,
Adapter,
Binding,
Agent,
Capability,
Effect,
Given,
On,
Http,
Cron,
Queue,
From,
Protocol,
Provides,
Service,
Actor,
By,
Invariant,
Implies,
DotDotDot,
LArrow,
TildeArrow,
ColonEq,
DocBlock,
Comment,
Ident,
IntLit,
FloatLit,
StrLit,
InterpStr,
Arrow,
EqEq,
BangEq,
LtEq,
GtEq,
AmpAmp,
PipePipe,
Plus,
Minus,
Star,
Slash,
Bang,
Eq,
Lt,
Gt,
Question,
FatArrow,
Underscore,
Pipe,
At,
LParen,
RParen,
LBrace,
RBrace,
LBracket,
RBracket,
Comma,
Colon,
Dot,
}Expand description
Token kinds. Discriminants without payload data; the lexeme is recovered
from the source string via the token’s Span.
Note: -- line comments and --- doc block markers are handled outside
logos (see tokenize), because doc blocks are delimited by --- lines
containing only the marker and may span multiple source lines.
Variants§
Commons
Type
Fn
Where
And
True
False
Int
String
Bool
Float
Duration
Instant
Bytes
Let
If
Else
Ok
Err
Result
ValidationError
JsonError
Enum
Match
Option
Record
Self_
Some
None
Is
Opaque
Uses
Context
Consumes
Exports
Transparent
As
Expect
Mocks
Suite
Case
Property
Wires
Adapter
Binding
Agent
Capability
Effect
Given
On
Http
Cron
Queue
From
Protocol
Provides
Service
Actor
By
Invariant
Implies
DotDotDot
... — used in record-spread expressions (v0.5).
LArrow
<- — Effect bind operator (v0.5).
TildeArrow
~> — asynchronous fire-and-forget send marker (v0.79). A leading
statement marker, never on the RHS of a let; distinct from <- so the
call site shows whether the caller waits.
ColonEq
:= — Cell write (v0.81, storage track). A handler statement
cell := expr; distinct from = (binding) and : (annotation). Longer
than :/= so logos matches it as one token.
DocBlock
A documentation block: --- line … --- line. The token’s span
covers the full block including both --- markers. The body content
is recovered from the source via the span (see doc_block_content).
Inserted by tokenize; not lexed by logos directly.
Comment
A line comment: -- ... running to end of line. The span starts at
the -- marker and runs through the last character before the
terminating newline (exclusive). The trivia body (the text after the
-- marker) is recovered from the source via the span. Inserted by
tokenize; not lexed by logos directly so it cannot be mistaken
for an -- operator sequence.
Ident
IntLit
FloatLit
StrLit
InterpStr
Arrow
EqEq
BangEq
LtEq
GtEq
AmpAmp
PipePipe
Plus
Minus
Star
Slash
Bang
Eq
Lt
Gt
Question
FatArrow
Underscore
Pipe
At
@ — storage-annotation marker (v0.85, storage track; ADR 0111). Leads a
@name(args) annotation on a store field (@ttl(…)/@indexed(…)); it
appears only in store-field-declaration position, never as an expression
operator.
LParen
RParen
LBrace
RBrace
LBracket
RBracket
Comma
Colon
Dot
Implementations§
Trait Implementations§
Source§impl<'s> Logos<'s> for TokenKind
impl<'s> Logos<'s> for TokenKind
Source§type Error = ()
type Error = ()
#[logos(error = MyError)]. Defaults to () if not set.Source§type Extras = ()
type Extras = ()
Extras for the particular lexer. This can be set using
#[logos(extras = MyExtras)] and accessed inside callbacks.Source§type Source = str
type Source = str
str,
unless one of the defined patterns explicitly uses non-unicode byte values
or byte slices, in which case that implementation will use [u8].Source§fn lex(
lex: &mut Lexer<'s, Self>,
) -> Option<Result<Self, <Self as Logos<'s>>::Error>>
fn lex( lex: &mut Lexer<'s, Self>, ) -> Option<Result<Self, <Self as Logos<'s>>::Error>>
Lexer. The implementation for this function
is generated by the logos-derive crate.§fn lexer(source: &'source Self::Source) -> Lexer<'source, Self> ⓘwhere
Self::Extras: Default,
fn lexer(source: &'source Self::Source) -> Lexer<'source, Self> ⓘwhere
Self::Extras: Default,
Lexer that will produce tokens implementing
this Logos.§fn lexer_with_extras(
source: &'source Self::Source,
extras: Self::Extras,
) -> Lexer<'source, Self> ⓘ
fn lexer_with_extras( source: &'source Self::Source, extras: Self::Extras, ) -> Lexer<'source, Self> ⓘ
Lexer with the provided Extras that will
produce tokens implementing this Logos.impl Copy for TokenKind
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§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();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§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();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§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();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§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();§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>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.§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);