pub enum Token {
Show 97 variants
Integer(i64),
Float(f64),
SingleString(String),
DoubleString(String),
BacktickString(String),
Regex(String, String, char),
HereDoc(String, String, bool),
QW(Vec<String>),
ScalarVar(String),
DerefScalarVar(String),
ArrayVar(String),
HashVar(String),
ArrayAt,
HashPercent,
Ident(String),
Label(String),
PackageSep,
FormatDecl {
name: String,
lines: Vec<String>,
},
Plus,
Minus,
Star,
Slash,
Percent,
Power,
Dot,
X,
NumEq,
NumNe,
NumLt,
NumGt,
NumLe,
NumGe,
Spaceship,
StrEq,
StrNe,
StrLt,
StrGt,
StrLe,
StrGe,
StrCmp,
LogAnd,
LogOr,
LogNot,
LogAndWord,
LogOrWord,
LogNotWord,
DefinedOr,
BitAnd,
BitOr,
BitXor,
BitNot,
ShiftLeft,
ShiftRight,
Assign,
PlusAssign,
MinusAssign,
MulAssign,
DivAssign,
ModAssign,
PowAssign,
DotAssign,
AndAssign,
OrAssign,
XorAssign,
ShiftLeftAssign,
ShiftRightAssign,
BitAndAssign,
BitOrAssign,
DefinedOrAssign,
Increment,
Decrement,
BindMatch,
BindNotMatch,
Arrow,
FatArrow,
PipeForward,
ThreadArrow,
ThreadArrowLast,
Range,
RangeExclusive,
Backslash,
LParen,
RParen,
LBracket,
RBracket,
LBrace,
RBrace,
ArrowBrace,
Semicolon,
Comma,
Question,
Colon,
Diamond,
ReadLine(String),
FileTest(char),
Eof,
Newline,
}Variants§
Integer(i64)
Float(f64)
SingleString(String)
DoubleString(String)
BacktickString(String)
`...` or qx{...} — interpolated like double quotes, then executed as sh -c (Perl qx).
Regex(String, String, char)
Regex pattern: (pattern, flags, delimiter)
HereDoc(String, String, bool)
QW(Vec<String>)
ScalarVar(String)
DerefScalarVar(String)
$$foo — symbolic scalar deref (inner name is foo without sigil).
ArrayVar(String)
HashVar(String)
ArrayAt
HashPercent
Ident(String)
Label(String)
PackageSep
FormatDecl
format NAME = … body … . (body lines without the closing .)
Plus
Minus
Star
Slash
Percent
Power
Dot
X
NumEq
NumNe
NumLt
NumGt
NumLe
NumGe
Spaceship
StrEq
StrNe
StrLt
StrGt
StrLe
StrGe
StrCmp
LogAnd
LogOr
LogNot
LogAndWord
LogOrWord
LogNotWord
DefinedOr
BitAnd
BitOr
BitXor
BitNot
ShiftLeft
ShiftRight
Assign
PlusAssign
MinusAssign
MulAssign
DivAssign
ModAssign
PowAssign
DotAssign
AndAssign
OrAssign
XorAssign
ShiftLeftAssign
ShiftRightAssign
BitAndAssign
Bitwise &=
BitOrAssign
Bitwise |=
DefinedOrAssign
Increment
Decrement
BindMatch
BindNotMatch
Arrow
FatArrow
PipeForward
|> — pipe-forward (F#/Elixir): x |> f(a) desugars to f(x, a) at parse time.
ThreadArrow
~> — thread-first macro: ~> EXPR stage1 stage2 ... injects as first arg
ThreadArrowLast
~>> / ->> — thread-last macro: injects as last arg
Range
Two-dot range / inclusive flip-flop (..).
RangeExclusive
Three-dot range / exclusive flip-flop (...); list expansion matches .. (Perl).
Backslash
LParen
RParen
LBracket
RBracket
LBrace
RBrace
ArrowBrace
>{ — standalone block in thread macro (not attached to a function)
Semicolon
Comma
Question
Colon
Diamond
ReadLine(String)
FileTest(char)
Eof
Newline
Implementations§
Trait Implementations§
impl StructuralPartialEq for Token
Auto Trait Implementations§
impl Freeze for Token
impl RefUnwindSafe for Token
impl Send for Token
impl Sync for Token
impl Unpin for Token
impl UnsafeUnpin for Token
impl UnwindSafe for Token
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
Source§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
Convert this type into
T, using the provided data to resolve any offsets.