Module syn::punctuated
source · 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.