# Enum syn::Fields [−] [src]

    pub enum Fields {
        Named(FieldsNamed),
        Unnamed(FieldsUnnamed),
        Unit,
    }

Data stored within an enum variant or struct.

This type is available only if Syn is built with the `"derive"` or `"full"` feature.

# Syntax tree enum

This type is a syntax tree enum.

## Variants

`Named(FieldsNamed)`

Named fields of a struct or struct variant such as `Point { x: f64, y: f64 }`.

`Unnamed(FieldsUnnamed)`

Unnamed fields of a tuple struct or tuple variant such as `Some(T)`.

`Unit`

Unit struct or unit variant such as `None`.

## Implementations

### `impl Fields` [src]

#### `pub fn iter(&self) -> Iter<'_, Field>ⓘ

### Notable traits for Iter<'a, T>

`impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;`
` [src]

Get an iterator over the borrowed `Field` items in this object. This iterator can be used to iterate over a named or unnamed struct or variant’s fields uniformly.

#### `pub fn iter_mut(&mut self) -> IterMut<'_, Field>ⓘ

### Notable traits for IterMut<'a, T>

`impl<'a, T> Iterator for IterMut<'a, T> type Item = &'a mut T;`
` [src]

Get an iterator over the mutably borrowed `Field` items in this object. This iterator can be used to iterate over a named or unnamed struct or variant’s fields uniformly.

#### `pub fn len(&self) -> usize` [src]

Returns the number of fields.

#### `pub fn is_empty(&self) -> bool` [src]

Returns `true` if there are zero fields.

## Trait Implementations

### `impl Clone for Fields` [src]

#### `fn clone(&self) -> Self` [src]

Returns a copy of the value. Read more

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

Performs copy-assignment from `source`. Read more

### `impl From<FieldsNamed> for Fields` [src]

#### `fn from(e: FieldsNamed) -> Fields` [src]

Performs the conversion.

### `impl From<FieldsUnnamed> for Fields` [src]

#### `fn from(e: FieldsUnnamed) -> Fields` [src]

Performs the conversion.

### `impl IntoIterator for Fields` [src]

#### `type Item = Field`

The type of the elements being iterated over.

#### `type IntoIter = IntoIter<Field>`

Which kind of iterator are we turning this into?

#### `fn into_iter(self) -> Self::IntoIter` [src]

Creates an iterator from a value. Read more

### `impl<'a> IntoIterator for &'a Fields` [src]

#### `type Item = &'a Field`

The type of the elements being iterated over.

#### `type IntoIter = Iter<'a, Field>`

Which kind of iterator are we turning this into?

#### `fn into_iter(self) -> Self::IntoIter` [src]

Creates an iterator from a value. Read more

### `impl<'a> IntoIterator for &'a mut Fields` [src]

#### `type Item = &'a mut Field`

The type of the elements being iterated over.

#### `type IntoIter = IterMut<'a, Field>`

Which kind of iterator are we turning this into?

#### `fn into_iter(self) -> Self::IntoIter` [src]

Creates an iterator from a value. Read more

### `impl ToTokens for Fields` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

Write `self` to the given `TokenStream`. Read more

#### `pub fn to_token_stream(&self) -> TokenStream` [src]

Convert `self` directly into a `TokenStream` object. Read more

#### `pub fn into_token_stream(self) -> TokenStream` [src]

Convert `self` directly into a `TokenStream` object. Read more

## Auto Trait Implementations

### `impl RefUnwindSafe for Fields`

### `impl !Send for Fields`

### `impl !Sync for Fields`

### `impl Unpin for Fields`

### `impl UnwindSafe for Fields`

## 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> Spanned for T where
T: Spanned + ?Sized,` [src]

#### `pub fn span(&Self) -> Span` [src]

Returns a `Span` covering the complete contents of this syntax tree node, or `Span::call_site()` if this node is empty. Read more

### `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.