# Struct syn::parse::Nothing

source · [−]

    pub struct Nothing;

Expand description

An empty syntax tree node that consumes no tokens when parsed.

This is useful for attribute macros that want to ensure they are not provided any attribute args.

    use proc_macro::TokenStream;
    use syn::parse_macro_input;
    use syn::parse::Nothing;

    #[proc_macro_attribute]
    pub fn my_attr(args: TokenStream, input: TokenStream) -> TokenStream {
        parse_macro_input!(args as Nothing);

        /* ... */
    }

    error: unexpected token
     --> src/main.rs:3:19
      |
    3 | #[my_attr(asdf)]
      |           ^^^^

## Trait Implementations

source

### impl Parse for Nothing

source

#### fn parse(_input: ParseStream<'_>) -> Result<Self>

## Auto Trait Implementations

### impl RefUnwindSafe for Nothing

### impl Send for Nothing

### impl Sync for Nothing

### impl Unpin for Nothing

### impl UnwindSafe for Nothing

## Blanket Implementations

source

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

source

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more

source

### impl<T> Borrow<T> for T where
T: ?Sized,

const: unstable · source

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

### impl<T> BorrowMut<T> for T where
T: ?Sized,

const: unstable · source

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

Mutably borrows from an owned value. Read more

source

### impl<T> From<T> for T

const: unstable · source

#### fn from(t: T) -> T

Returns the argument unchanged.

source

### impl<T, U> Into<U> for T where
U: From<T>,

const: unstable · 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, U> TryFrom<U> for T where
U: Into<T>,

#### type Error = Infallible

The type returned in the event of a conversion error.

const: unstable · source

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

Performs the conversion.

source

### impl<T, U> TryInto<U> for T where
U: TryFrom<T>,

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

The type returned in the event of a conversion error.

const: unstable · source

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

Performs the conversion.