Enum proc_macro::Delimiter
1.29.0 · source · pub enum Delimiter {
Parenthesis,
Brace,
Bracket,
None,
}
Expand description
Describes how a sequence of token trees is delimited.
Variants§
Parenthesis
( ... )
Brace
{ ... }
Bracket
[ ... ]
None
∅ ... ∅
An invisible delimiter, that may, for example, appear around tokens coming from a
“macro variable” $var
. It is important to preserve operator priorities in cases like
$var * 3
where $var
is 1 + 2
.
Invisible delimiters might not survive roundtrip of a token stream through a string.
Note: rustc currently can ignore the grouping of tokens delimited by None
in the output
of a proc_macro. Only None
-delimited groups created by a macro_rules macro in the input
of a proc_macro macro are preserved, and only in very specific circumstances.
Any None
-delimited groups (re)created by a proc_macro will therefore not preserve
operator priorities as indicated above. The other Delimiter
variants should be used
instead in this context. This is a rustc bug. For details, see
rust-lang/rust#67062.