Trait ProcMacroExt

Source
pub trait ProcMacroExt: ProcMacro<PM = Self::PMExt, Delimiter = Self::DelimiterExt, Group = Self::GroupExt, Ident = Self::IdentExt, Literal = Self::LiteralExt, Punct = Self::PunctExt, Spacing = Self::SpacingExt, Span = Self::SpanExt, TokenStream = Self::TokenStreamExt, TokenTree = Self::TokenTreeExt, TokenStreamIntoIter = Self::TokenStreamExtIntoIter> {
    type PMExt: PMExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type DelimiterExt: DelimiterExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type GroupExt: GroupExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type IdentExt: IdentExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type LiteralExt: LiteralExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type PunctExt: PunctExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type SpacingExt: SpacingExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type SpanExt: SpanExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type TokenStreamExt: TokenStreamExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type TokenTreeExt: TokenTreeExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>;
    type TokenStreamExtIntoIter: Clone + Iterator<Item = Self::TokenTreeExt>;
}
Expand description

Adds extra bounds to the associated types of ProcMacro to enable extension traits.

You can keep using the types defined in ProcMacro; the associated types of this trait should be considered an implementation detail.

Required Associated Types§

Source

type PMExt: PMExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::PM instead.

Source

type DelimiterExt: DelimiterExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::Delimiter instead.

Source

type GroupExt: GroupExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::Group instead.

Source

type IdentExt: IdentExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::Ident instead.

Source

type LiteralExt: LiteralExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::Literal instead.

Source

type PunctExt: PunctExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::Punct instead.

Source

type SpacingExt: SpacingExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::Spacing instead.

Source

type SpanExt: SpanExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::Span instead.

Source

type TokenStreamExt: TokenStreamExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::TokenStream instead.

Source

type TokenTreeExt: TokenTreeExt<PMExt = Self::PMExt, DelimiterExt = Self::DelimiterExt, GroupExt = Self::GroupExt, IdentExt = Self::IdentExt, LiteralExt = Self::LiteralExt, PunctExt = Self::PunctExt, SpacingExt = Self::SpacingExt, SpanExt = Self::SpanExt, TokenStreamExt = Self::TokenStreamExt, TokenTreeExt = Self::TokenTreeExt, TokenStreamExtIntoIter = Self::TokenStreamExtIntoIter>

Implementation detail to enable extension traits. Use ProcMacro::TokenTree instead.

Source

type TokenStreamExtIntoIter: Clone + Iterator<Item = Self::TokenTreeExt>

Implementation detail to enable extension traits. Use ProcMacro::TokenStreamIntoIter instead.

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 ProcMacroExt for Delimiter

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for Spacing

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for TokenTree

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for Delimiter

Available on crate feature proc-macro2 only.
Source§

impl ProcMacroExt for Spacing

Available on crate feature proc-macro2 only.
Source§

impl ProcMacroExt for TokenTree

Available on crate feature proc-macro2 only.
Source§

impl ProcMacroExt for Group

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for Ident

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for Literal

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for Punct

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for Span

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for TokenStream

Available on crate feature proc-macro only.
Source§

impl ProcMacroExt for Group

Available on crate feature proc-macro2 only.
Source§

impl ProcMacroExt for Ident

Available on crate feature proc-macro2 only.
Source§

impl ProcMacroExt for Literal

Available on crate feature proc-macro2 only.
Source§

impl ProcMacroExt for Punct

Available on crate feature proc-macro2 only.
Source§

impl ProcMacroExt for Span

Available on crate feature proc-macro2 only.
Source§

impl ProcMacroExt for TokenStream

Available on crate feature proc-macro2 only.

Implementors§