Enum rustc_expand::mbe::macro_parser::NamedMatch[][src]

pub(crate) enum NamedMatch {
    MatchedSeq(Lrc<SmallVec<[NamedMatch; 4]>>),
    MatchedNonterminal(Lrc<Nonterminal>),
}
Expand description

NamedMatch is a pattern-match result for a single token::MATCH_NONTERMINAL: so it is associated with a single ident in a parse, and all MatchedNonterminals in the NamedMatch have the same non-terminal type (expr, item, etc). Each leaf in a single NamedMatch corresponds to a single token::MATCH_NONTERMINAL in the TokenTree that produced it.

The in-memory structure of a particular NamedMatch represents the match that occurred when a particular subset of a matcher was applied to a particular token tree.

The width of each MatchedSeq in the NamedMatch, and the identity of the MatchedNonterminals, will depend on the token tree it was applied to: each MatchedSeq corresponds to a single TTSeq in the originating token tree. The depth of the NamedMatch structure will therefore depend only on the nesting depth of ast::TTSeqs in the originating token tree it was derived from.

Variants

MatchedSeq(Lrc<SmallVec<[NamedMatch; 4]>>)

Tuple Fields of MatchedSeq

0: Lrc<SmallVec<[NamedMatch; 4]>>
MatchedNonterminal(Lrc<Nonterminal>)

Tuple Fields of MatchedNonterminal

0: Lrc<Nonterminal>

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

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

Performs the conversion.

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)

recently added

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.

Layout

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.

Size: 16 bytes

Size for each variant: