Struct hir_expand::ExpansionInfo[][src]

pub struct ExpansionInfo { /* fields omitted */ }
Expand description

ExpansionInfo mainly describes how to map text range between src and expanded macro

Implementations

Map a token down from macro input into the macro expansion.

The inner workings of this function differ slightly depending on the type of macro we are dealing with:

  • declarative: For declarative macros, we need to accommodate for the macro definition site(which acts as a second unchanging input) , as tokens can mapped in and out of it. To do this we shift all ids in the expansion by the maximum id of the definition site giving us an easy way to map all the tokens.
  • attribute: Attributes have two different inputs, the input tokentree in the attribute node and the item the attribute is annotating. Similarly as for declarative macros we need to do a shift here as well. Currently this is done by shifting the attribute input by the maximum id of the item.
  • function-like and derives: Both of these only have one simple call site input so no special handling is required here.

Map a token up out of the expansion it resides in into the arguments of the macro call of the expansion.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more