pub enum NodeName {
Path(ExprPath),
Punctuated(Punctuated<NodeNameFragment, Punct>),
Block(Block),
}
Expand description
Name of the node.
Variants§
Path(ExprPath)
A plain identifier like div
is a path of length 1, e.g. <div />
. Can
be separated by double colons, e.g. <foo::bar />
.
Punctuated(Punctuated<NodeNameFragment, Punct>)
Name separated by punctuation, e.g. <div data-foo="bar" />
or <div data:foo="bar" />
.
It is fully compatible with SGML (ID/NAME) tokens format. Which is described as follow: ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (“-”), underscores (“_”), colons (“:”), and periods (“.”).
Support more than one punctuation in series, in this case
NodeNameFragment::Empty
would be used.
Note: that punct and NodeNameFragment
has different Spans
and IDE
(rust-analyzer/idea) can controll them independently.
So if one needs to add semantic highlight or go-to definition to entire
NodeName
it should emit helper statements for each Punct
and
NodeNameFragment
(excludeing Empty
fragment).
Block(Block)
Arbitrary rust code in braced {}
blocks.
Implementations§
Trait Implementations§
source§impl PartialEq for NodeName
impl PartialEq for NodeName
source§impl ToTokens for NodeName
impl ToTokens for NodeName
source§fn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
source§fn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
source§fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
Auto Trait Implementations§
impl Freeze for NodeName
impl RefUnwindSafe for NodeName
impl !Send for NodeName
impl !Sync for NodeName
impl Unpin for NodeName
impl UnwindSafe for NodeName
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> Spanned for Twhere
T: Spanned + ?Sized,
impl<T> Spanned for Twhere
T: Spanned + ?Sized,
source§fn span(&self) -> Span
fn span(&self) -> Span
Span
covering the complete contents of this syntax tree
node, or Span::call_site()
if this node is empty.