Enum proc_macro::Spacing

1.29.0 · source ·
pub enum Spacing {
    Joint,
    Alone,
}
Expand description

Indicates whether a Punct token can join with the following token to form a multi-character operator.

Variants§

§

Joint

A Punct token can join with the following token to form a multi-character operator.

In token streams constructed using proc macro interfaces Joint punctuation tokens can be followed by any other tokens.
However, in token streams parsed from source code compiler will only set spacing to Joint in the following cases:

  • A Punct is immediately followed by another Punct without a whitespace.
    E.g. + is Joint in += and ++.
  • A single quote ' is immediately followed by an identifier without a whitespace.
    E.g. ' is Joint in 'lifetime.

This list may be extended in the future to enable more token combinations.

§

Alone

A Punct token cannot join with the following token to form a multi-character operator.

Alone punctuation tokens can be followed by any other tokens.
In token streams parsed from source code compiler will set spacing to Alone in all cases not covered by the conditions for Joint above.
E.g. + is Alone in + =, +ident and +(). In particular, token not followed by anything will also be marked as Alone.

Trait Implementations§

source§

impl Clone for Spacing

source§

fn clone(&self) -> Spacing

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Spacing

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq<Spacing> for Spacing

source§

fn eq(&self, other: &Spacing) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for Spacing

source§

impl Eq for Spacing

source§

impl StructuralEq for Spacing

source§

impl StructuralPartialEq for Spacing

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.