Enum rustc_expand::mbe::transcribe::LockstepIterSize[−][src]

enum LockstepIterSize {
    Unconstrained,
    Constraint(usize, MacroRulesNormalizedIdent),
    Contradiction(String),
}
Expand description

An accumulator over a TokenTree to be used with fold. During transcription, we need to make sure that the size of each sequence and all of its nested sequences are the same as the sizes of all the matched (nested) sequences in the macro invocation. If they don’t match, somebody has made a mistake (either the macro writer or caller).

Variants

Unconstrained
Expand description

No constraints on length of matcher. This is true for any TokenTree variants except a MetaVar with an actual MatchedSeq (as opposed to a MatchedNonterminal).

Constraint(usize, MacroRulesNormalizedIdent)
Expand description

A MetaVar with an actual MatchedSeq. The length of the match and the name of the meta-var are returned.

Contradiction(String)
Expand description

Two Constraints on the same sequence had different lengths. This is an error.

Implementations

impl LockstepIterSize[src]

fn with(self, other: LockstepIterSize) -> LockstepIterSize[src]

Find incompatibilities in matcher/invocation sizes.

  • Unconstrained is compatible with everything.
  • Contradiction is incompatible with everything.
  • Constraint(len) is only compatible with other constraints of the same length.

Trait Implementations

impl Clone for LockstepIterSize[src]

fn clone(&self) -> LockstepIterSize[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl RefUnwindSafe for LockstepIterSize

impl !Send for LockstepIterSize

impl !Sync for LockstepIterSize

impl Unpin for LockstepIterSize

impl UnwindSafe for LockstepIterSize

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone, 
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

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

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.