pub enum Token<'a> {
Show 31 variants
Ident(CowRcStr<'a>),
AtKeyword(CowRcStr<'a>),
Hash(CowRcStr<'a>),
IDHash(CowRcStr<'a>),
QuotedString(CowRcStr<'a>),
UnquotedUrl(CowRcStr<'a>),
Delim(char),
Number {
has_sign: bool,
value: f32,
int_value: Option<i32>,
},
Percentage {
has_sign: bool,
unit_value: f32,
int_value: Option<i32>,
},
Dimension {
has_sign: bool,
value: f32,
int_value: Option<i32>,
unit: CowRcStr<'a>,
},
WhiteSpace(&'a str),
Comment(&'a str),
Colon,
Semicolon,
Comma,
IncludeMatch,
DashMatch,
PrefixMatch,
SuffixMatch,
SubstringMatch,
CDO,
CDC,
Function(CowRcStr<'a>),
ParenthesisBlock,
SquareBracketBlock,
CurlyBracketBlock,
BadUrl(CowRcStr<'a>),
BadString(CowRcStr<'a>),
CloseParenthesis,
CloseSquareBracket,
CloseCurlyBracket,
}
Expand description
One of the pieces the CSS input is broken into.
Some components use Cow
in order to borrow from the original input string
and avoid allocating/copying when possible.
Variants§
Ident(CowRcStr<'a>)
AtKeyword(CowRcStr<'a>)
The value does not include the @
marker.
Hash(CowRcStr<'a>)
A <hash-token>
with the type flag set to “unrestricted”
The value does not include the #
marker.
IDHash(CowRcStr<'a>)
A <hash-token>
with the type flag set to “id”
The value does not include the #
marker.
QuotedString(CowRcStr<'a>)
The value does not include the quotes.
UnquotedUrl(CowRcStr<'a>)
The value does not include the url(
)
markers. Note that url( <string-token> )
is represented by a
Function
token.
Delim(char)
A <delim-token>
Number
Fields
Percentage
Fields
Dimension
Fields
has_sign: bool
Whether the number had a +
or -
sign.
This is used is some cases like the <An+B> micro syntax. (See the parse_nth
function.)
WhiteSpace(&'a str)
Comment(&'a str)
A comment.
The CSS Syntax spec does not generate tokens for comments, But we do, because we can (borrowed &str makes it cheap).
The value does not include the /*
*/
markers.
Colon
A :
<colon-token>
Semicolon
A ;
<semicolon-token>
Comma
A ,
<comma-token>
IncludeMatch
DashMatch
A |=
<dash-match-token>
PrefixMatch
A ^=
<prefix-match-token>
SuffixMatch
A $=
<suffix-match-token>
SubstringMatch
CDO
A <!--
<CDO-token>
CDC
A -->
<CDC-token>
Function(CowRcStr<'a>)
The value (name) does not include the (
marker.
ParenthesisBlock
A <(-token>
SquareBracketBlock
A <[-token>
CurlyBracketBlock
A <{-token>
BadUrl(CowRcStr<'a>)
A <bad-url-token>
This token always indicates a parse error.
BadString(CowRcStr<'a>)
A <bad-string-token>
This token always indicates a parse error.
CloseParenthesis
A <)-token>
When obtained from one of the Parser::next*
methods,
this token is always unmatched and indicates a parse error.
CloseSquareBracket
A <]-token>
When obtained from one of the Parser::next*
methods,
this token is always unmatched and indicates a parse error.
CloseCurlyBracket
A <}-token>
When obtained from one of the Parser::next*
methods,
this token is always unmatched and indicates a parse error.
Implementations§
source§impl<'a> Token<'a>
impl<'a> Token<'a>
sourcepub fn is_parse_error(&self) -> bool
pub fn is_parse_error(&self) -> bool
Return whether this token represents a parse error.
BadUrl
and BadString
are tokenizer-level parse errors.
CloseParenthesis
, CloseSquareBracket
, and CloseCurlyBracket
are unmatched
and therefore parse errors when returned by one of the Parser::next*
methods.
source§impl<'a> Token<'a>
impl<'a> Token<'a>
sourcepub fn serialization_type(&self) -> TokenSerializationType
pub fn serialization_type(&self) -> TokenSerializationType
Categorize a token into a type that determines when /**/
needs to be inserted
between two tokens when serialized next to each other without whitespace in between.
See the TokenSerializationType::needs_separator_when_before
method.