<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="A punctuated sequence of syntax tree nodes of type `T` separated by punctuation of type `P`."><title>Punctuated in syn::punctuated - Rust</title><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><linkrel="stylesheet"href="../../static.files/normalize-76eba96aa4d2e634.css"><linkrel="stylesheet"href="../../static.files/rustdoc-5bc39a1768837dd0.css"><metaname="rustdoc-vars"data-root-path="../../"data-static-root-path="../../static.files/"data-current-crate="syn"data-themes=""data-resource-suffix=""data-rustdoc-version="1.77.1 (7cf61ebde 2024-03-27)"data-channel="1.77.1"data-search-js="search-dd67cee4cfa65049.js"data-settings-js="settings-4313503d2e1961c2.js"><scriptsrc="../../static.files/storage-4c98445ec4002617.js"></script><scriptdefersrc="sidebar-items.js"></script><scriptdefersrc="../../static.files/main-48f368f3872407c8.js"></script><noscript><linkrel="stylesheet"href="../../static.files/noscript-04d5337699b92874.css"></noscript><linkrel="alternate icon"type="image/png"href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><linkrel="alternate icon"type="image/png"href="../../static.files/favicon-32x32-422f7d1d52889060.png"><linkrel="icon"type="image/svg+xml"href="../../static.files/favicon-2c020d218678b618.svg"></head><bodyclass="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle"title="show sidebar"></button></nav><navclass="sidebar"><divclass="sidebar-crate"><h2><ahref="../../syn/index.html">syn</a><spanclass="version">2.0.58</span></h2></div><h2class="location"><ahref="#">Punctuated</a></h2><divclass="sidebar-elems"><section><h3><ahref="#implementations">Methods</a></h3><ulclass="block method"><li><ahref="#method.clear">clear</a></li><li><ahref="#method.empty_or_trailing">empty_or_trailing</a></li><li><ahref="#method.first">first</a></li><li><ahref="#method.first_mut">first_mut</a></li><li><ahref="#method.insert">insert</a></li><li><ahref="#method.into_pairs">into_pairs</a></li><li><ahref="#method.is_empty">is_empty</a></li><li><ahref="#method.iter">iter</a></li><li><ahref="#method.iter_mut">iter_mut</a></li><li><ahref="#method.last">last</a></li><li><ahref="#method.last_mut">last_mut</a></li><li><ahref="#method.len">len</a></li><li><ahref="#method.new">new</a></li><li><ahref="#method.pairs">pairs</a></li><li><ahref="#method.pairs_mut">pairs_mut</a></li><li><ahref="#method.parse_separated_nonempty">parse_separated_nonempty</a></li><li><ahref="#method.parse_separated_nonempty_with">parse_separated_nonempty_with</a></li><li><ahref="#method.parse_terminated">parse_terminated</a></li><li><ahref="#method.parse_terminated_with">parse_terminated_with</a></li><li><ahref="#method.pop">pop</a></li><li><ahref="#method.pop_punct">pop_punct</a></li><li><ahref="#method.push">push</a></li><li><ahref="#method.push_punct">push_punct</a></li><li><ahref="#method.push_value">push_value</a></li><li><ahref="#method.trailing_punct">trailing_punct</a></li></ul><h3><ahref="#trait-implementations">Trait Implementations</a></h3><ulclass="block trait-implementation"><li><ahref="#impl-Clone-for-Punctuated%3CT,+P%3E">C
<main><divclass="width-limiter"><navclass="sub"><formclass="search-form"><span></span><divid="sidebar-button"tabindex="-1"><ahref="../../syn/all.html"title="show sidebar"></a></div><inputclass="search-input"name="search"aria-label="Run search in the documentation"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"><divid="help-button"tabindex="-1"><ahref="../../help.html"title="help">?</a></div><divid="settings-menu"tabindex="-1"><ahref="../../settings.html"title="settings"><imgwidth="22"height="22"alt="Change settings"src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><sectionid="main-content"class="content"><divclass="main-heading"><h1>Struct <ahref="../index.html">syn</a>::<wbr><ahref="index.html">punctuated</a>::<wbr><aclass="struct"href="#">Punctuated</a><buttonid="copy-path"title="Copy item path to clipboard"><imgsrc="../../static.files/clipboard-7571035ce49a181d.svg"width="19"height="18"alt="Copy item path"></button></h1><spanclass="out-of-band"><aclass="src"href="../../src/syn/punctuated.rs.html#47-50">source</a> · <buttonid="toggle-all-docs"title="collapse all docs">[<span>−</span>]</button></span></div><preclass="rust item-decl"><code>pub struct Punctuated<T, P> { <spanclass="comment">/* private fields */</span> }</code></pre><detailsclass="toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p><strong>A punctuated sequence of syntax tree nodes of type <code>T</code> separated by
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_empty"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#63-65">source</a><h4class="code-header">pub fn <ahref="#method.is_empty"class="fn">is_empty</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Determines whether this punctuated sequence is empty, meaning it
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.len"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#71-73">source</a><h4class="code-header">pub fn <ahref="#method.len"class="fn">len</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a></h4></section></summary><divclass="docblock"><p>Returns the number of syntax tree nodes in this punctuated sequence.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.first"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#76-78">source</a><h4class="code-header">pub fn <ahref="#method.first"class="fn">first</a>(&self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&T</a>></h4></section></summary><divclass="docblock"><p>Borrows the first element in this sequence.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.first_mut"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#81-83">source</a><h4class="code-header">pub fn <ahref="#method.first_mut"class="fn">first_mut</a>(&mut self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&mut T</a>></h4></section></summary><divclass="docblock"><p>Mutably borrows the first element in this sequence.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.last"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#86-88">source</a><h4class="code-header">pub fn <ahref="#method.last"class="fn">last</a>(&self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&T</a>></h4></section></summary><divclass="docblock"><p>Borrows the last element in this sequence.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.last_mut"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#91-93">source</a><h4class="code-header">pub fn <ahref="#method.last_mut"class="fn">last_mut</a>(&mut self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&mut T</a>></h4></section></summary><divclass="docblock"><p>Mutably borrows the last element in this sequence.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.iter"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#96-103">source</a><h4class="code-header">pub fn <ahref="#method.iter"class="fn">iter</a>(&self) -><aclass="struct"href="struct.Iter.html"title="struct syn::punctuated::Iter">Iter</a><'_, T><ahref="#"class="tooltip"data-notable-ty="Iter<'_, T>">ⓘ</a></h4></section></summary><divclass="docblock"><p>Returns an iterator over borrowed syntax tree nodes of type <code>&T</code>.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.iter_mut"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#107-114">source</a><h4class="code-header">pub fn <ahref="#method.iter_mut"class="fn">iter_mut</a>(&mut self) -><aclass="struct"href="struct.IterMut.html"title="struct syn::punctuated::IterMut">IterMut</a><'_, T><ahref="#"class="tooltip"data-notable-ty="IterMut<'_, T>">ⓘ</a></h4></section></summary><divclass="docblock"><p>Returns an iterator over mutably borrowed syntax tree nodes of type
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.pairs"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#118-123">source</a><h4class="code-header">pub fn <ahref="#method.pairs"class="fn">pairs</a>(&self) -><aclass="struct"href="struct.Pairs.html"title="struct syn::punctuated::Pairs">Pairs</a><'_, T, P><ahref="#"class="tooltip"data-notable-ty="Pairs<'_, T, P>">ⓘ</a></h4></section></summary><divclass="docblock"><p>Returns an iterator over the contents of this sequence as borrowed
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.pairs_mut"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#127-132">source</a><h4class="code-header">pub fn <ahref="#method.pairs_mut"class="fn">pairs_mut</a>(&mut self) -><aclass="struct"href="struct.PairsMut.html"title="struct syn::punctuated::PairsMut">PairsMut</a><'_, T, P><ahref="#"class="tooltip"data-notable-ty="PairsMut<'_, T, P>">ⓘ</a></h4></section></summary><divclass="docblock"><p>Returns an iterator over the contents of this sequence as mutably
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.into_pairs"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#136-141">source</a><h4class="code-header">pub fn <ahref="#method.into_pairs"class="fn">into_pairs</a>(self) -><aclass="struct"href="struct.IntoPairs.html"title="struct syn::punctuated::IntoPairs">IntoPairs</a><T, P><ahref="#"class="tooltip"data-notable-ty="IntoPairs<T, P>">ⓘ</a></h4></section></summary><divclass="docblock"><p>Returns an iterator over the contents of this sequence as owned
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.push_value"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#155-162">source</a><h4class="code-header">pub fn <ahref="#method.push_value"class="fn">push_value</a>(&mut self, value: T)</h4></section></summary><divclass="docblock"><p>Appends a syntax tree node onto the end of this punctuated sequence. The
sequence must already have a trailing punctuation, or be empty.</p>
<p>Use <ahref="struct.Punctuated.html#method.push"title="method syn::punctuated::Punctuated::push"><code>push</code></a> instead if the punctuated sequence may or may not already
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.push_punct"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#171-179">source</a><h4class="code-header">pub fn <ahref="#method.push_punct"class="fn">push_punct</a>(&mut self, punctuation: P)</h4></section></summary><divclass="docblock"><p>Appends a trailing punctuation onto the end of this punctuated sequence.
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.pop"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#183-189">source</a><h4class="code-header">pub fn <ahref="#method.pop"class="fn">pop</a>(&mut self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="enum"href="enum.Pair.html"title="enum syn::punctuated::Pair">Pair</a><T, P>></h4></section></summary><divclass="docblock"><p>Removes the last punctuated pair from this sequence, or <code>None</code> if the
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.pop_punct"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#193-201">source</a><h4class="code-header">pub fn <ahref="#method.pop_punct"class="fn">pop_punct</a>(&mut self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><P></h4></section></summary><divclass="docblock"><p>Removes the trailing punctuation from this punctuated sequence, or
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.trailing_punct"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#205-207">source</a><h4class="code-header">pub fn <ahref="#method.trailing_punct"class="fn">trailing_punct</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Determines whether this punctuated sequence ends with a trailing
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.empty_or_trailing"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#213-215">source</a><h4class="code-header">pub fn <ahref="#method.empty_or_trailing"class="fn">empty_or_trailing</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Returns true if either this <code>Punctuated</code> is empty, or it has a trailing
P: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/default/trait.Default.html"title="trait core::default::Default">Default</a>,</div></h4></section></summary><divclass="docblock"><p>Appends a syntax tree node onto the end of this punctuated sequence.</p>
P: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/default/trait.Default.html"title="trait core::default::Default">Default</a>,</div></h4></section></summary><divclass="docblock"><p>Inserts an element at position <code>index</code>.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.clear"class="method"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#255-258">source</a><h4class="code-header">pub fn <ahref="#method.clear"class="fn">clear</a>(&mut self)</h4></section></summary><divclass="docblock"><p>Clears the sequence of all values and punctuation, making it empty.</p>
P: <aclass="trait"href="../parse/trait.Parse.html"title="trait syn::parse::Parse">Parse</a>,</div></h4></section></summary><divclass="docblock"><p>Parses zero or more occurrences of <code>T</code> separated by punctuation of type
<code>P</code>, with optional trailing punctuation.</p>
<p>Parsing continues until the end of this parse stream. The entire content
of this parse stream must consist of <code>T</code> and <code>P</code>.</p>
P: <aclass="trait"href="../parse/trait.Parse.html"title="trait syn::parse::Parse">Parse</a>,</div></h4></section></summary><divclass="docblock"><p>Parses zero or more occurrences of <code>T</code> using the given parse function,
separated by punctuation of type <code>P</code>, with optional trailing
punctuation.</p>
<p>Like <ahref="struct.Punctuated.html#method.parse_terminated"title="associated function syn::punctuated::Punctuated::parse_terminated"><code>parse_terminated</code></a>, the entire content of this stream is expected
P: <aclass="trait"href="../token/trait.Token.html"title="trait syn::token::Token">Token</a> + <aclass="trait"href="../parse/trait.Parse.html"title="trait syn::parse::Parse">Parse</a>,</div></h4></section></summary><divclass="docblock"><p>Parses one or more occurrences of <code>T</code> separated by punctuation of type
<code>P</code>, not accepting trailing punctuation.</p>
<p>Parsing continues as long as punctuation <code>P</code> is present at the head of
the stream. This method returns upon parsing a <code>T</code> and observing that it
is not followed by a <code>P</code>, even if there are remaining tokens in the
P: <aclass="trait"href="../token/trait.Token.html"title="trait syn::token::Token">Token</a> + <aclass="trait"href="../parse/trait.Parse.html"title="trait syn::parse::Parse">Parse</a>,</div></h4></section></summary><divclass="docblock"><p>Parses one or more occurrences of <code>T</code> using the given parse function,
separated by punctuation of type <code>P</code>, not accepting trailing
punctuation.</p>
<p>Like <ahref="struct.Punctuated.html#method.parse_separated_nonempty"title="associated function syn::punctuated::Punctuated::parse_separated_nonempty"><code>parse_separated_nonempty</code></a>, may complete early without parsing
P: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/default/trait.Default.html"title="trait core::default::Default">Default</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.extend"class="method trait-impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#466-471">source</a><ahref="#method.extend"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#tymethod.extend"class="fn">extend</a><I: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = <aclass="enum"href="enum.Pair.html"title="enum syn::punctuated::Pair">Pair</a><T, P>>>(&mut self, i: I)</h4></section></summary><divclass='docblock'>Extends a collection with the contents of an iterator. <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#tymethod.extend">Read more</a></div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.extend_one"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/iter/traits/collect.rs.html#376">source</a><ahref="#method.extend_one"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#method.extend_one"class="fn">extend_one</a>(&mut self, item: A)</h4></section></summary><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>extend_one</code>)</span></div></span><divclass='docblock'>Extends a collection with exactly one element.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.extend_reserve"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/iter/traits/collect.rs.html#384">source</a><ahref="#method.extend_reserve"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#method.extend_reserve"class="fn">extend_reserve</a>(&mut self, additional: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a>)</h4></section></summary><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>extend_one</code>)</span></div></span><divclass='docblock'>Reserves capacity in a collection for the given number of additional elements. <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#method.extend_reserve">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Extend%3CT%3E-for-Punctuated%3CT,+P%3E"class="impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#443-452">source</a><ahref="#impl-Extend%3CT%3E-for-Punctuated%3CT,+P%3E"class="anchor">§</a><h3class="code-header">impl<T, P><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html"title="trait core::iter::traits::collect::Extend">Extend</a><T> for <aclass="struct"href="struct.Punctuated.html"title="struct syn::punctuated::Punctuated">Punctuated</a><T, P><divclass="where">where
P: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/default/trait.Default.html"title="trait core::default::Default">Default</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.extend-1"class="method trait-impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#447-451">source</a><ahref="#method.extend-1"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#tymethod.extend"class="fn">extend</a><I: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = T>>(&mut self, i: I)</h4></section></summary><divclass='docblock'>Extends a collection with the contents of an iterator. <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#tymethod.extend">Read more</a></div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.extend_one-1"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/iter/traits/collect.rs.html#376">source</a><ahref="#method.extend_one-1"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#method.extend_one"class="fn">extend_one</a>(&mut self, item: A)</h4></section></summary><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>extend_one</code>)</span></div></span><divclass='docblock'>Extends a collection with exactly one element.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.extend_reserve-1"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/iter/traits/collect.rs.html#384">source</a><ahref="#method.extend_reserve-1"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#method.extend_reserve"class="fn">extend_reserve</a>(&mut self, additional: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a>)</h4></section></summary><spanclass="item-info"><divclass="stab unstable"><spanclass="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>extend_one</code>)</span></div></span><divclass='docblock'>Reserves capacity in a collection for the given number of additional elements. <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.Extend.html#method.extend_reserve">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-FromIterator%3CPair%3CT,+P%3E%3E-for-Punctuated%3CT,+P%3E"class="impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#454-460">source</a><ahref="#impl-FromIterator%3CPair%3CT,+P%3E%3E-for-Punctuated%3CT,+P%3E"class="anchor">§</a><h3class="code-header">impl<T, P><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.FromIterator.html"title="trait core::iter::traits::collect::FromIterator">FromIterator</a><<aclass="enum"href="enum.Pair.html"title="enum syn::punctuated::Pair">Pair</a><T, P>> for <aclass="struct"href="struct.Punctuated.html"title="struct syn::punctuated::Punctuated">Punctuated</a><T, P></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.from_iter-1"class="method trait-impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#455-459">source</a><ahref="#method.from_iter-1"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.FromIterator.html#tymethod.from_iter"class="fn">from_iter</a><I: <aclass="trait"href="https://doc.rust-lang
P: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/default/trait.Default.html"title="trait core::default::Default">Default</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.from_iter"class="method trait-impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#436-440">source</a><ahref="#method.from_iter"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.FromIterator.html#tymethod.from_iter"class="fn">from_iter</a><I: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.IntoIterator.html"title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = T>>(i: I) -> Self</h4></section></summary><divclass='docblock'>Creates a value from an iterator. <ahref="https://doc.rust-lang.org/1.77.1/core/iter/traits/collect/trait.FromIterator.html#tymethod.from_iter">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Hash-for-Punctuated%3CT,+P%3E"class="impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#404-414">source</a><ahref="#impl-Hash-for-Punctuated%3CT,+P%3E"class="anchor">§</a><h3class="code-header">impl<T, P><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hash.html"title="trait core::hash::Hash">Hash</a> for <aclass="struct"href="struct.Punctuated.html"title="struct syn::punctuated::Punctuated">Punctuated</a><T, P><divclass="where">where
P: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hash.html"title="trait core::hash::Hash">Hash</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.hash"class="method trait-impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#409-413">source</a><ahref="#method.hash"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hash.html#tymethod.hash"class="fn">hash</a><H: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hasher.html"title="trait core::hash::Hasher">Hasher</a>>(&self, state: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&mut H</a>)</h4></section></summary><divclass='docblock'>Feeds this value into the given <ahref="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hasher.html"title="trait core::hash::Hasher"><code>Hasher</code></a>. <ahref="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.hash_slice"class="method trait-impl"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.3.0">1.3.0</span> · <aclass="src"href="https://doc.rust-lang.org/1.77.1/src/core/hash/mod.rs.html#238-240">source</a></span><ahref="#method.hash_slice"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hash.html#method.hash_slice"class="fn">hash_slice</a><H>(data: &<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.slice.html">[Self]</a>, state: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&mut H</a>)<divclass="where">where
Self: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><divclass='docblock'>Feeds a slice of this type into the given <ahref="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hasher.html"title="trait core::hash::Hasher"><code>Hasher</code></a>. <ahref="https://doc.rust-lang.org/1.77.1/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Index%3Cusize%3E-for-Punctuated%3CT,+P%3E"class="impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#1048-1061">source</a><ahref="#impl-Index%3Cusize%3E-for-Punctuated%3CT,+P%3E"class="anchor">§</a><h3class="code-header">impl<T, P><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/ops/index/trait.Index.html"title="trait core::ops::index::Index">Index</a><<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a>> for <aclass="struct"href="struct.Punctuated.html"title="struct syn::punctuated::Punctuated">Punctuated</a><T, P></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Output"class="associatedtype trait-impl"><ahref="#associatedtype.Output"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.1/core/ops/index/trait.Index.html#associatedtype.Output"class="associatedtype">Output</a> = T</h4></section></summary><divclass='docblock'>The returned type after indexing.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.index"class="method trait-impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#1051-1060">source</a><ahref="#method.index"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/ops/index/trait.Index.html#tymethod.index"class="fn">index</a>(&self, index: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a>) ->&Self::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.1/core/ops/index/trait.Index.html#associatedtype.Output"title="type core::ops::index::Index::Output">Output</a></h4></section></summary><divclass='docblock'>Performs the indexing (<code>container[index]</code>) operation. <ahref="https://doc.rust-lang.org/1.77.1/core/ops/index/trait.Index.html#tymethod.index">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-IndexMut%3Cusize%3E-for-Punctuated%3CT,+P%3E"class="impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#1063-1074">source</a><ahref="#impl-IndexMut%3Cusize%3E-for-Punctuated%3CT,+P%3E"class="anchor">§</a><h3class="code-header">impl<T, P><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/ops/index/trait.IndexMut.html"title="trait core::ops::index::IndexMut">IndexMut</a><<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a>> for <aclass="struct"href="struct.Punctuated.html"title="struct syn::punctuated::Punctuated">Punctuated</a><T, P></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.index_mut"class="method trait-impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#1064-1073">source</a><ahref="#method.index_mut"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/ops/index/trait.IndexMut.html#tymethod.index_mut"class="fn">index_mut</a>(&mut self, index: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a>) ->&mut Self::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.1/core/ops/index/trait.Index.html#associatedtype.Output"title="type core::ops::index::Index::Output">Output</a></h4></section></summary><divclass
P: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/cmp/trait.PartialEq.html"title="trait core::cmp::PartialEq">PartialEq</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.eq"class="method trait-impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#396-399">source</a><ahref="#method.eq"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/cmp/trait.PartialEq.html#tymethod.eq"class="fn">eq</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&Self</a>) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.ne"class="method trait-impl"><spanclass="rightside"><spanclass="since"title="Stable since Rust version 1.0.0">1.0.0</span> · <aclass="src"href="https://doc.rust-lang.org/1.77.1/src/core/cmp.rs.html#242">source</a></span><ahref="#method.ne"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/cmp/trait.PartialEq.html#method.ne"class="fn">ne</a>(&self, other: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&Rhs</a>) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason.</div></details></div></details><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-ToTokens-for-Punctuated%3CT,+P%3E"class="impl"><aclass="src rightside"href="../../src/syn/punctuated.rs.html#1083-1091">source</a><ahref="#impl-ToTokens-for-Punctuated%3CT,+P%3E"class="anchor">§</a><h3class="code-header">impl<T, P><aclass="trait"href="../../quote/to_tokens/trait.ToTokens.html"title="trait quote::to_tokens::ToTokens">ToTokens</a> for <aclass="struct"href="struct.Punctuated.html"title="struct syn::punctuated::Punctuated">Punctuated</a><T, P><divclass="where">where
<code><ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.From.html"title="trait core::convert::From">From</a><T> for U</code> chooses to do.</p>
T: Spanned + ?<aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.span"class="method trait-impl"><aclass="src rightside"href="../../src/syn/spanned.rs.html#105-107">source</a><ahref="#method.span"class="anchor">§</a><h4class="code-header">fn <ahref="../spanned/trait.Spanned.html#tymethod.span"class="fn">span</a>(&self) -><aclass="struct"href="../../proc_macro2/struct.Span.html"title="struct proc_macro2::Span">Span</a></h4></section></summary><divclass='docblock'>Returns a <code>Span</code> covering the complete contents of this syntax tree
node, or <ahref="../../proc_macro2/struct.Span.html#method.call_site"title="associated function proc_macro2::Span::call_site"><code>Span::call_site()</code></a> if this node is empty.</div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-ToOwned-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/alloc/borrow.rs.html#83-85">source</a><ahref="#impl-ToOwned-for-T"class="anchor">§</a><h3class="code-header">impl<T><aclass="trait"href="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html"title="trait alloc::borrow::ToOwned">ToOwned</a> for T<divclass="where">where
T: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Owned"class="associatedtype trait-impl"><ahref="#associatedtype.Owned"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#associatedtype.Owned"class="associatedtype">Owned</a> = T</h4></section></summary><divclass='docblock'>The resulting type after obtaining ownership.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.to_owned"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/alloc/borrow.rs.html#88">source</a><ahref="#method.to_owned"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#tymethod.to_owned"class="fn">to_owned</a>(&self) -> T</h4></section></summary><divclass='docblock'>Creates owned data from borrowed data, usually by cloning. <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.clone_into"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/alloc/borrow.rs.html#92">source</a><ahref="#method.clone_into"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#method.clone_into"class="fn">clone_into</a>(&self, target: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&mut T</a>)</h4></section></summary><divclass='docblock'>Uses borrowed data to replace owned data, usually by cloning. <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-TryFrom%3CU%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/convert/mod.rs.html#804-806">source</a><ahref="#impl-TryFrom%3CU%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U> for T<divclass="where">where
U: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><T>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Error-1"class="associatedtype trait-impl"><ahref="#associatedtype.Error-1"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#associatedtype.Error"class="associatedtype">Error</a> = <aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/convert/enum.Infallible.html"title="enum core::convert::Infallible">Infallible</a></h4></section></summary><divclass='docblock'>The type returned in the event of a conversion error.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.try_from"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/convert/mod.rs.html#811">source</a><ahref="#method.try_from"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#tymethod.try_from"class="fn">try_from</a>(value: U) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><T, <T as <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'>Performs the conversion.</div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-TryInto%3CU%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/convert/mod.rs.html#789-791">source</a><ahref="#impl-TryInto%3CU%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryInto.html"title="trait core::convert::TryInto">TryInto</a><U> for T<divclass="where">where
U: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Error"class="associatedtype trait-impl"><ahref="#associatedtype.Error"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryInto.html#associatedtype.Error"class="associatedtype">Error</a> = <U as <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><divclass='docblock'>The type returned in the event of a conversion error.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.try_into"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/convert/mod.rs.html#796">source</a><ahref="#method.try_into"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryInto.html#tymethod.try_into"class="fn">try_into</a>(self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><U, <U as <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'>Performs the conversion.</div></details></div></details></div><scripttype="text/json"id="notable-traits-data">{"IntoPairs<T,P>":"<h3>Notabletraitsfor<code><aclass=\"struct\"href=\"struct.IntoPairs.html\"title=\"structsyn::punctuated::IntoPairs\">IntoPairs</a><T,P></code></h3><pre><code><divclass=\"where\">impl<T,P><aclass=\"trait\"href=\"https://doc.rust-lang.org/1.77.1/core/iter/traits/iterator/trait.Iterator.html\"title=\"traitcore::iter::traits::iterator::Iterator\">Iterator</a>for<aclass=\"struct\"href=\"struct.IntoPairs.html\"title=\"structsyn::punctuated::IntoPairs\">IntoPairs</a><T,P></div><divclass=\"where\">type<ahref=\"https://doc.rust-lang.org/1.77.1/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\"class=\"associatedtype\">Item</a>=<aclass=\"enum\"href=\"enum.Pair.html\"title=\"enumsyn::punctuated::Pair\">Pair</a><T,P>;</div>","Iter<'_,T>":"<h3>Notabletraitsfor<code><aclass=\"struct\"href=\"struct.Iter.html\"title=\"structsyn::punctuated::Iter\">Iter</a><'a,T></code></h3><pre><code><divclass=\"where\">impl<'a,T><aclass=\"trait\"href=\"https://doc.rust-lang.org/1.77.1/core/iter/traits/iterator/trait.Iterator.html\"title=\"traitcore::iter::traits::iterator::Iterator\">Iterator</a>for<aclass=\"struct\"href=\"struct.Iter.html\"title=\"structsyn::punctuated::Iter\">Iter</a><'a,T></div><divclass=\"where\">type<ahref=\"https://doc.rust-lang.org/1.77.1/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\"class=\"associatedtype\">Item</a>=<aclass=\"primitive\"href=\"https://doc.rust-lang.org/1.77.1/std/primitive.reference.html\">&'aT</a>;</div>","IterMut<'_,T>":"<h3>Notabletraitsfor<code><aclass=\"struct\"href=\"struct.IterMut.html\"title=\"structsyn::punctuated::IterMut\">IterMut</a><'a,T></code></h3><pre><code><divclass=\"where\">impl<'a,T><aclass=\"trait\"href=\"https://doc.rust-lang.org/1.77.1/core/iter/traits/iterator/trait.Iterator.html\"title=\"traitcore::iter::traits::iterator::Iterator\">Iterator</a>for<aclass=\"struct\"href=\"struct.IterMut.html\"