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.
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§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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> ⓘ
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> ⓘ
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 more