Files
mercator_service/nom/lib/std/iter/trait.FromIterator.html

232 lines
75 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `FromIterator` trait in crate `nom`."><meta name="keywords" content="rust, rustlang, rust-lang, FromIterator"><title>nom::lib::std::iter::FromIterator - Rust</title><link rel="stylesheet" type="text/css" href="../../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../../light.css" id="themeStyle"><script src="../../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../../nom/index.html'><div class='logo-container'><img src='../../../../rust-logo.png' alt='logo'></div></a><p class='location'>Trait FromIterator</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.from_iter">from_iter</a></div><a class="sidebar-title" href="#foreign-impls">Implementations on Foreign Types</a><div class="sidebar-links"><a href="#impl-FromIterator%3C%26%27b%20str%3E-for-Cow%3C%27a%2C%20str%3E">Cow&lt;&#39;a, str&gt;</a><a href="#impl-FromIterator%3C()%3E-for-()">()</a><a href="#impl-FromIterator%3C(K%2C%20V)%3E-for-HashMap%3CK%2C%20V%2C%20S%3E">HashMap&lt;K, V, S&gt;</a><a href="#impl-FromIterator%3CP%3E-for-PathBuf">PathBuf</a><a href="#impl-FromIterator%3CString%3E-for-Cow%3C%27a%2C%20str%3E">Cow&lt;&#39;a, str&gt;</a><a href="#impl-FromIterator%3CT%3E-for-Arc%3C%5BT%5D%3E">Arc&lt;[T]&gt;</a><a href="#impl-FromIterator%3CT%3E-for-Cow%3C%27a%2C%20%5BT%5D%3E">Cow&lt;&#39;a, [T]&gt;</a><a href="#impl-FromIterator%3CT%3E-for-HashSet%3CT%2C%20S%3E">HashSet&lt;T, S&gt;</a><a href="#impl-FromIterator%3CT%3E-for-Rc%3C%5BT%5D%3E">Rc&lt;[T]&gt;</a><a href="#impl-FromIterator%3Cchar%3E-for-Cow%3C%27a%2C%20str%3E">Cow&lt;&#39;a, str&gt;</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class='location'><a href='../../../index.html'>nom</a>::<wbr><a href='../../index.html'>lib</a>::<wbr><a href='../index.html'>std</a>::<wbr><a href='index.html'>iter</a></p><script>window.sidebarCurrent = {name: 'FromIterator', ty: 'trait', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../../../settings.html"><img src="../../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span class='since' title='Stable since Rust version 1.0.0'>1.0.0</span><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/iter/traits/collect.rs.html#98-120' title='goto source code'>[src]</a></span><span class='in-band'>Trait <a href='../../../index.html'>nom</a>::<wbr><a href='../../index.html'>lib</a>::<wbr><a href='../index.html'>std</a>::<wbr><a href='index.html'>iter</a>::<wbr><a class="trait" href=''>FromIterator</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust trait'>pub trait FromIterator&lt;A&gt; {
fn <a href='#tymethod.from_iter' class='fnname'>from_iter</a>&lt;T&gt;(iter: T) -&gt; Self<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = A&gt;</span>;
}</pre></div><div class='docblock'><p>Conversion from an <code>Iterator</code>.</p>
<p>By implementing <code>FromIterator</code> for a type, you define how it will be
created from an iterator. This is common for types which describe a
collection of some kind.</p>
<p><code>FromIterator</code>'s <a href="#tymethod.from_iter"><code>from_iter</code></a> is rarely called explicitly, and is instead
used through <a href="trait.Iterator.html"><code>Iterator</code></a>'s <a href="trait.Iterator.html#method.collect"><code>collect</code></a> method. See <a href="trait.Iterator.html#method.collect"><code>collect</code></a>'s
documentation for more examples.</p>
<p>See also: <a href="trait.IntoIterator.html"><code>IntoIterator</code></a>.</p>
<h1 id="examples" class="section-header"><a href="#examples">Examples</a></h1>
<p>Basic usage:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">iter</span>::<span class="ident">FromIterator</span>;
<span class="kw">let</span> <span class="ident">five_fives</span> <span class="op">=</span> <span class="ident">std</span>::<span class="ident">iter</span>::<span class="ident">repeat</span>(<span class="number">5</span>).<span class="ident">take</span>(<span class="number">5</span>);
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">from_iter</span>(<span class="ident">five_fives</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v</span>, <span class="macro">vec</span><span class="macro">!</span>[<span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>]);</pre></div>
<p>Using <a href="trait.Iterator.html#method.collect"><code>collect</code></a> to implicitly use <code>FromIterator</code>:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">five_fives</span> <span class="op">=</span> <span class="ident">std</span>::<span class="ident">iter</span>::<span class="ident">repeat</span>(<span class="number">5</span>).<span class="ident">take</span>(<span class="number">5</span>);
<span class="kw">let</span> <span class="ident">v</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">five_fives</span>.<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v</span>, <span class="macro">vec</span><span class="macro">!</span>[<span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>]);</pre></div>
<p>Implementing <code>FromIterator</code> for your type:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">iter</span>::<span class="ident">FromIterator</span>;
<span class="comment">// A sample collection, that&#39;s just a wrapper over Vec&lt;T&gt;</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="kw">struct</span> <span class="ident">MyCollection</span>(<span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span>);
<span class="comment">// Let&#39;s give it some methods so we can create one and add things</span>
<span class="comment">// to it.</span>
<span class="kw">impl</span> <span class="ident">MyCollection</span> {
<span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-</span><span class="op">&gt;</span> <span class="ident">MyCollection</span> {
<span class="ident">MyCollection</span>(<span class="ident">Vec</span>::<span class="ident">new</span>())
}
<span class="kw">fn</span> <span class="ident">add</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">elem</span>: <span class="ident">i32</span>) {
<span class="self">self</span>.<span class="number">0</span>.<span class="ident">push</span>(<span class="ident">elem</span>);
}
}
<span class="comment">// and we&#39;ll implement FromIterator</span>
<span class="kw">impl</span> <span class="ident">FromIterator</span><span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">MyCollection</span> {
<span class="kw">fn</span> <span class="ident">from_iter</span><span class="op">&lt;</span><span class="ident">I</span>: <span class="ident">IntoIterator</span><span class="op">&lt;</span><span class="ident">Item</span><span class="op">=</span><span class="ident">i32</span><span class="op">&gt;</span><span class="op">&gt;</span>(<span class="ident">iter</span>: <span class="ident">I</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="self">Self</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">c</span> <span class="op">=</span> <span class="ident">MyCollection</span>::<span class="ident">new</span>();
<span class="kw">for</span> <span class="ident">i</span> <span class="kw">in</span> <span class="ident">iter</span> {
<span class="ident">c</span>.<span class="ident">add</span>(<span class="ident">i</span>);
}
<span class="ident">c</span>
}
}
<span class="comment">// Now we can make a new iterator...</span>
<span class="kw">let</span> <span class="ident">iter</span> <span class="op">=</span> (<span class="number">0</span>..<span class="number">5</span>).<span class="ident">into_iter</span>();
<span class="comment">// ... and make a MyCollection out of it</span>
<span class="kw">let</span> <span class="ident">c</span> <span class="op">=</span> <span class="ident">MyCollection</span>::<span class="ident">from_iter</span>(<span class="ident">iter</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">c</span>.<span class="number">0</span>, <span class="macro">vec</span><span class="macro">!</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);
<span class="comment">// collect works too!</span>
<span class="kw">let</span> <span class="ident">iter</span> <span class="op">=</span> (<span class="number">0</span>..<span class="number">5</span>).<span class="ident">into_iter</span>();
<span class="kw">let</span> <span class="ident">c</span>: <span class="ident">MyCollection</span> <span class="op">=</span> <span class="ident">iter</span>.<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">c</span>.<span class="number">0</span>, <span class="macro">vec</span><span class="macro">!</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);</pre></div>
</div>
<h2 id='required-methods' class='small-section-header'>Required methods<a href='#required-methods' class='anchor'></a></h2><div class='methods'><h3 id='tymethod.from_iter' class='method'><code id='from_iter.v'>fn <a href='#tymethod.from_iter' class='fnname'>from_iter</a>&lt;T&gt;(iter: T) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = A&gt;,&nbsp;</span></code></h3><div class='docblock'><p>Creates a value from an iterator.</p>
<p>See the <a href="index.html">module-level documentation</a> for more.</p>
<h1 id="examples-1" class="section-header"><a href="#examples-1">Examples</a></h1>
<p>Basic usage:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">iter</span>::<span class="ident">FromIterator</span>;
<span class="kw">let</span> <span class="ident">five_fives</span> <span class="op">=</span> <span class="ident">std</span>::<span class="ident">iter</span>::<span class="ident">repeat</span>(<span class="number">5</span>).<span class="ident">take</span>(<span class="number">5</span>);
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">from_iter</span>(<span class="ident">five_fives</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v</span>, <span class="macro">vec</span><span class="macro">!</span>[<span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>, <span class="number">5</span>]);</pre></div>
</div></div><span class='loading-content'>Loading content...</span>
<h2 id='foreign-impls' class='small-section-header'>Implementations on Foreign Types<a href='#foreign-impls' class='anchor'></a></h2><h3 id='impl-FromIterator%3CP%3E-for-PathBuf' class='impl'><code class='in-band'>impl&lt;P&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;P&gt; for <a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.PathBuf.html" title="struct std::path::PathBuf">PathBuf</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.AsRef.html" title="trait nom::lib::std::prelude::v1::v1::AsRef">AsRef</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.Path.html" title="struct std::path::Path">Path</a>&gt;,&nbsp;</span></code><a href='#impl-FromIterator%3CP%3E-for-PathBuf' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/std/path.rs.html#1514-1520' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter' class="method hidden"><code id='from_iter.v-1'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.PathBuf.html" title="struct std::path::PathBuf">PathBuf</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = P&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/std/path.rs.html#1515-1519' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3C()%3E-for-()' class='impl'><code class='in-band'>impl <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt; for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a></code><a href='#impl-FromIterator%3C()%3E-for-()' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/unit.rs.html#17-21' title='goto source code'>[src]</a></h3><div class='docblock'><p>Collapses all unit items from an iterator into one.</p>
<p>This is more useful when combined with higher-level abstractions, like
collecting to a <code>Result&lt;(), E&gt;</code> where you only care about errors:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="kw-2">*</span>;
<span class="kw">let</span> <span class="ident">data</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>];
<span class="kw">let</span> <span class="ident">res</span>: <span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">data</span>.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span><span class="op">|</span> <span class="macro">writeln</span><span class="macro">!</span>(<span class="ident">stdout</span>(), <span class="string">&quot;{}&quot;</span>, <span class="ident">x</span>))
.<span class="ident">collect</span>();
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">res</span>.<span class="ident">is_ok</span>());</pre></div>
</div><div class='impl-items'><h4 id='method.from_iter-1' class="method hidden"><code id='from_iter.v-2'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/unit.rs.html#18-20' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CString%3E-for-Cow%3C%27a%2C%20str%3E' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;<a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a>&gt; for <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;</code><a href='#impl-FromIterator%3CString%3E-for-Cow%3C%27a%2C%20str%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2325-2329' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-2' class="method hidden"><code id='from_iter.v-3'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(it: I) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2326-2328' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3C%26%27b%20str%3E-for-Cow%3C%27a%2C%20str%3E' class='impl'><code class='in-band'>impl&lt;'a, 'b&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;&amp;'b <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt; for <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;</code><a href='#impl-FromIterator%3C%26%27b%20str%3E-for-Cow%3C%27a%2C%20str%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2318-2322' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-3' class="method hidden"><code id='from_iter.v-4'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(it: I) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = &amp;'b <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2319-2321' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CT%3E-for-Rc%3C%5BT%5D%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;T&gt; for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html" title="struct alloc::rc::Rc">Rc</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a href='#impl-FromIterator%3CT%3E-for-Rc%3C%5BT%5D%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/rc.rs.html#1473-1515' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-4' class="method"><code id='from_iter.v-5'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html" title="struct alloc::rc::Rc">Rc</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/rc.rs.html#1512-1514' title='goto source code'>[src]</a></h4><div class='docblock'><p>Takes each element in the <code>Iterator</code> and collects it into an <code>Rc&lt;[T]&gt;</code>.</p>
<h1 id="performance-characteristics" class="section-header"><a href="#performance-characteristics">Performance characteristics</a></h1><h2 id="the-general-case" class="section-header"><a href="#the-general-case">The general case</a></h2>
<p>In the general case, collecting into <code>Rc&lt;[T]&gt;</code> is done by first
collecting into a <code>Vec&lt;T&gt;</code>. That is, when writing the following:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">evens</span>: <span class="ident">Rc</span><span class="op">&lt;</span>[<span class="ident">u8</span>]<span class="op">&gt;</span> <span class="op">=</span> (<span class="number">0</span>..<span class="number">10</span>).<span class="ident">filter</span>(<span class="op">|</span><span class="kw-2">&amp;</span><span class="ident">x</span><span class="op">|</span> <span class="ident">x</span> <span class="op">%</span> <span class="number">2</span> <span class="op">=</span><span class="op">=</span> <span class="number">0</span>).<span class="ident">collect</span>();</pre></div>
<p>this behaves as if we wrote:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">evens</span>: <span class="ident">Rc</span><span class="op">&lt;</span>[<span class="ident">u8</span>]<span class="op">&gt;</span> <span class="op">=</span> (<span class="number">0</span>..<span class="number">10</span>).<span class="ident">filter</span>(<span class="op">|</span><span class="kw-2">&amp;</span><span class="ident">x</span><span class="op">|</span> <span class="ident">x</span> <span class="op">%</span> <span class="number">2</span> <span class="op">=</span><span class="op">=</span> <span class="number">0</span>)
.<span class="ident">collect</span>::<span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="kw">_</span><span class="op">&gt;</span><span class="op">&gt;</span>() <span class="comment">// The first set of allocations happens here.</span>
.<span class="ident">into</span>(); <span class="comment">// A second allocation for `Rc&lt;[T]&gt;` happens here.</span></pre></div>
<p>This will allocate as many times as needed for constructing the <code>Vec&lt;T&gt;</code>
and then it will allocate once for turning the <code>Vec&lt;T&gt;</code> into the <code>Rc&lt;[T]&gt;</code>.</p>
<h2 id="iterators-of-known-length" class="section-header"><a href="#iterators-of-known-length">Iterators of known length</a></h2>
<p>When your <code>Iterator</code> implements <code>TrustedLen</code> and is of an exact size,
a single allocation will be made for the <code>Rc&lt;[T]&gt;</code>. For example:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">evens</span>: <span class="ident">Rc</span><span class="op">&lt;</span>[<span class="ident">u8</span>]<span class="op">&gt;</span> <span class="op">=</span> (<span class="number">0</span>..<span class="number">10</span>).<span class="ident">collect</span>(); <span class="comment">// Just a single allocation happens here.</span></pre></div>
</div></div><h3 id='impl-FromIterator%3Cchar%3E-for-Cow%3C%27a%2C%20str%3E' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.char.html">char</a>&gt; for <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;</code><a href='#impl-FromIterator%3Cchar%3E-for-Cow%3C%27a%2C%20str%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2311-2315' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-5' class="method hidden"><code id='from_iter.v-6'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(it: I) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.char.html">char</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2312-2314' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CT%3E-for-Arc%3C%5BT%5D%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;T&gt; for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a href='#impl-FromIterator%3CT%3E-for-Arc%3C%5BT%5D%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/sync.rs.html#2022-2064' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-6' class="method"><code id='from_iter.v-7'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/sync.rs.html#2061-2063' title='goto source code'>[src]</a></h4><div class='docblock'><p>Takes each element in the <code>Iterator</code> and collects it into an <code>Arc&lt;[T]&gt;</code>.</p>
<h1 id="performance-characteristics-1" class="section-header"><a href="#performance-characteristics-1">Performance characteristics</a></h1><h2 id="the-general-case-1" class="section-header"><a href="#the-general-case-1">The general case</a></h2>
<p>In the general case, collecting into <code>Arc&lt;[T]&gt;</code> is done by first
collecting into a <code>Vec&lt;T&gt;</code>. That is, when writing the following:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">evens</span>: <span class="ident">Arc</span><span class="op">&lt;</span>[<span class="ident">u8</span>]<span class="op">&gt;</span> <span class="op">=</span> (<span class="number">0</span>..<span class="number">10</span>).<span class="ident">filter</span>(<span class="op">|</span><span class="kw-2">&amp;</span><span class="ident">x</span><span class="op">|</span> <span class="ident">x</span> <span class="op">%</span> <span class="number">2</span> <span class="op">=</span><span class="op">=</span> <span class="number">0</span>).<span class="ident">collect</span>();</pre></div>
<p>this behaves as if we wrote:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">evens</span>: <span class="ident">Arc</span><span class="op">&lt;</span>[<span class="ident">u8</span>]<span class="op">&gt;</span> <span class="op">=</span> (<span class="number">0</span>..<span class="number">10</span>).<span class="ident">filter</span>(<span class="op">|</span><span class="kw-2">&amp;</span><span class="ident">x</span><span class="op">|</span> <span class="ident">x</span> <span class="op">%</span> <span class="number">2</span> <span class="op">=</span><span class="op">=</span> <span class="number">0</span>)
.<span class="ident">collect</span>::<span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="kw">_</span><span class="op">&gt;</span><span class="op">&gt;</span>() <span class="comment">// The first set of allocations happens here.</span>
.<span class="ident">into</span>(); <span class="comment">// A second allocation for `Arc&lt;[T]&gt;` happens here.</span></pre></div>
<p>This will allocate as many times as needed for constructing the <code>Vec&lt;T&gt;</code>
and then it will allocate once for turning the <code>Vec&lt;T&gt;</code> into the <code>Arc&lt;[T]&gt;</code>.</p>
<h2 id="iterators-of-known-length-1" class="section-header"><a href="#iterators-of-known-length-1">Iterators of known length</a></h2>
<p>When your <code>Iterator</code> implements <code>TrustedLen</code> and is of an exact size,
a single allocation will be made for the <code>Arc&lt;[T]&gt;</code>. For example:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">evens</span>: <span class="ident">Arc</span><span class="op">&lt;</span>[<span class="ident">u8</span>]<span class="op">&gt;</span> <span class="op">=</span> (<span class="number">0</span>..<span class="number">10</span>).<span class="ident">collect</span>(); <span class="comment">// Just a single allocation happens here.</span></pre></div>
</div></div><h3 id='impl-FromIterator%3CT%3E-for-Cow%3C%27a%2C%20%5BT%5D%3E' class='impl'><code class='in-band'>impl&lt;'a, T&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;T&gt; for <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Clone.html" title="trait nom::lib::std::prelude::v1::v1::Clone">Clone</a>,&nbsp;</span></code><a href='#impl-FromIterator%3CT%3E-for-Cow%3C%27a%2C%20%5BT%5D%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/vec.rs.html#2461-2468' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-7' class="method hidden"><code id='from_iter.v-8'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(it: I) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>T<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/vec.rs.html#2465-2467' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3C(K%2C%20V)%3E-for-HashMap%3CK%2C%20V%2C%20S%3E' class='impl'><code class='in-band'>impl&lt;K, V, S&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>K, V<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt; for <a class="struct" href="../../../../hashbrown/map/struct.HashMap.html" title="struct hashbrown::map::HashMap">HashMap</a>&lt;K, V, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Eq.html" title="trait nom::lib::std::prelude::v1::v1::Eq">Eq</a> + <a class="trait" href="../../../../nom/lib/std/hash/trait.Hash.html" title="trait nom::lib::std::hash::Hash">Hash</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="../../../../nom/lib/std/hash/trait.BuildHasher.html" title="trait nom::lib::std::hash::BuildHasher">BuildHasher</a> + <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Default.html" title="trait nom::lib::std::prelude::v1::v1::Default">Default</a>,&nbsp;</span></code><a href='#impl-FromIterator%3C(K%2C%20V)%3E-for-HashMap%3CK%2C%20V%2C%20S%3E' class='anchor'></a><a class='srclink' href='../../../../src/hashbrown/map.rs.html#2544-2558' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-8' class="method hidden"><code id='from_iter.v-9'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;T&gt;(iter: T) -&gt; <a class="struct" href="../../../../hashbrown/map/struct.HashMap.html" title="struct hashbrown::map::HashMap">HashMap</a>&lt;K, V, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>K, V<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;,&nbsp;</span></code><a class='srclink' href='../../../../src/hashbrown/map.rs.html#2550-2557' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CT%3E-for-HashSet%3CT%2C%20S%3E' class='impl'><code class='in-band'>impl&lt;T, S&gt; <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;T&gt; for <a class="struct" href="../../../../hashbrown/set/struct.HashSet.html" title="struct hashbrown::set::HashSet">HashSet</a>&lt;T, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="../../../../nom/lib/std/hash/trait.BuildHasher.html" title="trait nom::lib::std::hash::BuildHasher">BuildHasher</a> + <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Default.html" title="trait nom::lib::std::prelude::v1::v1::Default">Default</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Eq.html" title="trait nom::lib::std::prelude::v1::v1::Eq">Eq</a> + <a class="trait" href="../../../../nom/lib/std/hash/trait.Hash.html" title="trait nom::lib::std::hash::Hash">Hash</a>,&nbsp;</span></code><a href='#impl-FromIterator%3CT%3E-for-HashSet%3CT%2C%20S%3E' class='anchor'></a><a class='srclink' href='../../../../src/hashbrown/set.rs.html#893-904' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-9' class="method hidden"><code id='from_iter.v-10'>fn <a href='#method.from_iter' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../hashbrown/set/struct.HashSet.html" title="struct hashbrown::set::HashSet">HashSet</a>&lt;T, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='../../../../src/hashbrown/set.rs.html#899-903' title='goto source code'>[src]</a></h4></div><span class='loading-content'>Loading content...</span>
<h2 id='implementors' class='small-section-header'>Implementors<a href='#implementors' class='anchor'></a></h2><div class='item-list' id='implementors-list'><h3 id='impl-FromIterator%3Cchar%3E' class='impl'><code class='in-band'>impl FromIterator&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.char.html">char</a>&gt; for <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a></code><a href='#impl-FromIterator%3Cchar%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1728-1734' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-10' class="method hidden"><code id='from_iter.v-11'>fn <a href='#method.from_iter-10' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.char.html">char</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1729-1733' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CString%3E' class='impl'><code class='in-band'>impl FromIterator&lt;<a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a>&gt; for <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a></code><a href='#impl-FromIterator%3CString%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1755-1770' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-11' class="method hidden"><code id='from_iter.v-12'>fn <a href='#method.from_iter-11' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1756-1769' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3C%26%27a%20char%3E' class='impl'><code class='in-band'>impl&lt;'a&gt; FromIterator&lt;&amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.char.html">char</a>&gt; for <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a></code><a href='#impl-FromIterator%3C%26%27a%20char%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1737-1743' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-12' class="method hidden"><code id='from_iter.v-13'>fn <a href='#method.from_iter-12' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.char.html">char</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1738-1742' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3C%26%27a%20str%3E' class='impl'><code class='in-band'>impl&lt;'a&gt; FromIterator&lt;&amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt; for <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a></code><a href='#impl-FromIterator%3C%26%27a%20str%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1746-1752' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-13' class="method hidden"><code id='from_iter.v-14'>fn <a href='#method.from_iter-13' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = &amp;'a <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1747-1751' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CCow%3C%27a%2C%20str%3E%3E' class='impl'><code class='in-band'>impl&lt;'a&gt; FromIterator&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;&gt; for <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a></code><a href='#impl-FromIterator%3CCow%3C%27a%2C%20str%3E%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1773-1789' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-14' class="method hidden"><code id='from_iter.v-15'>fn <a href='#method.from_iter-14' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.String.html" title="struct nom::lib::std::prelude::v1::v1::String">String</a> <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="enum" href="https://doc.rust-lang.org/nightly/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'a, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#1774-1788' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CA%3E' class='impl'><code class='in-band'>impl&lt;A&gt; FromIterator&lt;A&gt; for <a class="struct" href="../../../../nom/lib/std/collections/struct.VecDeque.html" title="struct nom::lib::std::collections::VecDeque">VecDeque</a>&lt;A&gt;</code><a href='#impl-FromIterator%3CA%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/vec_deque.rs.html#2662-2670' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-15' class="method hidden"><code id='from_iter.v-16'>fn <a href='#method.from_iter-15' class='fnname'>from_iter</a>&lt;T&gt;(iter: T) -&gt; <a class="struct" href="../../../../nom/lib/std/collections/struct.VecDeque.html" title="struct nom::lib::std::collections::VecDeque">VecDeque</a>&lt;A&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = A&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/vec_deque.rs.html#2663-2669' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CA%3E-1' class='impl'><code class='in-band'>impl&lt;A&gt; FromIterator&lt;A&gt; for <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.Box.html" title="struct nom::lib::std::prelude::v1::v1::Box">Box</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>A<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a href='#impl-FromIterator%3CA%3E-1' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/boxed.rs.html#1042-1046' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-16' class="method hidden"><code id='from_iter.v-17'>fn <a href='#method.from_iter-16' class='fnname'>from_iter</a>&lt;T&gt;(iter: T) -&gt; <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.Box.html" title="struct nom::lib::std::prelude::v1::v1::Box">Box</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a>A<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = A&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/boxed.rs.html#1043-1045' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CResult%3CA%2C%20E%3E%3E' class='impl'><code class='in-band'>impl&lt;A, E, V&gt; FromIterator&lt;<a class="enum" href="../../../../nom/lib/std/prelude/v1/v1/enum.Result.html" title="enum nom::lib::std::prelude::v1::v1::Result">Result</a>&lt;A, E&gt;&gt; for <a class="enum" href="../../../../nom/lib/std/prelude/v1/v1/enum.Result.html" title="enum nom::lib::std::prelude::v1::v1::Result">Result</a>&lt;V, E&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;A&gt;,&nbsp;</span></code><a href='#impl-FromIterator%3CResult%3CA%2C%20E%3E%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/result.rs.html#1455-1505' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-17' class="method"><code id='from_iter.v-18'>fn <a href='#method.from_iter-17' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="enum" href="../../../../nom/lib/std/prelude/v1/v1/enum.Result.html" title="enum nom::lib::std::prelude::v1::v1::Result">Result</a>&lt;V, E&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="enum" href="../../../../nom/lib/std/prelude/v1/v1/enum.Result.html" title="enum nom::lib::std::prelude::v1::v1::Result">Result</a>&lt;A, E&gt;&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/result.rs.html#1499-1504' title='goto source code'>[src]</a></h4><div class='docblock'><p>Takes each element in the <code>Iterator</code>: if it is an <code>Err</code>, no further
elements are taken, and the <code>Err</code> is returned. Should no <code>Err</code> occur, a
container with the values of each <code>Result</code> is returned.</p>
<p>Here is an example which increments every integer in a vector,
checking for overflow:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">1</span>, <span class="number">2</span>];
<span class="kw">let</span> <span class="ident">res</span>: <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u32</span><span class="op">&gt;</span>, <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">v</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span>: <span class="kw-2">&amp;</span><span class="ident">u32</span><span class="op">|</span>
<span class="ident">x</span>.<span class="ident">checked_add</span>(<span class="number">1</span>).<span class="ident">ok_or</span>(<span class="string">&quot;Overflow!&quot;</span>)
).<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">res</span>, <span class="prelude-val">Ok</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="number">2</span>, <span class="number">3</span>]));</pre></div>
<p>Here is another example that tries to subtract one from another list
of integers, this time checking for underflow:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">0</span>];
<span class="kw">let</span> <span class="ident">res</span>: <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u32</span><span class="op">&gt;</span>, <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">v</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span>: <span class="kw-2">&amp;</span><span class="ident">u32</span><span class="op">|</span>
<span class="ident">x</span>.<span class="ident">checked_sub</span>(<span class="number">1</span>).<span class="ident">ok_or</span>(<span class="string">&quot;Underflow!&quot;</span>)
).<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">res</span>, <span class="prelude-val">Err</span>(<span class="string">&quot;Underflow!&quot;</span>));</pre></div>
<p>Here is a variation on the previous example, showing that no
further elements are taken from <code>iter</code> after the first <code>Err</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">3</span>, <span class="number">2</span>, <span class="number">1</span>, <span class="number">10</span>];
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">shared</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">let</span> <span class="ident">res</span>: <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u32</span><span class="op">&gt;</span>, <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">v</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span>: <span class="kw-2">&amp;</span><span class="ident">u32</span><span class="op">|</span> {
<span class="ident">shared</span> <span class="op">+</span><span class="op">=</span> <span class="ident">x</span>;
<span class="ident">x</span>.<span class="ident">checked_sub</span>(<span class="number">2</span>).<span class="ident">ok_or</span>(<span class="string">&quot;Underflow!&quot;</span>)
}).<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">res</span>, <span class="prelude-val">Err</span>(<span class="string">&quot;Underflow!&quot;</span>));
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">shared</span>, <span class="number">6</span>);</pre></div>
<p>Since the third element caused an underflow, no further elements were taken,
so the final value of <code>shared</code> is 6 (= <code>3 + 2 + 1</code>), not 16.</p>
</div></div><h3 id='impl-FromIterator%3COption%3CA%3E%3E' class='impl'><code class='in-band'>impl&lt;A, V&gt; FromIterator&lt;<a class="enum" href="../../../../nom/lib/std/prelude/v1/v1/enum.Option.html" title="enum nom::lib::std::prelude::v1::v1::Option">Option</a>&lt;A&gt;&gt; for <a class="enum" href="../../../../nom/lib/std/prelude/v1/v1/enum.Option.html" title="enum nom::lib::std::prelude::v1::v1::Option">Option</a>&lt;V&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../../../nom/lib/std/iter/trait.FromIterator.html" title="trait nom::lib::std::iter::FromIterator">FromIterator</a>&lt;A&gt;,&nbsp;</span></code><a href='#impl-FromIterator%3COption%3CA%3E%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/option.rs.html#1505-1575' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-18' class="method"><code id='from_iter.v-19'>fn <a href='#method.from_iter-18' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="enum" href="../../../../nom/lib/std/prelude/v1/v1/enum.Option.html" title="enum nom::lib::std::prelude::v1::v1::Option">Option</a>&lt;V&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="enum" href="../../../../nom/lib/std/prelude/v1/v1/enum.Option.html" title="enum nom::lib::std::prelude::v1::v1::Option">Option</a>&lt;A&gt;&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/option.rs.html#1569-1574' title='goto source code'>[src]</a></h4><div class='docblock'><p>Takes each element in the <a href="../iter/trait.Iterator.html"><code>Iterator</code></a>: if it is [<code>None</code>][Option::None],
no further elements are taken, and the [<code>None</code>][Option::None] is
returned. Should no [<code>None</code>][Option::None] occur, a container with the
values of each [<code>Option</code>] is returned.</p>
<h1 id="examples-2" class="section-header"><a href="#examples-2">Examples</a></h1>
<p>Here is an example which increments every integer in a vector.
We use the checked variant of <code>add</code> that returns <code>None</code> when the
calculation would result in an overflow.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">items</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">0_u16</span>, <span class="number">1</span>, <span class="number">2</span>];
<span class="kw">let</span> <span class="ident">res</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u16</span><span class="op">&gt;</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">items</span>
.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span><span class="op">|</span> <span class="ident">x</span>.<span class="ident">checked_add</span>(<span class="number">1</span>))
.<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">res</span>, <span class="prelude-val">Some</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]));</pre></div>
<p>As you can see, this will return the expected, valid items.</p>
<p>Here is another example that tries to subtract one from another list
of integers, this time checking for underflow:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">items</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">2_u16</span>, <span class="number">1</span>, <span class="number">0</span>];
<span class="kw">let</span> <span class="ident">res</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u16</span><span class="op">&gt;</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">items</span>
.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span><span class="op">|</span> <span class="ident">x</span>.<span class="ident">checked_sub</span>(<span class="number">1</span>))
.<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">res</span>, <span class="prelude-val">None</span>);</pre></div>
<p>Since the last element is zero, it would underflow. Thus, the resulting
value is <code>None</code>.</p>
<p>Here is a variation on the previous example, showing that no
further elements are taken from <code>iter</code> after the first <code>None</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">let</span> <span class="ident">items</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[<span class="number">3_u16</span>, <span class="number">2</span>, <span class="number">1</span>, <span class="number">10</span>];
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">shared</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">let</span> <span class="ident">res</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u16</span><span class="op">&gt;</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">items</span>
.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">x</span><span class="op">|</span> { <span class="ident">shared</span> <span class="op">+</span><span class="op">=</span> <span class="ident">x</span>; <span class="ident">x</span>.<span class="ident">checked_sub</span>(<span class="number">2</span>) })
.<span class="ident">collect</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">res</span>, <span class="prelude-val">None</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">shared</span>, <span class="number">6</span>);</pre></div>
<p>Since the third element caused an underflow, no further elements were taken,
so the final value of <code>shared</code> is 6 (= <code>3 + 2 + 1</code>), not 16.</p>
</div></div><h3 id='impl-FromIterator%3C(K%2C%20V)%3E' class='impl'><code class='in-band'>impl&lt;K, V&gt; FromIterator&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>K, V<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt; for <a class="struct" href="../../../../nom/lib/std/collections/struct.BTreeMap.html" title="struct nom::lib::std::collections::BTreeMap">BTreeMap</a>&lt;K, V&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Ord.html" title="trait nom::lib::std::prelude::v1::v1::Ord">Ord</a>,&nbsp;</span></code><a href='#impl-FromIterator%3C(K%2C%20V)%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/btree/map.rs.html#1763-1769' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-19' class="method hidden"><code id='from_iter.v-20'>fn <a href='#method.from_iter-19' class='fnname'>from_iter</a>&lt;T&gt;(iter: T) -&gt; <a class="struct" href="../../../../nom/lib/std/collections/struct.BTreeMap.html" title="struct nom::lib::std::collections::BTreeMap">BTreeMap</a>&lt;K, V&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>K, V<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/btree/map.rs.html#1764-1768' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3C(K%2C%20V)%3E-1' class='impl'><code class='in-band'>impl&lt;K, V, S&gt; FromIterator&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>K, V<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt; for nom::lib::std::collections::<a class="struct" href="../../../../nom/lib/std/collections/struct.HashMap.html" title="struct nom::lib::std::collections::HashMap">HashMap</a>&lt;K, V, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Eq.html" title="trait nom::lib::std::prelude::v1::v1::Eq">Eq</a> + <a class="trait" href="../../../../nom/lib/std/hash/trait.Hash.html" title="trait nom::lib::std::hash::Hash">Hash</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="../../../../nom/lib/std/hash/trait.BuildHasher.html" title="trait nom::lib::std::hash::BuildHasher">BuildHasher</a> + <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Default.html" title="trait nom::lib::std::prelude::v1::v1::Default">Default</a>,&nbsp;</span></code><a href='#impl-FromIterator%3C(K%2C%20V)%3E-1' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#2366-2376' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-20' class="method hidden"><code id='from_iter.v-21'>fn <a href='#method.from_iter-20' class='fnname'>from_iter</a>&lt;T&gt;(iter: T) -&gt; <a class="struct" href="../../../../nom/lib/std/collections/struct.HashMap.html" title="struct nom::lib::std::collections::HashMap">HashMap</a>&lt;K, V, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a>K, V<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/std/collections/hash/map.rs.html#2371-2375' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; FromIterator&lt;T&gt; for <a class="struct" href="../../../../nom/lib/std/collections/struct.BTreeSet.html" title="struct nom::lib::std::collections::BTreeSet">BTreeSet</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Ord.html" title="trait nom::lib::std::prelude::v1::v1::Ord">Ord</a>,&nbsp;</span></code><a href='#impl-FromIterator%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/btree/set.rs.html#1018-1024' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-21' class="method hidden"><code id='from_iter.v-22'>fn <a href='#method.from_iter-21' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/collections/struct.BTreeSet.html" title="struct nom::lib::std::collections::BTreeSet">BTreeSet</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/btree/set.rs.html#1019-1023' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CT%3E-1' class='impl'><code class='in-band'>impl&lt;T&gt; FromIterator&lt;T&gt; for <a class="struct" href="../../../../nom/lib/std/collections/struct.BinaryHeap.html" title="struct nom::lib::std::collections::BinaryHeap">BinaryHeap</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Ord.html" title="trait nom::lib::std::prelude::v1::v1::Ord">Ord</a>,&nbsp;</span></code><a href='#impl-FromIterator%3CT%3E-1' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/binary_heap.rs.html#1303-1307' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-22' class="method hidden"><code id='from_iter.v-23'>fn <a href='#method.from_iter-22' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/collections/struct.BinaryHeap.html" title="struct nom::lib::std::collections::BinaryHeap">BinaryHeap</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/binary_heap.rs.html#1304-1306' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CT%3E-2' class='impl'><code class='in-band'>impl&lt;T&gt; FromIterator&lt;T&gt; for <a class="struct" href="../../../../nom/lib/std/collections/struct.LinkedList.html" title="struct nom::lib::std::collections::LinkedList">LinkedList</a>&lt;T&gt;</code><a href='#impl-FromIterator%3CT%3E-2' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/linked_list.rs.html#1675-1681' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-23' class="method hidden"><code id='from_iter.v-24'>fn <a href='#method.from_iter-23' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/collections/struct.LinkedList.html" title="struct nom::lib::std::collections::LinkedList">LinkedList</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/collections/linked_list.rs.html#1676-1680' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CT%3E-3' class='impl'><code class='in-band'>impl&lt;T&gt; FromIterator&lt;T&gt; for <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.Vec.html" title="struct nom::lib::std::prelude::v1::v1::Vec">Vec</a>&lt;T&gt;</code><a href='#impl-FromIterator%3CT%3E-3' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/vec.rs.html#1923-1928' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-24' class="method hidden"><code id='from_iter.v-25'>fn <a href='#method.from_iter-24' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/prelude/v1/v1/struct.Vec.html" title="struct nom::lib::std::prelude::v1::v1::Vec">Vec</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/vec.rs.html#1925-1927' title='goto source code'>[src]</a></h4></div><h3 id='impl-FromIterator%3CT%3E-4' class='impl'><code class='in-band'>impl&lt;T, S&gt; FromIterator&lt;T&gt; for nom::lib::std::collections::<a class="struct" href="../../../../nom/lib/std/collections/struct.HashSet.html" title="struct nom::lib::std::collections::HashSet">HashSet</a>&lt;T, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="../../../../nom/lib/std/hash/trait.BuildHasher.html" title="trait nom::lib::std::hash::BuildHasher">BuildHasher</a> + <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Default.html" title="trait nom::lib::std::prelude::v1::v1::Default">Default</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.Eq.html" title="trait nom::lib::std::prelude::v1::v1::Eq">Eq</a> + <a class="trait" href="../../../../nom/lib/std/hash/trait.Hash.html" title="trait nom::lib::std::hash::Hash">Hash</a>,&nbsp;</span></code><a href='#impl-FromIterator%3CT%3E-4' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/std/collections/hash/set.rs.html#939-950' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_iter-25' class="method hidden"><code id='from_iter.v-26'>fn <a href='#method.from_iter-25' class='fnname'>from_iter</a>&lt;I&gt;(iter: I) -&gt; <a class="struct" href="../../../../nom/lib/std/collections/struct.HashSet.html" title="struct nom::lib::std::collections::HashSet">HashSet</a>&lt;T, S&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="../../../../nom/lib/std/prelude/v1/v1/trait.IntoIterator.html" title="trait nom::lib::std::prelude::v1::v1::IntoIterator">IntoIterator</a>&lt;Item = T&gt;,&nbsp;</span></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/std/collections/hash/set.rs.html#945-949' title='goto source code'>[src]</a></h4></div></div><span class='loading-content'>Loading content...</span><script type="text/javascript" src="../../../../implementors/core/iter/traits/collect/trait.FromIterator.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../../";window.currentCrate = "nom";</script><script src="../../../../aliases.js"></script><script src="../../../../main.js"></script><script defer src="../../../../search-index.js"></script></body></html>