Expand description

A punctuated sequence of syntax tree nodes separated by punctuation.

Lots of things in Rust are punctuated sequences.

  • The fields of a struct are Punctuated<Field, Token![,]>.
  • The segments of a path are Punctuated<PathSegment, Token![::]>.
  • The bounds on a generic parameter are Punctuated<TypeParamBound, Token![+]>.
  • The arguments to a function call are Punctuated<Expr, Token![,]>.

This module provides a common representation for these punctuated sequences in the form of the Punctuated<T, P> type. We store a vector of pairs of syntax tree node + punctuation, where every node in the sequence is followed by punctuation except for possibly the final one.

a_function_call(arg1, arg2, arg3);
                ~~~~^ ~~~~^ ~~~~

Structs

An iterator over owned values of type T.

An iterator over owned pairs of type Pair<T, P>.

An iterator over borrowed values of type &T.

An iterator over mutably borrowed values of type &mut T.

An iterator over borrowed pairs of type Pair<&T, &P>.

An iterator over mutably borrowed pairs of type Pair<&mut T, &mut P>.

A punctuated sequence of syntax tree nodes of type T separated by punctuation of type P.

Enums

A single syntax tree node of type T followed by its trailing punctuation of type P if any.