pub trait ProcMacro:
'static
+ Clone
+ Debug
+ Sealed {
type PM: PM<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type Delimiter: Delimiter<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type Group: Group<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type Ident: Ident<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type Literal: Literal<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type Punct: Punct<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type Spacing: Spacing<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type Span: Span<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type TokenStream: TokenStream<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type TokenTree: TokenTree<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>;
type TokenStreamIntoIter: Clone + Iterator<Item = Self::TokenTree>;
}Expand description
Base trait with associated type aliases for types from proc-macro/proc-macro2.
See also ProcMacroExt.
Required Associated Types§
Sourcetype PM: PM<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type PM: PM<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype Delimiter: Delimiter<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type Delimiter: Delimiter<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype Group: Group<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type Group: Group<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype Ident: Ident<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type Ident: Ident<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype Literal: Literal<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type Literal: Literal<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype Punct: Punct<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type Punct: Punct<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype Spacing: Spacing<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type Spacing: Spacing<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype Span: Span<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type Span: Span<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype TokenStream: TokenStream<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type TokenStream: TokenStream<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype TokenTree: TokenTree<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
type TokenTree: TokenTree<PM = Self::PM, Delimiter = Self::Delimiter, Group = Self::Group, Ident = Self::Ident, Literal = Self::Literal, Punct = Self::Punct, Spacing = Self::Spacing, Span = Self::Span, TokenStream = Self::TokenStream, TokenTree = Self::TokenTree, TokenStreamIntoIter = Self::TokenStreamIntoIter>
Proc macro selected type alias.
Sourcetype TokenStreamIntoIter: Clone + Iterator<Item = Self::TokenTree>
type TokenStreamIntoIter: Clone + Iterator<Item = Self::TokenTree>
Proc macro selected type alias.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl ProcMacro for Delimiter
Available on crate feature proc-macro only.
impl ProcMacro for Delimiter
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Spacing
Available on crate feature proc-macro only.
impl ProcMacro for Spacing
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for TokenTree
Available on crate feature proc-macro only.
impl ProcMacro for TokenTree
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Delimiter
Available on crate feature proc-macro2 only.
impl ProcMacro for Delimiter
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Spacing
Available on crate feature proc-macro2 only.
impl ProcMacro for Spacing
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for TokenTree
Available on crate feature proc-macro2 only.
impl ProcMacro for TokenTree
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Group
Available on crate feature proc-macro only.
impl ProcMacro for Group
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Ident
Available on crate feature proc-macro only.
impl ProcMacro for Ident
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Literal
Available on crate feature proc-macro only.
impl ProcMacro for Literal
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Punct
Available on crate feature proc-macro only.
impl ProcMacro for Punct
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Span
Available on crate feature proc-macro only.
impl ProcMacro for Span
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for TokenStream
Available on crate feature proc-macro only.
impl ProcMacro for TokenStream
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Group
Available on crate feature proc-macro2 only.
impl ProcMacro for Group
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Ident
Available on crate feature proc-macro2 only.
impl ProcMacro for Ident
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Literal
Available on crate feature proc-macro2 only.
impl ProcMacro for Literal
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Punct
Available on crate feature proc-macro2 only.
impl ProcMacro for Punct
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for Span
Available on crate feature proc-macro2 only.
impl ProcMacro for Span
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for TokenStream
Available on crate feature proc-macro2 only.
impl ProcMacro for TokenStream
Available on crate feature
proc-macro2 only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Implementors§
Source§impl ProcMacro for proclet::PM1
Available on crate feature proc-macro only.
impl ProcMacro for proclet::PM1
Available on crate feature
proc-macro only.type PM = PM
type Delimiter = Delimiter
type Group = Group
type Ident = Ident
type Literal = Literal
type Punct = Punct
type Spacing = Spacing
type Span = Span
type TokenStream = TokenStream
type TokenTree = TokenTree
type TokenStreamIntoIter = IntoIter
Source§impl ProcMacro for proclet::PM2
Available on crate feature proc-macro2 only.
impl ProcMacro for proclet::PM2
Available on crate feature
proc-macro2 only.