Enum proc_macro2::Delimiter
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 may 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.
Trait Implementations§
impl Copy for Delimiter
impl Eq for Delimiter
impl StructuralPartialEq for Delimiter
Auto Trait Implementations§
impl Freeze for Delimiter
impl RefUnwindSafe for Delimiter
impl Send for Delimiter
impl Sync for Delimiter
impl Unpin for Delimiter
impl UnwindSafe for Delimiter
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)