blob: ff9814d16205aac8f4a34e4b21ac74d568dc0dc4 [file] [log] [blame]
<!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="The enum `Either` with variants `Left` and `Right` is a general purpose sum type with two cases."><meta name="keywords" content="rust, rustlang, rust-lang, Either"><title>Either in itertools - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../normalize.css"><link rel="stylesheet" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../ayu.css" disabled><link rel="stylesheet" href="../dark.css" disabled><link rel="stylesheet" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../itertools/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../itertools/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Either</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Left">Left</a></li><li><a href="#variant.Right">Right</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.as_mut">as_mut</a></li><li><a href="#method.as_pin_mut">as_pin_mut</a></li><li><a href="#method.as_pin_ref">as_pin_ref</a></li><li><a href="#method.as_ref">as_ref</a></li><li><a href="#method.either">either</a></li><li><a href="#method.either_into">either_into</a></li><li><a href="#method.either_with">either_with</a></li><li><a href="#method.expect_left">expect_left</a></li><li><a href="#method.expect_right">expect_right</a></li><li><a href="#method.factor_err">factor_err</a></li><li><a href="#method.factor_first">factor_first</a></li><li><a href="#method.factor_none">factor_none</a></li><li><a href="#method.factor_ok">factor_ok</a></li><li><a href="#method.factor_second">factor_second</a></li><li><a href="#method.flip">flip</a></li><li><a href="#method.into_inner">into_inner</a></li><li><a href="#method.into_iter">into_iter</a></li><li><a href="#method.is_left">is_left</a></li><li><a href="#method.is_right">is_right</a></li><li><a href="#method.left">left</a></li><li><a href="#method.left_and_then">left_and_then</a></li><li><a href="#method.left_or">left_or</a></li><li><a href="#method.left_or_default">left_or_default</a></li><li><a href="#method.left_or_else">left_or_else</a></li><li><a href="#method.map">map</a></li><li><a href="#method.map_left">map_left</a></li><li><a href="#method.map_right">map_right</a></li><li><a href="#method.right">right</a></li><li><a href="#method.right_and_then">right_and_then</a></li><li><a href="#method.right_or">right_or</a></li><li><a href="#method.right_or_default">right_or_default</a></li><li><a href="#method.right_or_else">right_or_else</a></li><li><a href="#method.unwrap_left">unwrap_left</a></li><li><a href="#method.unwrap_right">unwrap_right</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsMut%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E">AsMut&lt;[Target]&gt;</a></li><li><a href="#impl-AsMut%3CCStr%3E-for-Either%3CL%2C%20R%3E">AsMut&lt;CStr&gt;</a></li><li><a href="#impl-AsMut%3COsStr%3E-for-Either%3CL%2C%20R%3E">AsMut&lt;OsStr&gt;</a></li><li><a href="#impl-AsMut%3CPath%3E-for-Either%3CL%2C%20R%3E">AsMut&lt;Path&gt;</a></li><li><a href="#impl-AsMut%3CTarget%3E-for-Either%3CL%2C%20R%3E">AsMut&lt;Target&gt;</a></li><li><a href="#impl-AsMut%3Cstr%3E-for-Either%3CL%2C%20R%3E">AsMut&lt;str&gt;</a></li><li><a href="#impl-AsRef%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E">AsRef&lt;[Target]&gt;</a></li><li><a href="#impl-AsRef%3CCStr%3E-for-Either%3CL%2C%20R%3E">AsRef&lt;CStr&gt;</a></li><li><a href="#impl-AsRef%3COsStr%3E-for-Either%3CL%2C%20R%3E">AsRef&lt;OsStr&gt;</a></li><li><a href="#impl-AsRef%3CPath%3E-for-Either%3CL%2C%20R%3E">AsRef&lt;Path&gt;</a></li><li><a href="#impl-AsRef%3CTarget%3E-for-Either%3CL%2C%20R%3E">AsRef&lt;Target&gt;</a></li><li><a href="#impl-AsRef%3Cstr%3E-for-Either%3CL%2C%20R%3E">AsRef&lt;str&gt;</a></li><li><a href="#impl-BufRead-for-Either%3CL%2C%20R%3E">BufRead</a></li><li><a href="#impl-Clone-for-Either%3CL%2C%20R%3E">Clone</a></li><li><a href="#impl-Copy-for-Either%3CL%2C%20R%3E">Copy</a></li><li><a href="#impl-Debug-for-Either%3CL%2C%20R%3E">Debug</a></li><li><a href="#impl-Deref-for-Either%3CL%2C%20R%3E">Deref</a></li><li><a href="#impl-DerefMut-for-Either%3CL%2C%20R%3E">DerefMut</a></li><li><a href="#impl-Display-for-Either%3CL%2C%20R%3E">Display</a></li><li><a href="#impl-DoubleEndedIterator-for-Either%3CL%2C%20R%3E">DoubleEndedIterator</a></li><li><a href="#impl-Eq-for-Either%3CL%2C%20R%3E">Eq</a></li><li><a href="#impl-Error-for-Either%3CL%2C%20R%3E">Error</a></li><li><a href="#impl-ExactSizeIterator-for-Either%3CL%2C%20R%3E">ExactSizeIterator</a></li><li><a href="#impl-Extend%3CA%3E-for-Either%3CL%2C%20R%3E">Extend&lt;A&gt;</a></li><li><a href="#impl-From%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E">From&lt;Result&lt;R, L&gt;&gt;</a></li><li><a href="#impl-FusedIterator-for-Either%3CL%2C%20R%3E">FusedIterator</a></li><li><a href="#impl-Future-for-Either%3CL%2C%20R%3E">Future</a></li><li><a href="#impl-Hash-for-Either%3CL%2C%20R%3E">Hash</a></li><li><a href="#impl-Into%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E">Into&lt;Result&lt;R, L&gt;&gt;</a></li><li><a href="#impl-Iterator-for-Either%3CL%2C%20R%3E">Iterator</a></li><li><a href="#impl-Ord-for-Either%3CL%2C%20R%3E">Ord</a></li><li><a href="#impl-PartialEq%3CEither%3CL%2C%20R%3E%3E-for-Either%3CL%2C%20R%3E">PartialEq&lt;Either&lt;L, R&gt;&gt;</a></li><li><a href="#impl-PartialOrd%3CEither%3CL%2C%20R%3E%3E-for-Either%3CL%2C%20R%3E">PartialOrd&lt;Either&lt;L, R&gt;&gt;</a></li><li><a href="#impl-Read-for-Either%3CL%2C%20R%3E">Read</a></li><li><a href="#impl-Seek-for-Either%3CL%2C%20R%3E">Seek</a></li><li><a href="#impl-StructuralEq-for-Either%3CL%2C%20R%3E">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Either%3CL%2C%20R%3E">StructuralPartialEq</a></li><li><a href="#impl-Write-for-Either%3CL%2C%20R%3E">Write</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Either%3CL%2C%20R%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Either%3CL%2C%20R%3E">Send</a></li><li><a href="#impl-Sync-for-Either%3CL%2C%20R%3E">Sync</a></li><li><a href="#impl-Unpin-for-Either%3CL%2C%20R%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Either%3CL%2C%20R%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Either%3CL%2C%20R%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Either%3CL%2C%20R%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Either%3CL%2C%20R%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-Either%3CL%2C%20R%3E">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-Either%3CL%2C%20R%3E">Into&lt;U&gt;</a></li><li><a href="#impl-IntoFuture-for-Either%3CL%2C%20R%3E">IntoFuture</a></li><li><a href="#impl-IntoIterator-for-Either%3CL%2C%20R%3E">IntoIterator</a></li><li><a href="#impl-Itertools-for-Either%3CL%2C%20R%3E">Itertools</a></li><li><a href="#impl-Provider-for-Either%3CL%2C%20R%3E">Provider</a></li><li><a href="#impl-ToOwned-for-Either%3CL%2C%20R%3E">ToOwned</a></li><li><a href="#impl-ToString-for-Either%3CL%2C%20R%3E">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Either%3CL%2C%20R%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Either%3CL%2C%20R%3E">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In itertools</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="index.html">itertools</a>::<wbr><a class="enum" href="#">Either</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/either/lib.rs.html#50">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Either&lt;L, R&gt; {
Left(L),
Right(R),
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The enum <code>Either</code> with variants <code>Left</code> and <code>Right</code> is a general purpose
sum type with two cases.</p>
<p>The <code>Either</code> type is symmetric and treats its variants the same way, without
preference.
(For representing success or error, use the regular <code>Result</code> enum instead.)</p>
</div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor"></a></h2><h3 id="variant.Left" class="variant small-section-header"><a href="#variant.Left" class="anchor field"></a><code>Left(L)</code></h3><div class="docblock"><p>A value of type <code>L</code>.</p>
</div><h3 id="variant.Right" class="variant small-section-header"><a href="#variant.Right" class="anchor field"></a><code>Right(R)</code></h3><div class="docblock"><p>A value of type <code>R</code>.</p>
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#151">source</a><a href="#impl-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#161">source</a><h4 class="code-header">pub fn <a href="#method.is_left" class="fnname">is_left</a>(&amp;self) -&gt; bool</h4></section></summary><div class="docblock"><p>Return true if the value is the <code>Left</code> variant.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>values = [Left(<span class="number">1</span>), Right(<span class="string">&quot;the right value&quot;</span>)];
<span class="macro">assert_eq!</span>(values[<span class="number">0</span>].is_left(), <span class="bool-val">true</span>);
<span class="macro">assert_eq!</span>(values[<span class="number">1</span>].is_left(), <span class="bool-val">false</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#177">source</a><h4 class="code-header">pub fn <a href="#method.is_right" class="fnname">is_right</a>(&amp;self) -&gt; bool</h4></section></summary><div class="docblock"><p>Return true if the value is the <code>Right</code> variant.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>values = [Left(<span class="number">1</span>), Right(<span class="string">&quot;the right value&quot;</span>)];
<span class="macro">assert_eq!</span>(values[<span class="number">0</span>].is_right(), <span class="bool-val">false</span>);
<span class="macro">assert_eq!</span>(values[<span class="number">1</span>].is_right(), <span class="bool-val">true</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#192">source</a><h4 class="code-header">pub fn <a href="#method.left" class="fnname">left</a>(self) -&gt; Option&lt;L&gt;</h4></section></summary><div class="docblock"><p>Convert the left side of <code>Either&lt;L, R&gt;</code> to an <code>Option&lt;L&gt;</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, ()&gt; = Left(<span class="string">&quot;some value&quot;</span>);
<span class="macro">assert_eq!</span>(left.left(), <span class="prelude-val">Some</span>(<span class="string">&quot;some value&quot;</span>));
<span class="kw">let </span>right: Either&lt;(), <span class="kw">_</span>&gt; = Right(<span class="number">321</span>);
<span class="macro">assert_eq!</span>(right.left(), <span class="prelude-val">None</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#210">source</a><h4 class="code-header">pub fn <a href="#method.right" class="fnname">right</a>(self) -&gt; Option&lt;R&gt;</h4></section></summary><div class="docblock"><p>Convert the right side of <code>Either&lt;L, R&gt;</code> to an <code>Option&lt;R&gt;</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, ()&gt; = Left(<span class="string">&quot;some value&quot;</span>);
<span class="macro">assert_eq!</span>(left.right(), <span class="prelude-val">None</span>);
<span class="kw">let </span>right: Either&lt;(), <span class="kw">_</span>&gt; = Right(<span class="number">321</span>);
<span class="macro">assert_eq!</span>(right.right(), <span class="prelude-val">Some</span>(<span class="number">321</span>));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#228">source</a><h4 class="code-header">pub fn <a href="#method.as_ref" class="fnname">as_ref</a>(&amp;self) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;&amp;L, &amp;R&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>&amp;Either&lt;L, R&gt;</code> to <code>Either&lt;&amp;L, &amp;R&gt;</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, ()&gt; = Left(<span class="string">&quot;some value&quot;</span>);
<span class="macro">assert_eq!</span>(left.as_ref(), Left(<span class="kw-2">&amp;</span><span class="string">&quot;some value&quot;</span>));
<span class="kw">let </span>right: Either&lt;(), <span class="kw">_</span>&gt; = Right(<span class="string">&quot;some value&quot;</span>);
<span class="macro">assert_eq!</span>(right.as_ref(), Right(<span class="kw-2">&amp;</span><span class="string">&quot;some value&quot;</span>));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#253">source</a><h4 class="code-header">pub fn <a href="#method.as_mut" class="fnname">as_mut</a>(&amp;mut self) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;&amp;mut L, &amp;mut R&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>&amp;mut Either&lt;L, R&gt;</code> to <code>Either&lt;&amp;mut L, &amp;mut R&gt;</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">fn </span>mutate_left(value: <span class="kw-2">&amp;mut </span>Either&lt;u32, u32&gt;) {
<span class="kw">if let </span><span class="prelude-val">Some</span>(l) = value.as_mut().left() {
<span class="kw-2">*</span>l = <span class="number">999</span>;
}
}
<span class="kw">let </span><span class="kw-2">mut </span>left = Left(<span class="number">123</span>);
<span class="kw">let </span><span class="kw-2">mut </span>right = Right(<span class="number">123</span>);
mutate_left(<span class="kw-2">&amp;mut </span>left);
mutate_left(<span class="kw-2">&amp;mut </span>right);
<span class="macro">assert_eq!</span>(left, Left(<span class="number">999</span>));
<span class="macro">assert_eq!</span>(right, Right(<span class="number">123</span>));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_pin_ref" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#262">source</a><h4 class="code-header">pub fn <a href="#method.as_pin_ref" class="fnname">as_pin_ref</a>(self: Pin&lt;&amp;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;&gt;) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;Pin&lt;&amp;L&gt;, Pin&lt;&amp;R&gt;&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>Pin&lt;&amp;Either&lt;L, R&gt;&gt;</code> to <code>Either&lt;Pin&lt;&amp;L&gt;, Pin&lt;&amp;R&gt;&gt;</code>,
pinned projections of the inner variants.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_pin_mut" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#275">source</a><h4 class="code-header">pub fn <a href="#method.as_pin_mut" class="fnname">as_pin_mut</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;&gt;<br>) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;Pin&lt;&amp;mut L&gt;, Pin&lt;&amp;mut R&gt;&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>Pin&lt;&amp;mut Either&lt;L, R&gt;&gt;</code> to <code>Either&lt;Pin&lt;&amp;mut L&gt;, Pin&lt;&amp;mut R&gt;&gt;</code>,
pinned projections of the inner variants.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.flip" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#300">source</a><h4 class="code-header">pub fn <a href="#method.flip" class="fnname">flip</a>(self) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;R, L&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>Either&lt;L, R&gt;</code> to <code>Either&lt;R, L&gt;</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, ()&gt; = Left(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(left.flip(), Right(<span class="number">123</span>));
<span class="kw">let </span>right: Either&lt;(), <span class="kw">_</span>&gt; = Right(<span class="string">&quot;some value&quot;</span>);
<span class="macro">assert_eq!</span>(right.flip(), Left(<span class="string">&quot;some value&quot;</span>));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#319-321">source</a><h4 class="code-header">pub fn <a href="#method.map_left" class="fnname">map_left</a>&lt;F, M&gt;(self, f: F) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;M, R&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(L) -&gt; M,</span></h4></section></summary><div class="docblock"><p>Apply the function <code>f</code> on the value in the <code>Left</code> variant if it is present rewrapping the
result in <code>Left</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, u32&gt; = Left(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(left.map_left(|x| x * <span class="number">2</span>), Left(<span class="number">246</span>));
<span class="kw">let </span>right: Either&lt;u32, <span class="kw">_</span>&gt; = Right(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(right.map_left(|x| x * <span class="number">2</span>), Right(<span class="number">123</span>));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#341-343">source</a><h4 class="code-header">pub fn <a href="#method.map_right" class="fnname">map_right</a>&lt;F, S&gt;(self, f: F) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, S&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(R) -&gt; S,</span></h4></section></summary><div class="docblock"><p>Apply the function <code>f</code> on the value in the <code>Right</code> variant if it is present rewrapping the
result in <code>Right</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, u32&gt; = Left(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(left.map_right(|x| x * <span class="number">2</span>), Left(<span class="number">123</span>));
<span class="kw">let </span>right: Either&lt;u32, <span class="kw">_</span>&gt; = Right(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(right.map_right(|x| x * <span class="number">2</span>), Right(<span class="number">246</span>));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.either" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#367-370">source</a><h4 class="code-header">pub fn <a href="#method.either" class="fnname">either</a>&lt;F, G, T&gt;(self, f: F, g: G) -&gt; T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(L) -&gt; T,<br>&nbsp;&nbsp;&nbsp;&nbsp;G: FnOnce(R) -&gt; T,</span></h4></section></summary><div class="docblock"><p>Apply one of two functions depending on contents, unifying their result. If the value is
<code>Left(L)</code> then the first function <code>f</code> is applied; if it is <code>Right(R)</code> then the second
function <code>g</code> is applied.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">fn </span>square(n: u32) -&gt; i32 { (n * n) <span class="kw">as </span>i32 }
<span class="kw">fn </span>negate(n: i32) -&gt; i32 { -n }
<span class="kw">let </span>left: Either&lt;u32, i32&gt; = Left(<span class="number">4</span>);
<span class="macro">assert_eq!</span>(left.either(square, negate), <span class="number">16</span>);
<span class="kw">let </span>right: Either&lt;u32, i32&gt; = Right(-<span class="number">4</span>);
<span class="macro">assert_eq!</span>(right.either(square, negate), <span class="number">4</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.either_with" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#397-400">source</a><h4 class="code-header">pub fn <a href="#method.either_with" class="fnname">either_with</a>&lt;Ctx, F, G, T&gt;(self, ctx: Ctx, f: F, g: G) -&gt; T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(Ctx, L) -&gt; T,<br>&nbsp;&nbsp;&nbsp;&nbsp;G: FnOnce(Ctx, R) -&gt; T,</span></h4></section></summary><div class="docblock"><p>Like <code>either</code>, but provide some context to whichever of the
functions ends up being called.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// In this example, the context is a mutable reference
</span><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span><span class="kw-2">mut </span>result = Vec::new();
<span class="kw">let </span>values = <span class="macro">vec!</span>[Left(<span class="number">2</span>), Right(<span class="number">2.7</span>)];
<span class="kw">for </span>value <span class="kw">in </span>values {
value.either_with(<span class="kw-2">&amp;mut </span>result,
|ctx, integer| ctx.push(integer),
|ctx, real| ctx.push(f64::round(real) <span class="kw">as </span>i32));
}
<span class="macro">assert_eq!</span>(result, <span class="macro">vec!</span>[<span class="number">2</span>, <span class="number">3</span>]);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_and_then" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#419-421">source</a><h4 class="code-header">pub fn <a href="#method.left_and_then" class="fnname">left_and_then</a>&lt;F, S&gt;(self, f: F) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;S, R&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(L) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;S, R&gt;,</span></h4></section></summary><div class="docblock"><p>Apply the function <code>f</code> on the value in the <code>Left</code> variant if it is present.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, u32&gt; = Left(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(left.left_and_then::&lt;<span class="kw">_</span>,()&gt;(|x| Right(x * <span class="number">2</span>)), Right(<span class="number">246</span>));
<span class="kw">let </span>right: Either&lt;u32, <span class="kw">_</span>&gt; = Right(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(right.left_and_then(|x| Right::&lt;(), <span class="kw">_</span>&gt;(x * <span class="number">2</span>)), Right(<span class="number">123</span>));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_and_then" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#440-442">source</a><h4 class="code-header">pub fn <a href="#method.right_and_then" class="fnname">right_and_then</a>&lt;F, S&gt;(self, f: F) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, S&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(R) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, S&gt;,</span></h4></section></summary><div class="docblock"><p>Apply the function <code>f</code> on the value in the <code>Right</code> variant if it is present.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, u32&gt; = Left(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(left.right_and_then(|x| Right(x * <span class="number">2</span>)), Left(<span class="number">123</span>));
<span class="kw">let </span>right: Either&lt;u32, <span class="kw">_</span>&gt; = Right(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(right.right_and_then(|x| Right(x * <span class="number">2</span>)), Right(<span class="number">246</span>));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_iter" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#461-464">source</a><h4 class="code-header">pub fn <a href="#method.into_iter" class="fnname">into_iter</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self<br>) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;&lt;L as IntoIterator&gt;::IntoIter, &lt;R as IntoIterator&gt;::IntoIter&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: IntoIterator&lt;Item = &lt;L as IntoIterator&gt;::Item&gt;,</span></h4></section></summary><div class="docblock"><p>Convert the inner value to an iterator.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, Vec&lt;u32&gt;&gt; = Left(<span class="macro">vec!</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="kw-2">mut </span>right: Either&lt;Vec&lt;u32&gt;, <span class="kw">_</span>&gt; = Right(<span class="macro">vec!</span>[]);
right.extend(left.into_iter());
<span class="macro">assert_eq!</span>(right, Right(<span class="macro">vec!</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>]));</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_or" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#490">source</a><h4 class="code-header">pub fn <a href="#method.left_or" class="fnname">left_or</a>(self, other: L) -&gt; L</h4></section></summary><div class="docblock"><p>Return left value or given value</p>
<p>Arguments passed to <code>left_or</code> are eagerly evaluated; if you are passing
the result of a function call, it is recommended to use <a href="#method.left_or_else"><code>left_or_else</code></a>,
which is lazily evaluated.</p>
<h5 id="examples"><a href="#examples">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;<span class="kw-2">&amp;</span>str, <span class="kw-2">&amp;</span>str&gt; = Left(<span class="string">&quot;left&quot;</span>);
<span class="macro">assert_eq!</span>(left.left_or(<span class="string">&quot;foo&quot;</span>), <span class="string">&quot;left&quot;</span>);
<span class="kw">let </span>right: Either&lt;<span class="kw-2">&amp;</span>str, <span class="kw-2">&amp;</span>str&gt; = Right(<span class="string">&quot;right&quot;</span>);
<span class="macro">assert_eq!</span>(right.left_or(<span class="string">&quot;left&quot;</span>), <span class="string">&quot;left&quot;</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_or_default" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#509-511">source</a><h4 class="code-header">pub fn <a href="#method.left_or_default" class="fnname">left_or_default</a>(self) -&gt; L<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Default,</span></h4></section></summary><div class="docblock"><p>Return left or a default</p>
<h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;String, u32&gt; = Left(<span class="string">&quot;left&quot;</span>.to_string());
<span class="macro">assert_eq!</span>(left.left_or_default(), <span class="string">&quot;left&quot;</span>);
<span class="kw">let </span>right: Either&lt;String, u32&gt; = Right(<span class="number">42</span>);
<span class="macro">assert_eq!</span>(right.left_or_default(), String::default());</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_or_else" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#531-533">source</a><h4 class="code-header">pub fn <a href="#method.left_or_else" class="fnname">left_or_else</a>&lt;F&gt;(self, f: F) -&gt; L<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(R) -&gt; L,</span></h4></section></summary><div class="docblock"><p>Returns left value or computes it from a closure</p>
<h5 id="examples-2"><a href="#examples-2">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;String, u32&gt; = Left(<span class="string">&quot;3&quot;</span>.to_string());
<span class="macro">assert_eq!</span>(left.left_or_else(|<span class="kw">_</span>| <span class="macro">unreachable!</span>()), <span class="string">&quot;3&quot;</span>);
<span class="kw">let </span>right: Either&lt;String, u32&gt; = Right(<span class="number">3</span>);
<span class="macro">assert_eq!</span>(right.left_or_else(|x| x.to_string()), <span class="string">&quot;3&quot;</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_or" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#559">source</a><h4 class="code-header">pub fn <a href="#method.right_or" class="fnname">right_or</a>(self, other: R) -&gt; R</h4></section></summary><div class="docblock"><p>Return right value or given value</p>
<p>Arguments passed to <code>right_or</code> are eagerly evaluated; if you are passing
the result of a function call, it is recommended to use <a href="#method.right_or_else"><code>right_or_else</code></a>,
which is lazily evaluated.</p>
<h5 id="examples-3"><a href="#examples-3">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>right: Either&lt;<span class="kw-2">&amp;</span>str, <span class="kw-2">&amp;</span>str&gt; = Right(<span class="string">&quot;right&quot;</span>);
<span class="macro">assert_eq!</span>(right.right_or(<span class="string">&quot;foo&quot;</span>), <span class="string">&quot;right&quot;</span>);
<span class="kw">let </span>left: Either&lt;<span class="kw-2">&amp;</span>str, <span class="kw-2">&amp;</span>str&gt; = Left(<span class="string">&quot;left&quot;</span>);
<span class="macro">assert_eq!</span>(left.right_or(<span class="string">&quot;right&quot;</span>), <span class="string">&quot;right&quot;</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_or_default" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#578-580">source</a><h4 class="code-header">pub fn <a href="#method.right_or_default" class="fnname">right_or_default</a>(self) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Default,</span></h4></section></summary><div class="docblock"><p>Return right or a default</p>
<h5 id="examples-4"><a href="#examples-4">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;String, u32&gt; = Left(<span class="string">&quot;left&quot;</span>.to_string());
<span class="macro">assert_eq!</span>(left.right_or_default(), u32::default());
<span class="kw">let </span>right: Either&lt;String, u32&gt; = Right(<span class="number">42</span>);
<span class="macro">assert_eq!</span>(right.right_or_default(), <span class="number">42</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_or_else" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#600-602">source</a><h4 class="code-header">pub fn <a href="#method.right_or_else" class="fnname">right_or_else</a>&lt;F&gt;(self, f: F) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(L) -&gt; R,</span></h4></section></summary><div class="docblock"><p>Returns right value or computes it from a closure</p>
<h5 id="examples-5"><a href="#examples-5">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;String, u32&gt; = Left(<span class="string">&quot;3&quot;</span>.to_string());
<span class="macro">assert_eq!</span>(left.right_or_else(|x| x.parse().unwrap()), <span class="number">3</span>);
<span class="kw">let </span>right: Either&lt;String, u32&gt; = Right(<span class="number">3</span>);
<span class="macro">assert_eq!</span>(right.right_or_else(|<span class="kw">_</span>| <span class="macro">unreachable!</span>()), <span class="number">3</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unwrap_left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#629-631">source</a><h4 class="code-header">pub fn <a href="#method.unwrap_left" class="fnname">unwrap_left</a>(self) -&gt; L<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Debug,</span></h4></section></summary><div class="docblock"><p>Returns the left value</p>
<h5 id="examples-6"><a href="#examples-6">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, ()&gt; = Left(<span class="number">3</span>);
<span class="macro">assert_eq!</span>(left.unwrap_left(), <span class="number">3</span>);</code></pre></div>
<h5 id="panics"><a href="#panics">Panics</a></h5>
<p>When <code>Either</code> is a <code>Right</code> value</p>
<div class="example-wrap should_panic"><div class='tooltip'></div><pre class="rust rust-example-rendered"><code><span class="kw">let </span>right: Either&lt;(), <span class="kw">_</span>&gt; = Right(<span class="number">3</span>);
right.unwrap_left();</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unwrap_right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#660-662">source</a><h4 class="code-header">pub fn <a href="#method.unwrap_right" class="fnname">unwrap_right</a>(self) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Debug,</span></h4></section></summary><div class="docblock"><p>Returns the right value</p>
<h5 id="examples-7"><a href="#examples-7">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>right: Either&lt;(), <span class="kw">_</span>&gt; = Right(<span class="number">3</span>);
<span class="macro">assert_eq!</span>(right.unwrap_right(), <span class="number">3</span>);</code></pre></div>
<h5 id="panics-1"><a href="#panics-1">Panics</a></h5>
<p>When <code>Either</code> is a <code>Left</code> value</p>
<div class="example-wrap should_panic"><div class='tooltip'></div><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, ()&gt; = Left(<span class="number">3</span>);
left.unwrap_right();</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.expect_left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#689-691">source</a><h4 class="code-header">pub fn <a href="#method.expect_left" class="fnname">expect_left</a>(self, msg: &amp;str) -&gt; L<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Debug,</span></h4></section></summary><div class="docblock"><p>Returns the left value</p>
<h5 id="examples-8"><a href="#examples-8">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, ()&gt; = Left(<span class="number">3</span>);
<span class="macro">assert_eq!</span>(left.expect_left(<span class="string">&quot;value was Right&quot;</span>), <span class="number">3</span>);</code></pre></div>
<h5 id="panics-2"><a href="#panics-2">Panics</a></h5>
<p>When <code>Either</code> is a <code>Right</code> value</p>
<div class="example-wrap should_panic"><div class='tooltip'></div><pre class="rust rust-example-rendered"><code><span class="kw">let </span>right: Either&lt;(), <span class="kw">_</span>&gt; = Right(<span class="number">3</span>);
right.expect_left(<span class="string">&quot;value was Right&quot;</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.expect_right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#718-720">source</a><h4 class="code-header">pub fn <a href="#method.expect_right" class="fnname">expect_right</a>(self, msg: &amp;str) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Debug,</span></h4></section></summary><div class="docblock"><p>Returns the right value</p>
<h5 id="examples-9"><a href="#examples-9">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>right: Either&lt;(), <span class="kw">_</span>&gt; = Right(<span class="number">3</span>);
<span class="macro">assert_eq!</span>(right.expect_right(<span class="string">&quot;value was Left&quot;</span>), <span class="number">3</span>);</code></pre></div>
<h5 id="panics-3"><a href="#panics-3">Panics</a></h5>
<p>When <code>Either</code> is a <code>Left</code> value</p>
<div class="example-wrap should_panic"><div class='tooltip'></div><pre class="rust rust-example-rendered"><code><span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, ()&gt; = Left(<span class="number">3</span>);
left.expect_right(<span class="string">&quot;value was Right&quot;</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.either_into" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#740-743">source</a><h4 class="code-header">pub fn <a href="#method.either_into" class="fnname">either_into</a>&lt;T&gt;(self) -&gt; T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Into&lt;T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Into&lt;T&gt;,</span></h4></section></summary><div class="docblock"><p>Convert the contained value into <code>T</code></p>
<h5 id="examples-10"><a href="#examples-10">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Both u16 and u32 can be converted to u64.
</span><span class="kw">let </span>left: Either&lt;u16, u32&gt; = Left(<span class="number">3u16</span>);
<span class="macro">assert_eq!</span>(left.either_into::&lt;u64&gt;(), <span class="number">3u64</span>);
<span class="kw">let </span>right: Either&lt;u16, u32&gt; = Right(<span class="number">7u32</span>);
<span class="macro">assert_eq!</span>(right.either_into::&lt;u64&gt;(), <span class="number">7u64</span>);</code></pre></div>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3COption%3CL%3E%2C%20Option%3CR%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#752">source</a><a href="#impl-Either%3COption%3CL%3E%2C%20Option%3CR%3E%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;Option&lt;L&gt;, Option&lt;R&gt;&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_none" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#765">source</a><h4 class="code-header">pub fn <a href="#method.factor_none" class="fnname">factor_none</a>(self) -&gt; Option&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;&gt;</h4></section></summary><div class="docblock"><p>Factors out <code>None</code> from an <code>Either</code> of [<code>Option</code>].</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, <span class="prelude-ty">Option</span>&lt;String&gt;&gt; = Left(<span class="prelude-val">Some</span>(<span class="macro">vec!</span>[<span class="number">0</span>]));
<span class="macro">assert_eq!</span>(left.factor_none(), <span class="prelude-val">Some</span>(Left(<span class="macro">vec!</span>[<span class="number">0</span>])));
<span class="kw">let </span>right: Either&lt;<span class="prelude-ty">Option</span>&lt;Vec&lt;u8&gt;&gt;, <span class="kw">_</span>&gt; = Right(<span class="prelude-val">Some</span>(String::new()));
<span class="macro">assert_eq!</span>(right.factor_none(), <span class="prelude-val">Some</span>(Right(String::new())));</code></pre></div>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3CResult%3CL%2C%20E%3E%2C%20Result%3CR%2C%20E%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#773">source</a><a href="#impl-Either%3CResult%3CL%2C%20E%3E%2C%20Result%3CR%2C%20E%3E%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R, E&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;Result&lt;L, E&gt;, Result&lt;R, E&gt;&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_err" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#788">source</a><h4 class="code-header">pub fn <a href="#method.factor_err" class="fnname">factor_err</a>(self) -&gt; Result&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;, E&gt;</h4></section></summary><div class="docblock"><p>Factors out a homogenous type from an <code>Either</code> of [<code>Result</code>].</p>
<p>Here, the homogeneous type is the <code>Err</code> type of the [<code>Result</code>].</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, <span class="prelude-ty">Result</span>&lt;String, u32&gt;&gt; = Left(<span class="prelude-val">Ok</span>(<span class="macro">vec!</span>[<span class="number">0</span>]));
<span class="macro">assert_eq!</span>(left.factor_err(), <span class="prelude-val">Ok</span>(Left(<span class="macro">vec!</span>[<span class="number">0</span>])));
<span class="kw">let </span>right: Either&lt;<span class="prelude-ty">Result</span>&lt;Vec&lt;u8&gt;, u32&gt;, <span class="kw">_</span>&gt; = Right(<span class="prelude-val">Ok</span>(String::new()));
<span class="macro">assert_eq!</span>(right.factor_err(), <span class="prelude-val">Ok</span>(Right(String::new())));</code></pre></div>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3CResult%3CT%2C%20L%3E%2C%20Result%3CT%2C%20R%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#796">source</a><a href="#impl-Either%3CResult%3CT%2C%20L%3E%2C%20Result%3CT%2C%20R%3E%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, L, R&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;Result&lt;T, L&gt;, Result&lt;T, R&gt;&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_ok" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#811">source</a><h4 class="code-header">pub fn <a href="#method.factor_ok" class="fnname">factor_ok</a>(self) -&gt; Result&lt;T, <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;&gt;</h4></section></summary><div class="docblock"><p>Factors out a homogenous type from an <code>Either</code> of [<code>Result</code>].</p>
<p>Here, the homogeneous type is the <code>Ok</code> type of the [<code>Result</code>].</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, <span class="prelude-ty">Result</span>&lt;u32, String&gt;&gt; = Left(<span class="prelude-val">Err</span>(<span class="macro">vec!</span>[<span class="number">0</span>]));
<span class="macro">assert_eq!</span>(left.factor_ok(), <span class="prelude-val">Err</span>(Left(<span class="macro">vec!</span>[<span class="number">0</span>])));
<span class="kw">let </span>right: Either&lt;<span class="prelude-ty">Result</span>&lt;u32, Vec&lt;u8&gt;&gt;, <span class="kw">_</span>&gt; = Right(<span class="prelude-val">Err</span>(String::new()));
<span class="macro">assert_eq!</span>(right.factor_ok(), <span class="prelude-val">Err</span>(Right(String::new())));</code></pre></div>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3C(T%2C%20L)%2C%20(T%2C%20R)%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#819">source</a><a href="#impl-Either%3C(T%2C%20L)%2C%20(T%2C%20R)%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, L, R&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;(T, L), (T, R)&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_first" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#832">source</a><h4 class="code-header">pub fn <a href="#method.factor_first" class="fnname">factor_first</a>(self) -&gt; (T, <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;)</h4></section></summary><div class="docblock"><p>Factor out a homogeneous type from an either of pairs.</p>
<p>Here, the homogeneous type is the first element of the pairs.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, (u32, String)&gt; = Left((<span class="number">123</span>, <span class="macro">vec!</span>[<span class="number">0</span>]));
<span class="macro">assert_eq!</span>(left.factor_first().<span class="number">0</span>, <span class="number">123</span>);
<span class="kw">let </span>right: Either&lt;(u32, Vec&lt;u8&gt;), <span class="kw">_</span>&gt; = Right((<span class="number">123</span>, String::new()));
<span class="macro">assert_eq!</span>(right.factor_first().<span class="number">0</span>, <span class="number">123</span>);</code></pre></div>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3C(L%2C%20T)%2C%20(R%2C%20T)%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#840">source</a><a href="#impl-Either%3C(L%2C%20T)%2C%20(R%2C%20T)%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, L, R&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;(L, T), (R, T)&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_second" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#853">source</a><h4 class="code-header">pub fn <a href="#method.factor_second" class="fnname">factor_second</a>(self) -&gt; (<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;, T)</h4></section></summary><div class="docblock"><p>Factor out a homogeneous type from an either of pairs.</p>
<p>Here, the homogeneous type is the second element of the pairs.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, (String, u32)&gt; = Left((<span class="macro">vec!</span>[<span class="number">0</span>], <span class="number">123</span>));
<span class="macro">assert_eq!</span>(left.factor_second().<span class="number">1</span>, <span class="number">123</span>);
<span class="kw">let </span>right: Either&lt;(Vec&lt;u8&gt;, u32), <span class="kw">_</span>&gt; = Right((String::new(), <span class="number">123</span>));
<span class="macro">assert_eq!</span>(right.factor_second().<span class="number">1</span>, <span class="number">123</span>);</code></pre></div>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3CT%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#861">source</a><a href="#impl-Either%3CT%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;T, T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_inner" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#873">source</a><h4 class="code-header">pub fn <a href="#method.into_inner" class="fnname">into_inner</a>(self) -&gt; T</h4></section></summary><div class="docblock"><p>Extract the value of an either over two equivalent types.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>left: Either&lt;<span class="kw">_</span>, u32&gt; = Left(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(left.into_inner(), <span class="number">123</span>);
<span class="kw">let </span>right: Either&lt;u32, <span class="kw">_</span>&gt; = Right(<span class="number">123</span>);
<span class="macro">assert_eq!</span>(right.into_inner(), <span class="number">123</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#888-890">source</a><h4 class="code-header">pub fn <a href="#method.map" class="fnname">map</a>&lt;F, M&gt;(self, f: F) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;M, M&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(T) -&gt; M,</span></h4></section></summary><div class="docblock"><p>Map <code>f</code> over the contained value and return the result in the
corresponding variant.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>either::<span class="kw-2">*</span>;
<span class="kw">let </span>value: Either&lt;<span class="kw">_</span>, i32&gt; = Right(<span class="number">42</span>);
<span class="kw">let </span>other = value.map(|x| x * <span class="number">2</span>);
<span class="macro">assert_eq!</span>(other, Right(<span class="number">84</span>));</code></pre></div>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsMut%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1247">source</a><a href="#impl-AsMut%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R, Target&gt; AsMut&lt;[Target]&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsMut&lt;[Target]&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsMut&lt;[Target]&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1252">source</a><a href="#method.as_mut-4" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&amp;mut self) -&gt; &amp;mut [Target]</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsMut%3CCStr%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1221-1225">source</a><a href="#impl-AsMut%3CCStr%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; AsMut&lt;CStr&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsMut&lt;CStr&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsMut&lt;CStr&gt;,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1221-1225">source</a><a href="#method.as_mut-5" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&amp;mut self) -&gt; &amp;mut CStr</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsMut%3COsStr%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1216-1220">source</a><a href="#impl-AsMut%3COsStr%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; AsMut&lt;OsStr&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsMut&lt;OsStr&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsMut&lt;OsStr&gt;,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1216-1220">source</a><a href="#method.as_mut-2" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&amp;mut self) -&gt; &amp;mut OsStr</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsMut%3CPath%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1211-1215">source</a><a href="#impl-AsMut%3CPath%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; AsMut&lt;Path&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsMut&lt;Path&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsMut&lt;Path&gt;,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1211-1215">source</a><a href="#method.as_mut-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&amp;mut self) -&gt; &amp;mut Path</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsMut%3CTarget%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1237">source</a><a href="#impl-AsMut%3CTarget%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R, Target&gt; AsMut&lt;Target&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsMut&lt;Target&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsMut&lt;Target&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1242">source</a><a href="#method.as_mut-3" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&amp;mut self) -&gt; &amp;mut Target</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsMut%3Cstr%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1210">source</a><a href="#impl-AsMut%3Cstr%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; AsMut&lt;str&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsMut&lt;str&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsMut&lt;str&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1210">source</a><a href="#method.as_mut-6" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&amp;mut self) -&gt; &amp;mut str</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsRef%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1227">source</a><a href="#impl-AsRef%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R, Target&gt; AsRef&lt;[Target]&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsRef&lt;[Target]&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsRef&lt;[Target]&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1232">source</a><a href="#method.as_ref-6" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&amp;self) -&gt; &amp;[Target]</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsRef%3CCStr%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1221-1225">source</a><a href="#impl-AsRef%3CCStr%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; AsRef&lt;CStr&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsRef&lt;CStr&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsRef&lt;CStr&gt;,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1221-1225">source</a><a href="#method.as_ref-4" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&amp;self) -&gt; &amp;CStr</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsRef%3COsStr%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1216-1220">source</a><a href="#impl-AsRef%3COsStr%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; AsRef&lt;OsStr&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsRef&lt;OsStr&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsRef&lt;OsStr&gt;,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1216-1220">source</a><a href="#method.as_ref-2" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&amp;self) -&gt; &amp;OsStr</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsRef%3CPath%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1211-1215">source</a><a href="#impl-AsRef%3CPath%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; AsRef&lt;Path&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsRef&lt;Path&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsRef&lt;Path&gt;,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1211-1215">source</a><a href="#method.as_ref-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&amp;self) -&gt; &amp;Path</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsRef%3CTarget%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1178">source</a><a href="#impl-AsRef%3CTarget%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R, Target&gt; AsRef&lt;Target&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsRef&lt;Target&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsRef&lt;Target&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1183">source</a><a href="#method.as_ref-5" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&amp;self) -&gt; &amp;Target</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsRef%3Cstr%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1210">source</a><a href="#impl-AsRef%3Cstr%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; AsRef&lt;str&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: AsRef&lt;str&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsRef&lt;str&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1210">source</a><a href="#method.as_ref-3" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&amp;self) -&gt; &amp;str</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BufRead-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1130">source</a><a href="#impl-BufRead-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; BufRead for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: BufRead,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: BufRead,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>&quot;use_std&quot;</code></p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fill_buf" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1135">source</a><a href="#method.fill_buf" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fill_buf</a>(&amp;mut self) -&gt; Result&lt;&amp;[u8], Error&gt;</h4></section></summary><div class='docblock'>Returns the contents of the internal buffer, filling it with more data
from the inner reader if it is empty. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.consume" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1139">source</a><a href="#method.consume" class="anchor"></a><h4 class="code-header">fn <a class="fnname">consume</a>(&amp;mut self, amt: usize)</h4></section></summary><div class='docblock'>Tells this buffer that <code>amt</code> bytes have been consumed from the buffer,
so they should no longer be returned in calls to <code>read</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_until" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1143">source</a><a href="#method.read_until" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_until</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;byte: u8,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;mut Vec&lt;u8, Global&gt;<br>) -&gt; Result&lt;usize, Error&gt;</h4></section></summary><div class='docblock'>Read all bytes into <code>buf</code> until the delimiter <code>byte</code> or EOF is reached. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_line" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1147">source</a><a href="#method.read_line" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_line</a>(&amp;mut self, buf: &amp;mut String) -&gt; Result&lt;usize, Error&gt;</h4></section></summary><div class='docblock'>Read all bytes until a newline (the <code>0xA</code> byte) is reached, and append
them to the provided buffer. You do not need to clear the buffer before
appending. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.has_data_left" class="method trait-impl has-srclink"><a href="#method.has_data_left" class="anchor"></a><h4 class="code-header">fn <a class="fnname">has_data_left</a>(&amp;mut self) -&gt; Result&lt;bool, Error&gt;</h4></section></summary><div class='docblock'>Check if the underlying <code>Read</code> has any data left to be read. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.split" class="method trait-impl has-srclink"><a href="#method.split" class="anchor"></a><h4 class="code-header">fn <a class="fnname">split</a>(self, byte: u8) -&gt; Split&lt;Self&gt;</h4></section></summary><div class='docblock'>Returns an iterator over the contents of this reader split on the byte
<code>byte</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lines" class="method trait-impl has-srclink"><a href="#method.lines" class="anchor"></a><h4 class="code-header">fn <a class="fnname">lines</a>(self) -&gt; Lines&lt;Self&gt;</h4></section></summary><div class='docblock'>Returns an iterator over the lines of this reader. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#134">source</a><a href="#impl-Clone-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Clone for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Clone,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#135">source</a><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a class="fnname">clone</a>(&amp;self) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class='docblock'>Returns a copy of the value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#142">source</a><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">clone_from</a>(&amp;mut self, source: &amp;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-Debug-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Debug for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Debug,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Debug,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt</a>(&amp;self, f: &amp;mut Formatter&lt;'_&gt;) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deref-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1257">source</a><a href="#impl-Deref-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Deref for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Deref,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Deref&lt;Target = &lt;L as Deref&gt;::Target&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Target" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Target</a> = &lt;L as Deref&gt;::Target</h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1264">source</a><a href="#method.deref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">deref</a>(&amp;self) -&gt; &amp;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Deref&gt;::Target<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DerefMut-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1269">source</a><a href="#impl-DerefMut-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; DerefMut for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: DerefMut,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: DerefMut&lt;Target = &lt;L as Deref&gt;::Target&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref_mut" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1274">source</a><a href="#method.deref_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">deref_mut</a>(&amp;mut self) -&gt; &amp;mut &lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Deref&gt;::Target<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class='docblock'>Mutably dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1301">source</a><a href="#impl-Display-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Display for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Display,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Display,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1306">source</a><a href="#method.fmt-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt</a>(&amp;self, f: &amp;mut Formatter&lt;'_&gt;) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DoubleEndedIterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1026">source</a><a href="#impl-DoubleEndedIterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; DoubleEndedIterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: DoubleEndedIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: DoubleEndedIterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_back" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1031">source</a><a href="#method.next_back" class="anchor"></a><h4 class="code-header">fn <a class="fnname">next_back</a>(&amp;mut self) -&gt; Option&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item&gt;</h4></section></summary><div class='docblock'>Removes and returns an element from the end of the iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.rfold" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1040-1042">source</a><a href="#method.rfold" class="anchor"></a><h4 class="code-header">fn <a class="fnname">rfold</a>&lt;Acc, G&gt;(self, init: Acc, f: G) -&gt; Acc<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: FnMut(Acc, &lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; Acc,</span></h4></section></summary><div class='docblock'>An iterator method that reduces the iterator’s elements to a single,
final value, starting from the back. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.rfind" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1047-1049">source</a><a href="#method.rfind" class="anchor"></a><h4 class="code-header">fn <a class="fnname">rfind</a>&lt;P&gt;(&amp;mut self, predicate: P) -&gt; Option&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&amp;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Searches for an element of an iterator from the back that satisfies a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.advance_back_by" class="method trait-impl has-srclink"><a href="#method.advance_back_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">advance_back_by</a>(&amp;mut self, n: usize) -&gt; Result&lt;(), usize&gt;</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_advance_by</code>)</span></div></span><div class='docblock'>Advances the iterator from the back by <code>n</code> elements. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.nth_back" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.37.0">1.37.0</span><a href="#method.nth_back" class="anchor"></a><h4 class="code-header">fn <a class="fnname">nth_back</a>(&amp;mut self, n: usize) -&gt; Option&lt;Self::Item&gt;</h4></section></summary><div class='docblock'>Returns the <code>n</code>th element from the end of the iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_rfold" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.27.0">1.27.0</span><a href="#method.try_rfold" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_rfold</a>&lt;B, F, R&gt;(&amp;mut self, init: B, f: F) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(B, Self::Item) -&gt; R,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Try&lt;Output = B&gt;,</span></h4></section></summary><div class='docblock'>This is the reverse version of [<code>Iterator::try_fold()</code>]: it takes
elements starting from the back of the iterator. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1281">source</a><a href="#impl-Error-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Error for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Error,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Error,</span></h3></section></summary><div class="docblock"><p><code>Either</code> implements <code>Error</code> if <em>both</em> <code>L</code> and <code>R</code> implement it.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1286">source</a><a href="#method.source" class="anchor"></a><h4 class="code-header">fn <a class="fnname">source</a>(&amp;self) -&gt; Option&lt;&amp;(dyn Error + 'static)&gt;</h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1291">source</a><a href="#method.description" class="anchor"></a><h4 class="code-header">fn <a class="fnname">description</a>(&amp;self) -&gt; &amp;str</h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1296">source</a><a href="#method.cause" class="anchor"></a><h4 class="code-header">fn <a class="fnname">cause</a>(&amp;self) -&gt; Option&lt;&amp;dyn Error&gt;</h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl has-srclink"><a href="#method.provide" class="anchor"></a><h4 class="code-header">fn <a class="fnname">provide</a>(&amp;'a self, demand: &amp;mut Demand&lt;'a&gt;)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ExactSizeIterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1055">source</a><a href="#impl-ExactSizeIterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; ExactSizeIterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: ExactSizeIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ExactSizeIterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.len" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1060">source</a><a href="#method.len" class="anchor"></a><h4 class="code-header">fn <a class="fnname">len</a>(&amp;self) -&gt; usize</h4></section></summary><div class='docblock'>Returns the exact remaining length of the iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_empty" class="method trait-impl has-srclink"><a href="#method.is_empty" class="anchor"></a><h4 class="code-header">fn <a class="fnname">is_empty</a>(&amp;self) -&gt; bool</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>exact_size_is_empty</code>)</span></div></span><div class='docblock'>Returns <code>true</code> if the iterator is empty. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Extend%3CA%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#920">source</a><a href="#impl-Extend%3CA%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R, A&gt; Extend&lt;A&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Extend&lt;A&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Extend&lt;A&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extend" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#925-927">source</a><a href="#method.extend" class="anchor"></a><h4 class="code-header">fn <a class="fnname">extend</a>&lt;T&gt;(&amp;mut self, iter: T)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: IntoIterator&lt;Item = A&gt;,</span></h4></section></summary><div class='docblock'>Extends a collection with the contents of an iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extend_one" class="method trait-impl has-srclink"><a href="#method.extend_one" class="anchor"></a><h4 class="code-header">fn <a class="fnname">extend_one</a>(&amp;mut self, item: A)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>extend_one</code>)</span></div></span><div class='docblock'>Extends a collection with exactly one element.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extend_reserve" class="method trait-impl has-srclink"><a href="#method.extend_reserve" class="anchor"></a><h4 class="code-header">fn <a class="fnname">extend_reserve</a>(&amp;mut self, additional: usize)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>extend_one</code>)</span></div></span><div class='docblock'>Reserves capacity in a collection for the given number of additional elements. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#900">source</a><a href="#impl-From%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; From&lt;Result&lt;R, L&gt;&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</h3></section></summary><div class="docblock"><p>Convert from <code>Result</code> to <code>Either</code> with <code>Ok =&gt; Right</code> and <code>Err =&gt; Left</code>.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#901">source</a><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(r: Result&lt;R, L&gt;) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Future-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1073">source</a><a href="#impl-Future-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Future&lt;Output = &lt;L as Future&gt;::Output&gt;,</span></h3></section></summary><div class="docblock"><p><code>Either&lt;L, R&gt;</code> is a future if both <code>L</code> and <code>R</code> are futures.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Output</a> = &lt;L as Future&gt;::Output</h4></section></summary><div class='docblock'>The type of value produced on completion.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1080-1083">source</a><a href="#method.poll" class="anchor"></a><h4 class="code-header">fn <a class="fnname">poll</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Future&gt;::Output&gt;</h4></section></summary><div class='docblock'>Attempt to resolve the future to a final value, registering
the current task for wakeup if the value is not yet available. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Hash-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-Hash-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Hash for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Hash,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Hash,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.hash" class="anchor"></a><h4 class="code-header">fn <a class="fnname">hash</a>&lt;__H&gt;(&amp;self, state: &amp;mut __H)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;__H: Hasher,</span></h4></section></summary><div class='docblock'>Feeds this value into the given [<code>Hasher</code>]. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.3.0">1.3.0</span><a href="#method.hash_slice" class="anchor"></a><h4 class="code-header">fn <a class="fnname">hash_slice</a>&lt;H&gt;(data: &amp;[Self], state: &amp;mut H)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;H: Hasher,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given [<code>Hasher</code>]. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Into%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#911">source</a><a href="#impl-Into%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Into&lt;Result&lt;R, L&gt;&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</h3></section></summary><div class="docblock"><p>Convert from <code>Either</code> to <code>Result</code> with <code>Right =&gt; Ok</code> and <code>Left =&gt; Err</code>.</p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#912">source</a><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -&gt; Result&lt;R, L&gt;</h4></section></summary><div class='docblock'>Converts this type into the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Iterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#934">source</a><a href="#impl-Iterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Iterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></h3></section></summary><div class="docblock"><p><code>Either&lt;L, R&gt;</code> is an iterator if both <code>L</code> and <code>R</code> are iterators.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Item" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Item" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Item</a> = &lt;L as Iterator&gt;::Item</h4></section></summary><div class='docblock'>The type of the elements being iterated over.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#941">source</a><a href="#method.next" class="anchor"></a><h4 class="code-header">fn <a class="fnname">next</a>(&amp;mut self) -&gt; Option&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item&gt;</h4></section></summary><div class='docblock'>Advances the iterator and returns the next value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#945">source</a><a href="#method.size_hint" class="anchor"></a><h4 class="code-header">fn <a class="fnname">size_hint</a>(&amp;self) -&gt; (usize, Option&lt;usize&gt;)</h4></section></summary><div class='docblock'>Returns the bounds on the remaining length of the iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#949-951">source</a><a href="#method.fold" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fold</a>&lt;Acc, G&gt;(self, init: Acc, f: G) -&gt; Acc<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: FnMut(Acc, &lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; Acc,</span></h4></section></summary><div class='docblock'>Folds every element into an accumulator by applying an operation,
returning the final result. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_each" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#956-958">source</a><a href="#method.for_each" class="anchor"></a><h4 class="code-header">fn <a class="fnname">for_each</a>&lt;F&gt;(self, f: F)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item),</span></h4></section></summary><div class='docblock'>Calls a closure on each element of an iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.count" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#963">source</a><a href="#method.count" class="anchor"></a><h4 class="code-header">fn <a class="fnname">count</a>(self) -&gt; usize</h4></section></summary><div class='docblock'>Consumes the iterator, counting the number of iterations and returning it. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.last" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#967">source</a><a href="#method.last" class="anchor"></a><h4 class="code-header">fn <a class="fnname">last</a>(self) -&gt; Option&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item&gt;</h4></section></summary><div class='docblock'>Consumes the iterator, returning the last element. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.nth" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#971">source</a><a href="#method.nth" class="anchor"></a><h4 class="code-header">fn <a class="fnname">nth</a>(&amp;mut self, n: usize) -&gt; Option&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item&gt;</h4></section></summary><div class='docblock'>Returns the <code>n</code>th element of the iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.collect" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#975-977">source</a><a href="#method.collect" class="anchor"></a><h4 class="code-header">fn <a class="fnname">collect</a>&lt;B&gt;(self) -&gt; B<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: FromIterator&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item&gt;,</span></h4></section></summary><div class='docblock'>Transforms an iterator into a collection. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partition" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#982-985">source</a><a href="#method.partition" class="anchor"></a><h4 class="code-header">fn <a class="fnname">partition</a>&lt;B, F&gt;(self, f: F) -&gt; (B, B)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Default + Extend&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Consumes an iterator, creating two collections from it. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.all" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#990-992">source</a><a href="#method.all" class="anchor"></a><h4 class="code-header">fn <a class="fnname">all</a>&lt;F&gt;(&amp;mut self, f: F) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Tests if every element of the iterator matches a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.any" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#997-999">source</a><a href="#method.any" class="anchor"></a><h4 class="code-header">fn <a class="fnname">any</a>&lt;F&gt;(&amp;mut self, f: F) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Tests if any element of the iterator matches a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1004-1006">source</a><a href="#method.find" class="anchor"></a><h4 class="code-header">fn <a class="fnname">find</a>&lt;P&gt;(&amp;mut self, predicate: P) -&gt; Option&lt;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&amp;&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Searches for an element of an iterator that satisfies a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1011-1013">source</a><a href="#method.find_map" class="anchor"></a><h4 class="code-header">fn <a class="fnname">find_map</a>&lt;B, F&gt;(&amp;mut self, f: F) -&gt; Option&lt;B&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; Option&lt;B&gt;,</span></h4></section></summary><div class='docblock'>Applies function to the elements of iterator and returns
the first non-none result. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1018-1020">source</a><a href="#method.position" class="anchor"></a><h4 class="code-header">fn <a class="fnname">position</a>&lt;P&gt;(&amp;mut self, predicate: P) -&gt; Option&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt; as Iterator&gt;::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Searches for an element in an iterator, returning its index. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_chunk" class="method trait-impl has-srclink"><a href="#method.next_chunk" class="anchor"></a><h4 class="code-header">fn <a class="fnname">next_chunk</a>&lt;const N:&nbsp;usize&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self<br>) -&gt; Result&lt;[Self::Item; N], IntoIter&lt;Self::Item, N&gt;&gt;</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_next_chunk</code>)</span></div></span><div class='docblock'>Advances the iterator and returns an array containing the next <code>N</code> values. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.advance_by" class="method trait-impl has-srclink"><a href="#method.advance_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">advance_by</a>(&amp;mut self, n: usize) -&gt; Result&lt;(), usize&gt;</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_advance_by</code>)</span></div></span><div class='docblock'>Advances the iterator by <code>n</code> elements. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.step_by" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.28.0">1.28.0</span><a href="#method.step_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">step_by</a>(self, step: usize) -&gt; StepBy&lt;Self&gt;</h4></section></summary><div class='docblock'>Creates an iterator starting at the same point, but stepping by
the given amount at each iteration. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.chain-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.chain-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">chain</a>&lt;U&gt;(self, other: U) -&gt; Chain&lt;Self, &lt;U as IntoIterator&gt;::IntoIter&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: IntoIterator&lt;Item = Self::Item&gt;,</span></h4></section></summary><div class='docblock'>Takes two iterators and creates a new iterator over both in sequence. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.zip" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.zip" class="anchor"></a><h4 class="code-header">fn <a class="fnname">zip</a>&lt;U&gt;(self, other: U) -&gt; Zip&lt;Self, &lt;U as IntoIterator&gt;::IntoIter&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: IntoIterator,</span></h4></section></summary><div class='docblock'>‘Zips up’ two iterators into a single iterator of pairs. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.intersperse_with" class="method trait-impl has-srclink"><a href="#method.intersperse_with" class="anchor"></a><h4 class="code-header">fn <a class="fnname">intersperse_with</a>&lt;G&gt;(self, separator: G) -&gt; IntersperseWith&lt;Self, G&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G: FnMut() -&gt; Self::Item,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_intersperse</code>)</span></div></span><div class='docblock'>Creates a new iterator which places an item generated by <code>separator</code>
between adjacent items of the original iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.map-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">map</a>&lt;B, F&gt;(self, f: F) -&gt; Map&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item) -&gt; B,</span></h4></section></summary><div class='docblock'>Takes a closure and creates an iterator which calls that closure on each
element. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.filter" class="anchor"></a><h4 class="code-header">fn <a class="fnname">filter</a>&lt;P&gt;(self, predicate: P) -&gt; Filter&lt;Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Creates an iterator which uses a closure to determine if an element
should be yielded. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter_map" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.filter_map" class="anchor"></a><h4 class="code-header">fn <a class="fnname">filter_map</a>&lt;B, F&gt;(self, f: F) -&gt; FilterMap&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item) -&gt; Option&lt;B&gt;,</span></h4></section></summary><div class='docblock'>Creates an iterator that both filters and maps. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.enumerate" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.enumerate" class="anchor"></a><h4 class="code-header">fn <a class="fnname">enumerate</a>(self) -&gt; Enumerate&lt;Self&gt;</h4></section></summary><div class='docblock'>Creates an iterator which gives the current iteration count as well as
the next value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.peekable" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.peekable" class="anchor"></a><h4 class="code-header">fn <a class="fnname">peekable</a>(self) -&gt; Peekable&lt;Self&gt;</h4></section></summary><div class='docblock'>Creates an iterator which can use the <a href="Peekable::peek"><code>peek</code></a> and <a href="Peekable::peek_mut"><code>peek_mut</code></a> methods
to look at the next element of the iterator without consuming it. See
their documentation for more information. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.skip_while" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.skip_while" class="anchor"></a><h4 class="code-header">fn <a class="fnname">skip_while</a>&lt;P&gt;(self, predicate: P) -&gt; SkipWhile&lt;Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Creates an iterator that <a href="Iterator::skip"><code>skip</code></a>s elements based on a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take_while" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.take_while" class="anchor"></a><h4 class="code-header">fn <a class="fnname">take_while</a>&lt;P&gt;(self, predicate: P) -&gt; TakeWhile&lt;Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Creates an iterator that yields elements based on a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_while" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.57.0">1.57.0</span><a href="#method.map_while" class="anchor"></a><h4 class="code-header">fn <a class="fnname">map_while</a>&lt;B, P&gt;(self, predicate: P) -&gt; MapWhile&lt;Self, P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(Self::Item) -&gt; Option&lt;B&gt;,</span></h4></section></summary><div class='docblock'>Creates an iterator that both yields elements based on a predicate and maps. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.skip" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.skip" class="anchor"></a><h4 class="code-header">fn <a class="fnname">skip</a>(self, n: usize) -&gt; Skip&lt;Self&gt;</h4></section></summary><div class='docblock'>Creates an iterator that skips the first <code>n</code> elements. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.take-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">take</a>(self, n: usize) -&gt; Take&lt;Self&gt;</h4></section></summary><div class='docblock'>Creates an iterator that yields the first <code>n</code> elements, or fewer
if the underlying iterator ends sooner. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.scan" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.scan" class="anchor"></a><h4 class="code-header">fn <a class="fnname">scan</a>&lt;St, B, F&gt;(self, initial_state: St, f: F) -&gt; Scan&lt;Self, St, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;mut St, Self::Item) -&gt; Option&lt;B&gt;,</span></h4></section></summary><div class='docblock'>An iterator adapter similar to <a href="Iterator::fold"><code>fold</code></a> that holds internal state and
produces a new iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.flat_map" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.flat_map" class="anchor"></a><h4 class="code-header">fn <a class="fnname">flat_map</a>&lt;U, F&gt;(self, f: F) -&gt; FlatMap&lt;Self, U, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item) -&gt; U,</span></h4></section></summary><div class='docblock'>Creates an iterator that works like map, but flattens nested structure. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fuse" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.fuse" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fuse</a>(self) -&gt; Fuse&lt;Self&gt;</h4></section></summary><div class='docblock'>Creates an iterator which ends after the first [<code>None</code>]. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.inspect" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.inspect" class="anchor"></a><h4 class="code-header">fn <a class="fnname">inspect</a>&lt;F&gt;(self, f: F) -&gt; Inspect&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item),</span></h4></section></summary><div class='docblock'>Does something with each element of an iterator, passing the value on. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.by_ref-2" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.by_ref-2" class="anchor"></a><h4 class="code-header">fn <a class="fnname">by_ref</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class='docblock'>Borrows an iterator, rather than consuming it. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.collect_into" class="method trait-impl has-srclink"><a href="#method.collect_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">collect_into</a>&lt;E&gt;(self, collection: &amp;mut E) -&gt; &amp;mut E<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;E: Extend&lt;Self::Item&gt;,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_collect_into</code>)</span></div></span><div class='docblock'>Collects all the items from an iterator into a collection. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_partitioned" class="method trait-impl has-srclink"><a href="#method.is_partitioned" class="anchor"></a><h4 class="code-header">fn <a class="fnname">is_partitioned</a>&lt;P&gt;(self, predicate: P) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(Self::Item) -&gt; bool,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_is_partitioned</code>)</span></div></span><div class='docblock'>Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return <code>true</code> precede all those that return <code>false</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_fold" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.27.0">1.27.0</span><a href="#method.try_fold" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_fold</a>&lt;B, F, R&gt;(&amp;mut self, init: B, f: F) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(B, Self::Item) -&gt; R,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Try&lt;Output = B&gt;,</span></h4></section></summary><div class='docblock'>An iterator method that applies a function as long as it returns
successfully, producing a single, final value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_for_each" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.27.0">1.27.0</span><a href="#method.try_for_each" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_for_each</a>&lt;F, R&gt;(&amp;mut self, f: F) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item) -&gt; R,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Try&lt;Output = ()&gt;,</span></h4></section></summary><div class='docblock'>An iterator method that applies a fallible function to each item in the
iterator, stopping at the first error and returning that error. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.reduce" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.51.0">1.51.0</span><a href="#method.reduce" class="anchor"></a><h4 class="code-header">fn <a class="fnname">reduce</a>&lt;F&gt;(self, f: F) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, Self::Item) -&gt; Self::Item,</span></h4></section></summary><div class='docblock'>Reduces the elements to a single one, by repeatedly applying a reducing
operation. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_reduce" class="method trait-impl has-srclink"><a href="#method.try_reduce" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_reduce</a>&lt;F, R&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;f: F<br>) -&gt; &lt;&lt;R as Try&gt;::Residual as Residual&lt;Option&lt;&lt;R as Try&gt;::Output&gt;&gt;&gt;::TryType<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, Self::Item) -&gt; R,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Try&lt;Output = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;R as Try&gt;::Residual: Residual&lt;Option&lt;Self::Item&gt;&gt;,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iterator_try_reduce</code>)</span></div></span><div class='docblock'>Reduces the elements to a single one by repeatedly applying a reducing operation. If the
closure returns a failure, the failure is propagated back to the caller immediately. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_find" class="method trait-impl has-srclink"><a href="#method.try_find" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_find</a>&lt;F, R&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;f: F<br>) -&gt; &lt;&lt;R as Try&gt;::Residual as Residual&lt;Option&lt;Self::Item&gt;&gt;&gt;::TryType<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; R,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Try&lt;Output = bool&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;R as Try&gt;::Residual: Residual&lt;Option&lt;Self::Item&gt;&gt;,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>try_find</code>)</span></div></span><div class='docblock'>Applies function to the elements of iterator and returns
the first true result or the first error. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_by_key" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.6.0">1.6.0</span><a href="#method.max_by_key" class="anchor"></a><h4 class="code-header">fn <a class="fnname">max_by_key</a>&lt;B, F&gt;(self, f: F) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; B,</span></h4></section></summary><div class='docblock'>Returns the element that gives the maximum value from the
specified function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_by" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.15.0">1.15.0</span><a href="#method.max_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">max_by</a>&lt;F&gt;(self, compare: F) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Returns the element that gives the maximum value with respect to the
specified comparison function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min_by_key" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.6.0">1.6.0</span><a href="#method.min_by_key" class="anchor"></a><h4 class="code-header">fn <a class="fnname">min_by_key</a>&lt;B, F&gt;(self, f: F) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; B,</span></h4></section></summary><div class='docblock'>Returns the element that gives the minimum value from the
specified function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min_by" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.15.0">1.15.0</span><a href="#method.min_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">min_by</a>&lt;F&gt;(self, compare: F) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Returns the element that gives the minimum value with respect to the
specified comparison function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unzip" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.unzip" class="anchor"></a><h4 class="code-header">fn <a class="fnname">unzip</a>&lt;A, B, FromA, FromB&gt;(self) -&gt; (FromA, FromB)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;FromA: Default + Extend&lt;A&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;FromB: Default + Extend&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = (A, B)&gt;,</span></h4></section></summary><div class='docblock'>Converts an iterator of pairs into a pair of containers. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.copied" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.36.0">1.36.0</span><a href="#method.copied" class="anchor"></a><h4 class="code-header">fn <a class="fnname">copied</a>&lt;'a, T&gt;(self) -&gt; Copied&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'a + Copy,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = &amp;'a T&gt;,</span></h4></section></summary><div class='docblock'>Creates an iterator which copies all of its elements. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cloned" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.cloned" class="anchor"></a><h4 class="code-header">fn <a class="fnname">cloned</a>&lt;'a, T&gt;(self) -&gt; Cloned&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'a + Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = &amp;'a T&gt;,</span></h4></section></summary><div class='docblock'>Creates an iterator which <a href="Clone::clone"><code>clone</code></a>s all of its elements. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.array_chunks" class="method trait-impl has-srclink"><a href="#method.array_chunks" class="anchor"></a><h4 class="code-header">fn <a class="fnname">array_chunks</a>&lt;const N:&nbsp;usize&gt;(self) -&gt; ArrayChunks&lt;Self, N&gt;</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_array_chunks</code>)</span></div></span><div class='docblock'>Returns an iterator over <code>N</code> elements of the iterator at a time. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sum" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.11.0">1.11.0</span><a href="#method.sum" class="anchor"></a><h4 class="code-header">fn <a class="fnname">sum</a>&lt;S&gt;(self) -&gt; S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Sum&lt;Self::Item&gt;,</span></h4></section></summary><div class='docblock'>Sums the elements of an iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.product" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.11.0">1.11.0</span><a href="#method.product" class="anchor"></a><h4 class="code-header">fn <a class="fnname">product</a>&lt;P&gt;(self) -&gt; P<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: Product&lt;Self::Item&gt;,</span></h4></section></summary><div class='docblock'>Iterates over the entire iterator, multiplying all the elements <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp_by" class="method trait-impl has-srclink"><a href="#method.cmp_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">cmp_by</a>&lt;I, F&gt;(self, other: I, cmp: F) -&gt; Ordering<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, &lt;I as IntoIterator&gt;::Item) -&gt; Ordering,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_order_by</code>)</span></div></span><div class='docblock'><a href="Ord#lexicographical-comparison">Lexicographically</a> compares the elements of this [<code>Iterator</code>] with those
of another with respect to the specified comparison function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.5.0">1.5.0</span><a href="#method.partial_cmp-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">partial_cmp</a>&lt;I&gt;(self, other: I) -&gt; Option&lt;Ordering&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialOrd&lt;&lt;I as IntoIterator&gt;::Item&gt;,</span></h4></section></summary><div class='docblock'><a href="Ord#lexicographical-comparison">Lexicographically</a> compares the elements of this [<code>Iterator</code>] with those
of another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp_by" class="method trait-impl has-srclink"><a href="#method.partial_cmp_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">partial_cmp_by</a>&lt;I, F&gt;(self, other: I, partial_cmp: F) -&gt; Option&lt;Ordering&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, &lt;I as IntoIterator&gt;::Item) -&gt; Option&lt;Ordering&gt;,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_order_by</code>)</span></div></span><div class='docblock'><a href="Ord#lexicographical-comparison">Lexicographically</a> compares the elements of this [<code>Iterator</code>] with those
of another with respect to the specified comparison function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.5.0">1.5.0</span><a href="#method.eq-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">eq</a>&lt;I&gt;(self, other: I) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialEq&lt;&lt;I as IntoIterator&gt;::Item&gt;,</span></h4></section></summary><div class='docblock'>Determines if the elements of this [<code>Iterator</code>] are equal to those of
another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq_by" class="method trait-impl has-srclink"><a href="#method.eq_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">eq_by</a>&lt;I, F&gt;(self, other: I, eq: F) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, &lt;I as IntoIterator&gt;::Item) -&gt; bool,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_order_by</code>)</span></div></span><div class='docblock'>Determines if the elements of this [<code>Iterator</code>] are equal to those of
another with respect to the specified equality function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.5.0">1.5.0</span><a href="#method.ne-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">ne</a>&lt;I&gt;(self, other: I) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialEq&lt;&lt;I as IntoIterator&gt;::Item&gt;,</span></h4></section></summary><div class='docblock'>Determines if the elements of this [<code>Iterator</code>] are unequal to those of
another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.5.0">1.5.0</span><a href="#method.lt-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">lt</a>&lt;I&gt;(self, other: I) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialOrd&lt;&lt;I as IntoIterator&gt;::Item&gt;,</span></h4></section></summary><div class='docblock'>Determines if the elements of this [<code>Iterator</code>] are <a href="Ord#lexicographical-comparison">lexicographically</a>
less than those of another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.5.0">1.5.0</span><a href="#method.le-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">le</a>&lt;I&gt;(self, other: I) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialOrd&lt;&lt;I as IntoIterator&gt;::Item&gt;,</span></h4></section></summary><div class='docblock'>Determines if the elements of this [<code>Iterator</code>] are <a href="Ord#lexicographical-comparison">lexicographically</a>
less or equal to those of another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.5.0">1.5.0</span><a href="#method.gt-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">gt</a>&lt;I&gt;(self, other: I) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialOrd&lt;&lt;I as IntoIterator&gt;::Item&gt;,</span></h4></section></summary><div class='docblock'>Determines if the elements of this [<code>Iterator</code>] are <a href="Ord#lexicographical-comparison">lexicographically</a>
greater than those of another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.5.0">1.5.0</span><a href="#method.ge-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">ge</a>&lt;I&gt;(self, other: I) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialOrd&lt;&lt;I as IntoIterator&gt;::Item&gt;,</span></h4></section></summary><div class='docblock'>Determines if the elements of this [<code>Iterator</code>] are <a href="Ord#lexicographical-comparison">lexicographically</a>
greater than or equal to those of another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_sorted_by" class="method trait-impl has-srclink"><a href="#method.is_sorted_by" class="anchor"></a><h4 class="code-header">fn <a class="fnname">is_sorted_by</a>&lt;F&gt;(self, compare: F) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Option&lt;Ordering&gt;,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>is_sorted</code>)</span></div></span><div class='docblock'>Checks if the elements of this iterator are sorted using the given comparator function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_sorted_by_key" class="method trait-impl has-srclink"><a href="#method.is_sorted_by_key" class="anchor"></a><h4 class="code-header">fn <a class="fnname">is_sorted_by_key</a>&lt;F, K&gt;(self, f: F) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item) -&gt; K,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: PartialOrd&lt;K&gt;,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>is_sorted</code>)</span></div></span><div class='docblock'>Checks if the elements of this iterator are sorted using the given key extraction
function. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Ord-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-Ord-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Ord for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Ord,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.cmp" class="anchor"></a><h4 class="code-header">fn <a class="fnname">cmp</a>(&amp;self, other: &amp;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;) -&gt; Ordering</h4></section></summary><div class='docblock'>This method returns an [<code>Ordering</code>] between <code>self</code> and <code>other</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.21.0">1.21.0</span><a href="#method.max" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">max</a>(self, other: Self) -&gt; Self</h4></section></summary><div class='docblock'>Compares and returns the maximum of two values. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.21.0">1.21.0</span><a href="#method.min" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">min</a>(self, other: Self) -&gt; Self</h4></section></summary><div class='docblock'>Compares and returns the minimum of two values. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clamp" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.50.0">1.50.0</span><a href="#method.clamp" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">clamp</a>(self, min: Self, max: Self) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: PartialOrd&lt;Self&gt;,</span></h4></section></summary><div class='docblock'>Restrict a value to a certain interval. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CEither%3CL%2C%20R%3E%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-PartialEq%3CEither%3CL%2C%20R%3E%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; PartialEq&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: PartialEq&lt;L&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: PartialEq&lt;R&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.eq" class="anchor"></a><h4 class="code-header">fn <a class="fnname">eq</a>(&amp;self, other: &amp;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;) -&gt; bool</h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.ne" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">ne</a>(&amp;self, other: &amp;Rhs) -&gt; bool</h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialOrd%3CEither%3CL%2C%20R%3E%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-PartialOrd%3CEither%3CL%2C%20R%3E%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; PartialOrd&lt;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;&gt; for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: PartialOrd&lt;L&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: PartialOrd&lt;R&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.partial_cmp" class="anchor"></a><h4 class="code-header">fn <a class="fnname">partial_cmp</a>(&amp;self, other: &amp;<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;) -&gt; Option&lt;Ordering&gt;</h4></section></summary><div class='docblock'>This method returns an ordering between <code>self</code> and <code>other</code> values if one exists. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.lt" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">lt</a>(&amp;self, other: &amp;Rhs) -&gt; bool</h4></section></summary><div class='docblock'>This method tests less than (for <code>self</code> and <code>other</code>) and is used by the <code>&lt;</code> operator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.le" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">le</a>(&amp;self, other: &amp;Rhs) -&gt; bool</h4></section></summary><div class='docblock'>This method tests less than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>&lt;=</code>
operator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.gt" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">gt</a>(&amp;self, other: &amp;Rhs) -&gt; bool</h4></section></summary><div class='docblock'>This method tests greater than (for <code>self</code> and <code>other</code>) and is used by the <code>&gt;</code> operator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ge" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.ge" class="anchor"></a><h4 class="code-header">const fn <a class="fnname">ge</a>(&amp;self, other: &amp;Rhs) -&gt; bool</h4></section></summary><div class='docblock'>This method tests greater than or equal to (for <code>self</code> and <code>other</code>) and is used by the <code>&gt;=</code>
operator. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Read-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1092">source</a><a href="#impl-Read-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Read for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Read,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Read,</span></h3></section></summary><div class="docblock"><p><code>Either&lt;L, R&gt;</code> implements <code>Read</code> if both <code>L</code> and <code>R</code> do.</p>
<p>Requires crate feature <code>&quot;use_std&quot;</code></p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1097">source</a><a href="#method.read" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read</a>(&amp;mut self, buf: &amp;mut [u8]) -&gt; Result&lt;usize, Error&gt;</h4></section></summary><div class='docblock'>Pull some bytes from this source into the specified buffer, returning
how many bytes were read. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_exact" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1101">source</a><a href="#method.read_exact" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_exact</a>(&amp;mut self, buf: &amp;mut [u8]) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Read the exact number of bytes required to fill <code>buf</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1105">source</a><a href="#method.read_to_end" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_to_end</a>(&amp;mut self, buf: &amp;mut Vec&lt;u8, Global&gt;) -&gt; Result&lt;usize, Error&gt;</h4></section></summary><div class='docblock'>Read all bytes until EOF in this source, placing them into <code>buf</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1109">source</a><a href="#method.read_to_string" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_to_string</a>(&amp;mut self, buf: &amp;mut String) -&gt; Result&lt;usize, Error&gt;</h4></section></summary><div class='docblock'>Read all bytes until EOF in this source, appending them to <code>buf</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><a href="#method.read_vectored" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_vectored</a>(&amp;mut self, bufs: &amp;mut [IoSliceMut&lt;'_&gt;]) -&gt; Result&lt;usize, Error&gt;</h4></section></summary><div class='docblock'>Like <code>read</code>, except that it reads into a slice of buffers. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_read_vectored" class="method trait-impl has-srclink"><a href="#method.is_read_vectored" class="anchor"></a><h4 class="code-header">fn <a class="fnname">is_read_vectored</a>(&amp;self) -&gt; bool</h4></section></summary><div class='docblock'>Determines if this <code>Read</code>er has an efficient <code>read_vectored</code>
implementation. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_buf" class="method trait-impl has-srclink"><a href="#method.read_buf" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_buf</a>(&amp;mut self, buf: BorrowedCursor&lt;'_&gt;) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Pull some bytes from this source into the specified buffer. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_buf_exact" class="method trait-impl has-srclink"><a href="#method.read_buf_exact" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_buf_exact</a>(&amp;mut self, cursor: BorrowedCursor&lt;'_&gt;) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Read the exact number of bytes required to fill <code>cursor</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.by_ref-1" class="method trait-impl has-srclink"><a href="#method.by_ref-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">by_ref</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class='docblock'>Creates a “by reference” adaptor for this instance of <code>Read</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.bytes" class="method trait-impl has-srclink"><a href="#method.bytes" class="anchor"></a><h4 class="code-header">fn <a class="fnname">bytes</a>(self) -&gt; Bytes&lt;Self&gt;</h4></section></summary><div class='docblock'>Transforms this <code>Read</code> instance to an [<code>Iterator</code>] over its bytes. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.chain" class="method trait-impl has-srclink"><a href="#method.chain" class="anchor"></a><h4 class="code-header">fn <a class="fnname">chain</a>&lt;R&gt;(self, next: R) -&gt; Chain&lt;Self, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Read,</span></h4></section></summary><div class='docblock'>Creates an adapter which will chain this stream with another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take" class="method trait-impl has-srclink"><a href="#method.take" class="anchor"></a><h4 class="code-header">fn <a class="fnname">take</a>(self, limit: u64) -&gt; Take&lt;Self&gt;</h4></section></summary><div class='docblock'>Creates an adapter which will read at most <code>limit</code> bytes from it. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Seek-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1118">source</a><a href="#impl-Seek-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Seek for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Seek,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Seek,</span></h3></section></summary><div class="docblock"><p><code>Either&lt;L, R&gt;</code> implements <code>Seek</code> if both <code>L</code> and <code>R</code> do.</p>
<p>Requires crate feature <code>&quot;use_std&quot;</code></p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.seek" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1123">source</a><a href="#method.seek" class="anchor"></a><h4 class="code-header">fn <a class="fnname">seek</a>(&amp;mut self, pos: SeekFrom) -&gt; Result&lt;u64, Error&gt;</h4></section></summary><div class='docblock'>Seek to an offset, in bytes, in a stream. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.rewind" class="method trait-impl has-srclink"><a href="#method.rewind" class="anchor"></a><h4 class="code-header">fn <a class="fnname">rewind</a>(&amp;mut self) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Rewind to the beginning of a stream. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.stream_len" class="method trait-impl has-srclink"><a href="#method.stream_len" class="anchor"></a><h4 class="code-header">fn <a class="fnname">stream_len</a>(&amp;mut self) -&gt; Result&lt;u64, Error&gt;</h4></section></summary><div class='docblock'>Returns the length of this stream (in bytes). <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.stream_position" class="method trait-impl has-srclink"><a href="#method.stream_position" class="anchor"></a><h4 class="code-header">fn <a class="fnname">stream_position</a>(&amp;mut self) -&gt; Result&lt;u64, Error&gt;</h4></section></summary><div class='docblock'>Returns the current seek position from the start of the stream. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Write-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1156">source</a><a href="#impl-Write-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Write for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Write,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Write,</span></h3></section></summary><div class="docblock"><p><code>Either&lt;L, R&gt;</code> implements <code>Write</code> if both <code>L</code> and <code>R</code> do.</p>
<p>Requires crate feature <code>&quot;use_std&quot;</code></p>
</div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1161">source</a><a href="#method.write" class="anchor"></a><h4 class="code-header">fn <a class="fnname">write</a>(&amp;mut self, buf: &amp;[u8]) -&gt; Result&lt;usize, Error&gt;</h4></section></summary><div class='docblock'>Write a buffer into this writer, returning how many bytes were written. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_all" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1165">source</a><a href="#method.write_all" class="anchor"></a><h4 class="code-header">fn <a class="fnname">write_all</a>(&amp;mut self, buf: &amp;[u8]) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Attempts to write an entire buffer into this writer. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1169">source</a><a href="#method.write_fmt" class="anchor"></a><h4 class="code-header">fn <a class="fnname">write_fmt</a>(&amp;mut self, fmt: Arguments&lt;'_&gt;) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Writes a formatted string into this writer, returning any error
encountered. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.flush" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1173">source</a><a href="#method.flush" class="anchor"></a><h4 class="code-header">fn <a class="fnname">flush</a>(&amp;mut self) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Flush this output stream, ensuring that all intermediately buffered
contents reach their destination. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_vectored" class="method trait-impl has-srclink"><a href="#method.write_vectored" class="anchor"></a><h4 class="code-header">fn <a class="fnname">write_vectored</a>(&amp;mut self, bufs: &amp;[IoSlice&lt;'_&gt;]) -&gt; Result&lt;usize, Error&gt;</h4></section></summary><div class='docblock'>Like <a href="Write::write"><code>write</code></a>, except that it writes from a slice of buffers. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_write_vectored" class="method trait-impl has-srclink"><a href="#method.is_write_vectored" class="anchor"></a><h4 class="code-header">fn <a class="fnname">is_write_vectored</a>(&amp;self) -&gt; bool</h4></section></summary><div class='docblock'>Determines if this <code>Write</code>r has an efficient <a href="Write::write_vectored"><code>write_vectored</code></a>
implementation. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_all_vectored" class="method trait-impl has-srclink"><a href="#method.write_all_vectored" class="anchor"></a><h4 class="code-header">fn <a class="fnname">write_all_vectored</a>(&amp;mut self, bufs: &amp;mut [IoSlice&lt;'_&gt;]) -&gt; Result&lt;(), Error&gt;</h4></section></summary><div class='docblock'>Attempts to write multiple buffers into this writer. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><a href="#method.by_ref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">by_ref</a>(&amp;mut self) -&gt; &amp;mut Self</h4></section></summary><div class='docblock'>Creates a “by reference” adapter for this instance of <code>Write</code>. <a>Read more</a></div></details></div></details><section id="impl-Copy-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-Copy-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Copy for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Copy,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Copy,</span></h3></section><section id="impl-Eq-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-Eq-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Eq for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Eq,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Eq,</span></h3></section><section id="impl-FusedIterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1065">source</a><a href="#impl-FusedIterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; FusedIterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: FusedIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: FusedIterator&lt;Item = &lt;L as Iterator&gt;::Item&gt;,</span></h3></section><section id="impl-StructuralEq-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-StructuralEq-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; StructuralEq for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</h3></section><section id="impl-StructuralPartialEq-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-StructuralPartialEq-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; StructuralPartialEq for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;</h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; RefUnwindSafe for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: RefUnwindSafe,</span></h3></section><section id="impl-Send-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-Send-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Send for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Send,</span></h3></section><section id="impl-Sync-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-Sync-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Sync for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Sync,</span></h3></section><section id="impl-Unpin-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; Unpin for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: Unpin,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Unpin,</span></h3></section><section id="impl-UnwindSafe-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L, R&gt; UnwindSafe for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;L: UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: UnwindSafe,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-Any-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Any for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a class="fnname">type_id</a>(&amp;self) -&gt; TypeId</h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-Borrow%3CT%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Borrow&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow</a>(&amp;self) -&gt; &amp;T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-BorrowMut%3CT%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; BorrowMut&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow_mut</a>(&amp;mut self) -&gt; &amp;mut T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-From%3CT%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; From&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.from-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-Into%3CU%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; Into&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: From&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into-1" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.into-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code>[From]&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoFuture-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-IntoFuture-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;F&gt; IntoFuture for F<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: Future,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Output</a> = &lt;F as Future&gt;::Output</h4></section></summary><div class='docblock'>The output that the future will produce on completion.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.IntoFuture" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.IntoFuture" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">IntoFuture</a> = F</h4></section></summary><div class='docblock'>Which kind of future are we turning this into?</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_future" class="method trait-impl has-srclink"><a href="#method.into_future" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into_future</a>(self) -&gt; &lt;F as IntoFuture&gt;::IntoFuture</h4></section></summary><div class='docblock'>Creates a future from a value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-IntoIterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-IntoIterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;I&gt; IntoIterator for I<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Item-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Item-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Item</a> = &lt;I as Iterator&gt;::Item</h4></section></summary><div class='docblock'>The type of the elements being iterated over.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.IntoIter" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.IntoIter" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">IntoIter</a> = I</h4></section></summary><div class='docblock'>Which kind of iterator are we turning this into?</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_iter-1" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/90603" title="Tracking issue for const_intoiterator_identity">unstable</a></span><a href="#method.into_iter-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into_iter</a>(self) -&gt; I</h4></section></summary><div class='docblock'>Creates an iterator from a value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Itertools-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3662">source</a><a href="#impl-Itertools-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.Itertools.html" title="trait itertools::Itertools">Itertools</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Iterator + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.interleave" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#446-451">source</a><a href="#method.interleave" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.interleave" class="fnname">interleave</a>&lt;J&gt;(self, other: J) -&gt; <a class="struct" href="structs/struct.Interleave.html" title="struct itertools::structs::Interleave">Interleave</a>&lt;Self, J::IntoIter&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Interleave.html" title="struct itertools::structs::Interleave">Interleave</a>&lt;I, J&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, J&gt; Iterator for <a class="struct" href="structs/struct.Interleave.html" title="struct itertools::structs::Interleave">Interleave</a>&lt;I, J&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: Iterator&lt;Item = I::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator&lt;Item = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Alternate elements from two iterators until both have run out. <a href="trait.Itertools.html#method.interleave">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.interleave_shortest" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#464-469">source</a><a href="#method.interleave_shortest" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.interleave_shortest" class="fnname">interleave_shortest</a>&lt;J&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;other: J<br>) -&gt; <a class="struct" href="structs/struct.InterleaveShortest.html" title="struct itertools::structs::InterleaveShortest">InterleaveShortest</a>&lt;Self, J::IntoIter&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.InterleaveShortest.html" title="struct itertools::structs::InterleaveShortest">InterleaveShortest</a>&lt;I, J&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, J&gt; Iterator for <a class="struct" href="structs/struct.InterleaveShortest.html" title="struct itertools::structs::InterleaveShortest">InterleaveShortest</a>&lt;I, J&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: Iterator&lt;Item = I::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator&lt;Item = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Alternate elements from two iterators until at least one of them has run
out. <a href="trait.Itertools.html#method.interleave_shortest">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.intersperse" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#483-488">source</a><a href="#method.intersperse" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.intersperse" class="fnname">intersperse</a>(self, element: Self::Item) -&gt; <a class="type" href="structs/type.Intersperse.html" title="type itertools::structs::Intersperse">Intersperse</a>&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone,</span></h4></section></summary><div class='docblock'>An iterator adaptor to insert a particular value
between each element of the adapted iterator. <a href="trait.Itertools.html#method.intersperse">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.intersperse_with-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#504-509">source</a><a href="#method.intersperse_with-1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.intersperse_with" class="fnname">intersperse_with</a>&lt;F&gt;(self, element: F) -&gt; <a class="struct" href="structs/struct.IntersperseWith.html" title="struct itertools::structs::IntersperseWith">IntersperseWith</a>&lt;Self, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.IntersperseWith.html" title="struct itertools::structs::IntersperseWith">IntersperseWith</a>&lt;I, ElemF&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, ElemF&gt; Iterator for <a class="struct" href="structs/struct.IntersperseWith.html" title="struct itertools::structs::IntersperseWith">IntersperseWith</a>&lt;I, ElemF&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;ElemF: IntersperseElement&lt;I::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut() -&gt; Self::Item,</span></h4></section></summary><div class='docblock'>An iterator adaptor to insert a particular value created by a function
between each element of the adapted iterator. <a href="trait.Itertools.html#method.intersperse_with">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.zip_longest" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#538-543">source</a><a href="#method.zip_longest" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.zip_longest" class="fnname">zip_longest</a>&lt;J&gt;(self, other: J) -&gt; <a class="struct" href="structs/struct.ZipLongest.html" title="struct itertools::structs::ZipLongest">ZipLongest</a>&lt;Self, J::IntoIter&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.ZipLongest.html" title="struct itertools::structs::ZipLongest">ZipLongest</a>&lt;T, U&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;T, U&gt; Iterator for <a class="struct" href="structs/struct.ZipLongest.html" title="struct itertools::structs::ZipLongest">ZipLongest</a>&lt;T, U&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: Iterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <a class="enum" href="enum.EitherOrBoth.html" title="enum itertools::EitherOrBoth">EitherOrBoth</a>&lt;T::Item, U::Item&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Create an iterator which iterates over both this and the specified
iterator simultaneously, yielding pairs of two optional elements. <a href="trait.Itertools.html#method.zip_longest">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.zip_eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#551-556">source</a><a href="#method.zip_eq" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.zip_eq" class="fnname">zip_eq</a>&lt;J&gt;(self, other: J) -&gt; <a class="struct" href="structs/struct.ZipEq.html" title="struct itertools::structs::ZipEq">ZipEq</a>&lt;Self, J::IntoIter&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.ZipEq.html" title="struct itertools::structs::ZipEq">ZipEq</a>&lt;I, J&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, J&gt; Iterator for <a class="struct" href="structs/struct.ZipEq.html" title="struct itertools::structs::ZipEq">ZipEq</a>&lt;I, J&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: Iterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = (I::Item, J::Item);</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Create an iterator which iterates over both this and the specified
iterator simultaneously, yielding pairs of elements. <a href="trait.Itertools.html#method.zip_eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.batching" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#581-586">source</a><a href="#method.batching" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.batching" class="fnname">batching</a>&lt;B, F&gt;(self, f: F) -&gt; <a class="struct" href="structs/struct.Batching.html" title="struct itertools::structs::Batching">Batching</a>&lt;Self, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Batching.html" title="struct itertools::structs::Batching">Batching</a>&lt;I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;B, F, I&gt; Iterator for <a class="struct" href="structs/struct.Batching.html" title="struct itertools::structs::Batching">Batching</a>&lt;I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;mut I) -&gt; Option&lt;B&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = B;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;mut Self) -&gt; Option&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>A “meta iterator adaptor”. Its closure receives a reference to the
iterator and may pick off as many elements as it likes, to produce the
next iterator element. <a href="trait.Itertools.html#method.batching">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.group_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#623-629">source</a><a href="#method.group_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.group_by" class="fnname">group_by</a>&lt;K, F&gt;(self, key: F) -&gt; <a class="struct" href="structs/struct.GroupBy.html" title="struct itertools::structs::GroupBy">GroupBy</a>&lt;K, Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: PartialEq,</span></h4></section></summary><div class='docblock'>Return an <em>iterable</em> that can group iterator elements.
Consecutive elements that map to the same key (“runs”), are assigned
to the same group. <a href="trait.Itertools.html#method.group_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.chunks" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#659-664">source</a><a href="#method.chunks" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.chunks" class="fnname">chunks</a>(self, size: usize) -&gt; <a class="struct" href="structs/struct.IntoChunks.html" title="struct itertools::structs::IntoChunks">IntoChunks</a>&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Return an <em>iterable</em> that can chunk the iterator. <a href="trait.Itertools.html#method.chunks">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tuple_windows" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#699-705">source</a><a href="#method.tuple_windows" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tuple_windows" class="fnname">tuple_windows</a>&lt;T&gt;(self) -&gt; <a class="struct" href="structs/struct.TupleWindows.html" title="struct itertools::structs::TupleWindows">TupleWindows</a>&lt;Self, T&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.TupleWindows.html" title="struct itertools::structs::TupleWindows">TupleWindows</a>&lt;I, T&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, T&gt; Iterator for <a class="struct" href="structs/struct.TupleWindows.html" title="struct itertools::structs::TupleWindows">TupleWindows</a>&lt;I, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator&lt;Item = T::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a> + Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;T::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = T;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + Iterator&lt;Item = T::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator over all contiguous windows producing tuples of
a specific size (up to 12). <a href="trait.Itertools.html#method.tuple_windows">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.circular_tuple_windows" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#734-740">source</a><a href="#method.circular_tuple_windows" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.circular_tuple_windows" class="fnname">circular_tuple_windows</a>&lt;T&gt;(self) -&gt; <a class="struct" href="structs/struct.CircularTupleWindows.html" title="struct itertools::structs::CircularTupleWindows">CircularTupleWindows</a>&lt;Self, T&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.CircularTupleWindows.html" title="struct itertools::structs::CircularTupleWindows">CircularTupleWindows</a>&lt;I, T&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, T&gt; Iterator for <a class="struct" href="structs/struct.CircularTupleWindows.html" title="struct itertools::structs::CircularTupleWindows">CircularTupleWindows</a>&lt;I, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator&lt;Item = T::Item&gt; + Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: TupleCollect + Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;T::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = T;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + Clone + Iterator&lt;Item = T::Item&gt; + ExactSizeIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: TupleCollect + Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;T::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator over all windows, wrapping back to the first
elements when the window would otherwise exceed the length of the
iterator, producing tuples of a specific size (up to 12). <a href="trait.Itertools.html#method.circular_tuple_windows">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tuples" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#772-777">source</a><a href="#method.tuples" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tuples" class="fnname">tuples</a>&lt;T&gt;(self) -&gt; <a class="struct" href="structs/struct.Tuples.html" title="struct itertools::structs::Tuples">Tuples</a>&lt;Self, T&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Tuples.html" title="struct itertools::structs::Tuples">Tuples</a>&lt;I, T&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, T&gt; Iterator for <a class="struct" href="structs/struct.Tuples.html" title="struct itertools::structs::Tuples">Tuples</a>&lt;I, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator&lt;Item = T::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = T;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + Iterator&lt;Item = T::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,</span></h4></section></summary><div class='docblock'>Return an iterator that groups the items in tuples of a specific size
(up to 12). <a href="trait.Itertools.html#method.tuples">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tee" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#797-802">source</a><a href="#method.tee" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tee" class="fnname">tee</a>(self) -&gt; (<a class="struct" href="structs/struct.Tee.html" title="struct itertools::structs::Tee">Tee</a>&lt;Self&gt;, <a class="struct" href="structs/struct.Tee.html" title="struct itertools::structs::Tee">Tee</a>&lt;Self&gt;)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Split into an iterator pair that both yield all elements from
the original iterator. <a href="trait.Itertools.html#method.tee">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.step" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#822-826">source</a><a href="#method.step" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.step" class="fnname">step</a>(self, n: usize) -&gt; <a class="struct" href="structs/struct.Step.html" title="struct itertools::structs::Step">Step</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Step.html" title="struct itertools::structs::Step">Step</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I&gt; Iterator for <a class="struct" href="structs/struct.Step.html" title="struct itertools::structs::Step">Step</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.8.0: Use std .step_by() instead</span></div></span><div class='docblock'>Return an iterator adaptor that steps <code>n</code> elements in the base iterator
for each iteration. <a href="trait.Itertools.html#method.step">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#835-840">source</a><a href="#method.map_into" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.map_into" class="fnname">map_into</a>&lt;R&gt;(self) -&gt; <a class="type" href="structs/type.MapInto.html" title="type itertools::structs::MapInto">MapInto</a>&lt;Self, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Into&lt;R&gt;,</span></h4></section></summary><div class='docblock'>Convert each item of the iterator using the [<code>Into</code>] trait. <a href="trait.Itertools.html#method.map_into">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_results" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#844-849">source</a><a href="#method.map_results" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.map_results" class="fnname">map_results</a>&lt;F, T, U, E&gt;(self, f: F) -&gt; <a class="type" href="structs/type.MapOk.html" title="type itertools::structs::MapOk">MapOk</a>&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Result&lt;T, E&gt;&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(T) -&gt; U,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.0: Use .map_ok() instead</span></div></span><div class='docblock'>See <a href="trait.Itertools.html#method.map_ok"><code>.map_ok()</code></a>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#862-867">source</a><a href="#method.map_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.map_ok" class="fnname">map_ok</a>&lt;F, T, U, E&gt;(self, f: F) -&gt; <a class="type" href="structs/type.MapOk.html" title="type itertools::structs::MapOk">MapOk</a>&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Result&lt;T, E&gt;&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(T) -&gt; U,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that applies the provided closure
to every <code>Result::Ok</code> value. <code>Result::Err</code> values are
unchanged. <a href="trait.Itertools.html#method.map_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#880-885">source</a><a href="#method.filter_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.filter_ok" class="fnname">filter_ok</a>&lt;F, T, E&gt;(self, f: F) -&gt; <a class="struct" href="structs/struct.FilterOk.html" title="struct itertools::structs::FilterOk">FilterOk</a>&lt;Self, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.FilterOk.html" title="struct itertools::structs::FilterOk">FilterOk</a>&lt;I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, F, T, E&gt; Iterator for <a class="struct" href="structs/struct.FilterOk.html" title="struct itertools::structs::FilterOk">FilterOk</a>&lt;I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator&lt;Item = Result&lt;T, E&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;T) -&gt; bool,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Result&lt;T, E&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Result&lt;T, E&gt;&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;T) -&gt; bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters every <code>Result::Ok</code>
value with the provided closure. <code>Result::Err</code> values are
unchanged. <a href="trait.Itertools.html#method.filter_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter_map_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#898-903">source</a><a href="#method.filter_map_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.filter_map_ok" class="fnname">filter_map_ok</a>&lt;F, T, U, E&gt;(self, f: F) -&gt; <a class="struct" href="structs/struct.FilterMapOk.html" title="struct itertools::structs::FilterMapOk">FilterMapOk</a>&lt;Self, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.FilterMapOk.html" title="struct itertools::structs::FilterMapOk">FilterMapOk</a>&lt;I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, F, T, U, E&gt; Iterator for <a class="struct" href="structs/struct.FilterMapOk.html" title="struct itertools::structs::FilterMapOk">FilterMapOk</a>&lt;I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator&lt;Item = Result&lt;T, E&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(T) -&gt; Option&lt;U&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Result&lt;U, E&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Result&lt;T, E&gt;&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(T) -&gt; Option&lt;U&gt;,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters and transforms every
<code>Result::Ok</code> value with the provided closure. <code>Result::Err</code>
values are unchanged. <a href="trait.Itertools.html#method.filter_map_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.flatten_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#922-927">source</a><a href="#method.flatten_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.flatten_ok" class="fnname">flatten_ok</a>&lt;T, E&gt;(self) -&gt; <a class="struct" href="structs/struct.FlattenOk.html" title="struct itertools::structs::FlattenOk">FlattenOk</a>&lt;Self, T, E&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.FlattenOk.html" title="struct itertools::structs::FlattenOk">FlattenOk</a>&lt;I, T, E&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, T, E&gt; Iterator for <a class="struct" href="structs/struct.FlattenOk.html" title="struct itertools::structs::FlattenOk">FlattenOk</a>&lt;I, T, E&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator&lt;Item = Result&lt;T, E&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: IntoIterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Result&lt;T::Item, E&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Result&lt;T, E&gt;&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: IntoIterator,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that flattens every <code>Result::Ok</code> value into
a series of <code>Result::Ok</code> values. <code>Result::Err</code> values are unchanged. <a href="trait.Itertools.html#method.flatten_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.merge" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#943-949">source</a><a href="#method.merge" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.merge" class="fnname">merge</a>&lt;J&gt;(self, other: J) -&gt; <a class="type" href="structs/type.Merge.html" title="type itertools::structs::Merge">Merge</a>&lt;Self, J::IntoIter&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialOrd,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator&lt;Item = Self::Item&gt;,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that merges the two base iterators in
ascending order. If both base iterators are sorted (ascending), the
result is sorted. <a href="trait.Itertools.html#method.merge">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.merge_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#967-973">source</a><a href="#method.merge_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.merge_by" class="fnname">merge_by</a>&lt;J, F&gt;(self, other: J, is_first: F) -&gt; <a class="struct" href="structs/struct.MergeBy.html" title="struct itertools::structs::MergeBy">MergeBy</a>&lt;Self, J::IntoIter, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.MergeBy.html" title="struct itertools::structs::MergeBy">MergeBy</a>&lt;I, J, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, J, F&gt; Iterator for <a class="struct" href="structs/struct.MergeBy.html" title="struct itertools::structs::MergeBy">MergeBy</a>&lt;I, J, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: Iterator&lt;Item = I::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: MergePredicate&lt;I::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator&lt;Item = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that merges the two base iterators in order.
This is much like <a href="trait.Itertools.html#method.merge"><code>.merge()</code></a> but allows for a custom ordering. <a href="trait.Itertools.html#method.merge_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.merge_join_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1003-1009">source</a><a href="#method.merge_join_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.merge_join_by" class="fnname">merge_join_by</a>&lt;J, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;other: J,<br>&nbsp;&nbsp;&nbsp;&nbsp;cmp_fn: F<br>) -&gt; <a class="struct" href="structs/struct.MergeJoinBy.html" title="struct itertools::structs::MergeJoinBy">MergeJoinBy</a>&lt;Self, J::IntoIter, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.MergeJoinBy.html" title="struct itertools::structs::MergeJoinBy">MergeJoinBy</a>&lt;I, J, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, J, F&gt; Iterator for <a class="struct" href="structs/struct.MergeJoinBy.html" title="struct itertools::structs::MergeJoinBy">MergeJoinBy</a>&lt;I, J, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;I::Item, &amp;J::Item) -&gt; Ordering,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <a class="enum" href="enum.EitherOrBoth.html" title="enum itertools::EitherOrBoth">EitherOrBoth</a>&lt;I::Item, J::Item&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;J::Item) -&gt; Ordering,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Create an iterator that merges items from both this and the specified
iterator in ascending order. <a href="trait.Itertools.html#method.merge_join_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.kmerge" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1028-1034">source</a><a href="#method.kmerge" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.kmerge" class="fnname">kmerge</a>(self) -&gt; <a class="type" href="structs/type.KMerge.html" title="type itertools::structs::KMerge">KMerge</a>&lt;&lt;Self::Item as IntoIterator&gt;::IntoIter&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Self::Item as IntoIterator&gt;::Item: PartialOrd,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that flattens an iterator of iterators by
merging them in ascending order. <a href="trait.Itertools.html#method.kmerge">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.kmerge_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1057-1065">source</a><a href="#method.kmerge_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.kmerge_by" class="fnname">kmerge_by</a>&lt;F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;first: F<br>) -&gt; <a class="struct" href="structs/struct.KMergeBy.html" title="struct itertools::structs::KMergeBy">KMergeBy</a>&lt;&lt;Self::Item as IntoIterator&gt;::IntoIter, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.KMergeBy.html" title="struct itertools::structs::KMergeBy">KMergeBy</a>&lt;I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, F&gt; Iterator for <a class="struct" href="structs/struct.KMergeBy.html" title="struct itertools::structs::KMergeBy">KMergeBy</a>&lt;I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: KMergePredicate&lt;I::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;&lt;Self::Item as IntoIterator&gt;::Item, &amp;&lt;Self::Item as IntoIterator&gt;::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that flattens an iterator of iterators by
merging them according to the given closure. <a href="trait.Itertools.html#method.kmerge_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cartesian_product" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1078-1085">source</a><a href="#method.cartesian_product" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.cartesian_product" class="fnname">cartesian_product</a>&lt;J&gt;(self, other: J) -&gt; <a class="struct" href="structs/struct.Product.html" title="struct itertools::structs::Product">Product</a>&lt;Self, J::IntoIter&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Product.html" title="struct itertools::structs::Product">Product</a>&lt;I, J&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, J&gt; Iterator for <a class="struct" href="structs/struct.Product.html" title="struct itertools::structs::Product">Product</a>&lt;I, J&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: Clone + Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = (I::Item, J::Item);</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;J::IntoIter: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over the cartesian product of
the element sets of two iterators <code>self</code> and <code>J</code>. <a href="trait.Itertools.html#method.cartesian_product">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.multi_cartesian_product" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1113-1120">source</a><a href="#method.multi_cartesian_product" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.multi_cartesian_product" class="fnname">multi_cartesian_product</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self<br>) -&gt; <a class="struct" href="structs/struct.MultiProduct.html" title="struct itertools::structs::MultiProduct">MultiProduct</a>&lt;&lt;Self::Item as IntoIterator&gt;::IntoIter&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.MultiProduct.html" title="struct itertools::structs::MultiProduct">MultiProduct</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I&gt; Iterator for <a class="struct" href="structs/struct.MultiProduct.html" title="struct itertools::structs::MultiProduct">MultiProduct</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator + Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec&lt;I::Item&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: IntoIterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Self::Item as IntoIterator&gt;::IntoIter: Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Self::Item as IntoIterator&gt;::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over the cartesian product of
all subiterators returned by meta-iterator <code>self</code>. <a href="trait.Itertools.html#method.multi_cartesian_product">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coalesce" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1150-1156">source</a><a href="#method.coalesce" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.coalesce" class="fnname">coalesce</a>&lt;F&gt;(self, f: F) -&gt; <a class="type" href="structs/type.Coalesce.html" title="type itertools::structs::Coalesce">Coalesce</a>&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, Self::Item) -&gt; Result&lt;Self::Item, (Self::Item, Self::Item)&gt;,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that uses the passed-in closure to
optionally merge together consecutive elements. <a href="trait.Itertools.html#method.coalesce">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dedup" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1172-1177">source</a><a href="#method.dedup" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dedup" class="fnname">dedup</a>(self) -&gt; <a class="type" href="structs/type.Dedup.html" title="type itertools::structs::Dedup">Dedup</a>&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialEq,</span></h4></section></summary><div class='docblock'>Remove duplicates from sections of consecutive identical elements.
If the iterator is sorted, all elements will be unique. <a href="trait.Itertools.html#method.dedup">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dedup_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1194-1199">source</a><a href="#method.dedup_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dedup_by" class="fnname">dedup_by</a>&lt;Cmp&gt;(self, cmp: Cmp) -&gt; <a class="type" href="structs/type.DedupBy.html" title="type itertools::structs::DedupBy">DedupBy</a>&lt;Self, Cmp&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Cmp: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Remove duplicates from sections of consecutive identical elements,
determining equality using a comparison function.
If the iterator is sorted, all elements will be unique. <a href="trait.Itertools.html#method.dedup_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dedup_with_count" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1216-1221">source</a><a href="#method.dedup_with_count" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dedup_with_count" class="fnname">dedup_with_count</a>(self) -&gt; <a class="type" href="structs/type.DedupWithCount.html" title="type itertools::structs::DedupWithCount">DedupWithCount</a>&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Remove duplicates from sections of consecutive identical elements, while keeping a count of
how many repeated elements were present.
If the iterator is sorted, all elements will be unique. <a href="trait.Itertools.html#method.dedup_with_count">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dedup_by_with_count" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1239-1245">source</a><a href="#method.dedup_by_with_count" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dedup_by_with_count" class="fnname">dedup_by_with_count</a>&lt;Cmp&gt;(self, cmp: Cmp) -&gt; <a class="type" href="structs/type.DedupByWithCount.html" title="type itertools::structs::DedupByWithCount">DedupByWithCount</a>&lt;Self, Cmp&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Cmp: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Remove duplicates from sections of consecutive identical elements, while keeping a count of
how many repeated elements were present.
This will determine equality using a comparison function.
If the iterator is sorted, all elements will be unique. <a href="trait.Itertools.html#method.dedup_by_with_count">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.duplicates" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1262-1267">source</a><a href="#method.duplicates" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.duplicates" class="fnname">duplicates</a>(self) -&gt; <a class="type" href="structs/type.Duplicates.html" title="type itertools::structs::Duplicates">Duplicates</a>&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Eq + Hash,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that produces elements that appear more than once during the
iteration. Duplicates are detected using hash and equality. <a href="trait.Itertools.html#method.duplicates">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.duplicates_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1287-1293">source</a><a href="#method.duplicates_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.duplicates_by" class="fnname">duplicates_by</a>&lt;V, F&gt;(self, f: F) -&gt; <a class="type" href="structs/type.DuplicatesBy.html" title="type itertools::structs::DuplicatesBy">DuplicatesBy</a>&lt;Self, V, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Eq + Hash,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; V,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that produces elements that appear more than once during the
iteration. Duplicates are detected using hash and equality. <a href="trait.Itertools.html#method.duplicates_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unique" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1314-1319">source</a><a href="#method.unique" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.unique" class="fnname">unique</a>(self) -&gt; <a class="struct" href="structs/struct.Unique.html" title="struct itertools::structs::Unique">Unique</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Unique.html" title="struct itertools::structs::Unique">Unique</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I&gt; Iterator for <a class="struct" href="structs/struct.Unique.html" title="struct itertools::structs::Unique">Unique</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::Item: Eq + Hash + Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone + Eq + Hash,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters out elements that have
already been produced once during the iteration. Duplicates
are detected using hash and equality. <a href="trait.Itertools.html#method.unique">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unique_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1340-1346">source</a><a href="#method.unique_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.unique_by" class="fnname">unique_by</a>&lt;V, F&gt;(self, f: F) -&gt; <a class="struct" href="structs/struct.UniqueBy.html" title="struct itertools::structs::UniqueBy">UniqueBy</a>&lt;Self, V, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.UniqueBy.html" title="struct itertools::structs::UniqueBy">UniqueBy</a>&lt;I, V, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, V, F&gt; Iterator for <a class="struct" href="structs/struct.UniqueBy.html" title="struct itertools::structs::UniqueBy">UniqueBy</a>&lt;I, V, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Eq + Hash,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;I::Item) -&gt; V,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Eq + Hash,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; V,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters out elements that have
already been produced once during the iteration. <a href="trait.Itertools.html#method.unique_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.peeking_take_while" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1360-1365">source</a><a href="#method.peeking_take_while" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.peeking_take_while" class="fnname">peeking_take_while</a>&lt;F&gt;(&amp;mut self, accept: F) -&gt; <a class="struct" href="structs/struct.PeekingTakeWhile.html" title="struct itertools::structs::PeekingTakeWhile">PeekingTakeWhile</a>&lt;'_, Self, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.PeekingTakeWhile.html" title="struct itertools::structs::PeekingTakeWhile">PeekingTakeWhile</a>&lt;'a, I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;'a, I, F&gt; Iterator for <a class="struct" href="structs/struct.PeekingTakeWhile.html" title="struct itertools::structs::PeekingTakeWhile">PeekingTakeWhile</a>&lt;'a, I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="trait.PeekingNext.html" title="trait itertools::PeekingNext">PeekingNext</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;I::Item) -&gt; bool,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + <a class="trait" href="trait.PeekingNext.html" title="trait itertools::PeekingNext">PeekingNext</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that borrows from this iterator and
takes items while the closure <code>accept</code> returns <code>true</code>. <a href="trait.Itertools.html#method.peeking_take_while">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take_while_ref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1385-1390">source</a><a href="#method.take_while_ref" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.take_while_ref" class="fnname">take_while_ref</a>&lt;F&gt;(&amp;mut self, accept: F) -&gt; <a class="struct" href="structs/struct.TakeWhileRef.html" title="struct itertools::structs::TakeWhileRef">TakeWhileRef</a>&lt;'_, Self, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.TakeWhileRef.html" title="struct itertools::structs::TakeWhileRef">TakeWhileRef</a>&lt;'a, I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;'a, I, F&gt; Iterator for <a class="struct" href="structs/struct.TakeWhileRef.html" title="struct itertools::structs::TakeWhileRef">TakeWhileRef</a>&lt;'a, I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator + Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;I::Item) -&gt; bool,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that borrows from a <code>Clone</code>-able iterator
to only pick off elements while the predicate <code>accept</code> returns <code>true</code>. <a href="trait.Itertools.html#method.take_while_ref">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.while_some" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1406-1410">source</a><a href="#method.while_some" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.while_some" class="fnname">while_some</a>&lt;A&gt;(self) -&gt; <a class="struct" href="structs/struct.WhileSome.html" title="struct itertools::structs::WhileSome">WhileSome</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.WhileSome.html" title="struct itertools::structs::WhileSome">WhileSome</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, A&gt; Iterator for <a class="struct" href="structs/struct.WhileSome.html" title="struct itertools::structs::WhileSome">WhileSome</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator&lt;Item = Option&lt;A&gt;&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = A;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + Iterator&lt;Item = Option&lt;A&gt;&gt;,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters <code>Option&lt;A&gt;</code> iterator elements
and produces <code>A</code>. Stops on the first <code>None</code> encountered. <a href="trait.Itertools.html#method.while_some">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tuple_combinations" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1445-1451">source</a><a href="#method.tuple_combinations" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tuple_combinations" class="fnname">tuple_combinations</a>&lt;T&gt;(self) -&gt; <a class="struct" href="structs/struct.TupleCombinations.html" title="struct itertools::structs::TupleCombinations">TupleCombinations</a>&lt;Self, T&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.TupleCombinations.html" title="struct itertools::structs::TupleCombinations">TupleCombinations</a>&lt;I, T&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, T&gt; Iterator for <a class="struct" href="structs/struct.TupleCombinations.html" title="struct itertools::structs::TupleCombinations">TupleCombinations</a>&lt;I, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: HasCombination&lt;I&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = T;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: HasCombination&lt;Self&gt;,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over the combinations of the
elements from an iterator. <a href="trait.Itertools.html#method.tuple_combinations">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.combinations" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1483-1488">source</a><a href="#method.combinations" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.combinations" class="fnname">combinations</a>(self, k: usize) -&gt; <a class="struct" href="structs/struct.Combinations.html" title="struct itertools::structs::Combinations">Combinations</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Combinations.html" title="struct itertools::structs::Combinations">Combinations</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I&gt; Iterator for <a class="struct" href="structs/struct.Combinations.html" title="struct itertools::structs::Combinations">Combinations</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec&lt;I::Item&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over the <code>k</code>-length combinations of
the elements from an iterator. <a href="trait.Itertools.html#method.combinations">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.combinations_with_replacement" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1510-1516">source</a><a href="#method.combinations_with_replacement" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.combinations_with_replacement" class="fnname">combinations_with_replacement</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;k: usize<br>) -&gt; <a class="struct" href="structs/struct.CombinationsWithReplacement.html" title="struct itertools::structs::CombinationsWithReplacement">CombinationsWithReplacement</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.CombinationsWithReplacement.html" title="struct itertools::structs::CombinationsWithReplacement">CombinationsWithReplacement</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I&gt; Iterator for <a class="struct" href="structs/struct.CombinationsWithReplacement.html" title="struct itertools::structs::CombinationsWithReplacement">CombinationsWithReplacement</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec&lt;I::Item&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator that iterates over the <code>k</code>-length combinations of
the elements from an iterator, with replacement. <a href="trait.Itertools.html#method.combinations_with_replacement">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permutations" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1556-1561">source</a><a href="#method.permutations" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.permutations" class="fnname">permutations</a>(self, k: usize) -&gt; <a class="struct" href="structs/struct.Permutations.html" title="struct itertools::structs::Permutations">Permutations</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Permutations.html" title="struct itertools::structs::Permutations">Permutations</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I&gt; Iterator for <a class="struct" href="structs/struct.Permutations.html" title="struct itertools::structs::Permutations">Permutations</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec&lt;I::Item&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over all k-permutations of the
elements from an iterator. <a href="trait.Itertools.html#method.permutations">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.powerset" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1592-1597">source</a><a href="#method.powerset" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.powerset" class="fnname">powerset</a>(self) -&gt; <a class="struct" href="structs/struct.Powerset.html" title="struct itertools::structs::Powerset">Powerset</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Powerset.html" title="struct itertools::structs::Powerset">Powerset</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I&gt; Iterator for <a class="struct" href="structs/struct.Powerset.html" title="struct itertools::structs::Powerset">Powerset</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec&lt;I::Item&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator that iterates through the powerset of the elements from an
iterator. <a href="trait.Itertools.html#method.powerset">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pad_using" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1616-1621">source</a><a href="#method.pad_using" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.pad_using" class="fnname">pad_using</a>&lt;F&gt;(self, min: usize, f: F) -&gt; <a class="struct" href="structs/struct.PadUsing.html" title="struct itertools::structs::PadUsing">PadUsing</a>&lt;Self, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.PadUsing.html" title="struct itertools::structs::PadUsing">PadUsing</a>&lt;I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, F&gt; Iterator for <a class="struct" href="structs/struct.PadUsing.html" title="struct itertools::structs::PadUsing">PadUsing</a>&lt;I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(usize) -&gt; I::Item,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(usize) -&gt; Self::Item,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that pads the sequence to a minimum length of
<code>min</code> by filling missing elements using a closure <code>f</code>. <a href="trait.Itertools.html#method.pad_using">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_position" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1642-1646">source</a><a href="#method.with_position" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.with_position" class="fnname">with_position</a>(self) -&gt; <a class="struct" href="structs/struct.WithPosition.html" title="struct itertools::structs::WithPosition">WithPosition</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.WithPosition.html" title="struct itertools::structs::WithPosition">WithPosition</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I:&nbsp;Iterator&gt; Iterator for <a class="struct" href="structs/struct.WithPosition.html" title="struct itertools::structs::WithPosition">WithPosition</a>&lt;I&gt;</span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <a class="enum" href="enum.Position.html" title="enum itertools::Position">Position</a>&lt;I::Item&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that wraps each element in a <code>Position</code> to
ease special-case handling of the first or last elements. <a href="trait.Itertools.html#method.with_position">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.positions" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1661-1666">source</a><a href="#method.positions" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.positions" class="fnname">positions</a>&lt;P&gt;(self, predicate: P) -&gt; <a class="struct" href="structs/struct.Positions.html" title="struct itertools::structs::Positions">Positions</a>&lt;Self, P&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Positions.html" title="struct itertools::structs::Positions">Positions</a>&lt;I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, F&gt; Iterator for <a class="struct" href="structs/struct.Positions.html" title="struct itertools::structs::Positions">Positions</a>&lt;I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(I::Item) -&gt; bool,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = usize;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that yields the indices of all elements
satisfying a predicate, counted from the start of the iterator. <a href="trait.Itertools.html#method.positions">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.update" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1678-1683">source</a><a href="#method.update" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.update" class="fnname">update</a>&lt;F&gt;(self, updater: F) -&gt; <a class="struct" href="structs/struct.Update.html" title="struct itertools::structs::Update">Update</a>&lt;Self, F&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Update.html" title="struct itertools::structs::Update">Update</a>&lt;I, F&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I, F&gt; Iterator for <a class="struct" href="structs/struct.Update.html" title="struct itertools::structs::Update">Update</a>&lt;I, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;mut I::Item),</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;mut Self::Item),</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that applies a mutating function
to each element before yielding it. <a href="trait.Itertools.html#method.update">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_tuple" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1699-1704">source</a><a href="#method.next_tuple" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.next_tuple" class="fnname">next_tuple</a>&lt;T&gt;(&amp;mut self) -&gt; Option&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + Iterator&lt;Item = T::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,</span></h4></section></summary><div class='docblock'>Advances the iterator and returns the next items grouped in a tuple of
a specific size (up to 12). <a href="trait.Itertools.html#method.next_tuple">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.collect_tuple" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1724-1735">source</a><a href="#method.collect_tuple" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.collect_tuple" class="fnname">collect_tuple</a>&lt;T&gt;(self) -&gt; Option&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + Iterator&lt;Item = T::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,</span></h4></section></summary><div class='docblock'>Collects all items from the iterator into a tuple of a specific size
(up to 12). <a href="trait.Itertools.html#method.collect_tuple">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_position" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1748-1757">source</a><a href="#method.find_position" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.find_position" class="fnname">find_position</a>&lt;P&gt;(&amp;mut self, pred: P) -&gt; Option&lt;(usize, Self::Item)&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Find the position and value of the first element satisfying a predicate. <a href="trait.Itertools.html#method.find_position">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_or_last" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1770-1777">source</a><a href="#method.find_or_last" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.find_or_last" class="fnname">find_or_last</a>&lt;P&gt;(self, predicate: P) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Find the value of the first element satisfying a predicate or return the last element, if any. <a href="trait.Itertools.html#method.find_or_last">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_or_first" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1790-1800">source</a><a href="#method.find_or_first" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.find_or_first" class="fnname">find_or_first</a>&lt;P&gt;(self, predicate: P) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;P: FnMut(&amp;Self::Item) -&gt; bool,</span></h4></section></summary><div class='docblock'>Find the value of the first element satisfying a predicate or return the first element, if any. <a href="trait.Itertools.html#method.find_or_first">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.contains" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1826-1833">source</a><a href="#method.contains" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.contains" class="fnname">contains</a>&lt;Q&gt;(&amp;mut self, query: &amp;Q) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Borrow&lt;Q&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Q: PartialEq,</span></h4></section></summary><div class='docblock'>Returns <code>true</code> if the given item is present in this iterator. <a href="trait.Itertools.html#method.contains">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.all_equal" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1851-1859">source</a><a href="#method.all_equal" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.all_equal" class="fnname">all_equal</a>(&amp;mut self) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialEq,</span></h4></section></summary><div class='docblock'>Check whether all elements compare equal. <a href="trait.Itertools.html#method.all_equal">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.all_unique" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1877-1883">source</a><a href="#method.all_unique" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.all_unique" class="fnname">all_unique</a>(&amp;mut self) -&gt; bool<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Eq + Hash,</span></h4></section></summary><div class='docblock'>Check whether all elements are unique (non equal). <a href="trait.Itertools.html#method.all_unique">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dropping" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1900-1907">source</a><a href="#method.dropping" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dropping" class="fnname">dropping</a>(self, n: usize) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Consume the first <code>n</code> elements from the iterator eagerly,
and return the same iterator again. <a href="trait.Itertools.html#method.dropping">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dropping_back" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1924-1932">source</a><a href="#method.dropping_back" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dropping_back" class="fnname">dropping_back</a>(self, n: usize) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: DoubleEndedIterator,</span></h4></section></summary><div class='docblock'>Consume the last <code>n</code> elements from the iterator eagerly,
and return the same iterator again. <a href="trait.Itertools.html#method.dropping_back">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.foreach" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1952-1957">source</a><a href="#method.foreach" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.foreach" class="fnname">foreach</a>&lt;F&gt;(self, f: F)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item),<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.8.0: Use .for_each() instead</span></div></span><div class='docblock'>Run the closure <code>f</code> eagerly on each element of the iterator. <a href="trait.Itertools.html#method.foreach">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.concat" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1972-1977">source</a><a href="#method.concat" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.concat" class="fnname">concat</a>(self) -&gt; Self::Item<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Extend&lt;&lt;&lt;Self as Iterator&gt;::Item as IntoIterator&gt;::Item&gt; + IntoIterator + Default,</span></h4></section></summary><div class='docblock'>Combine all an iterator’s elements into one element by using [<code>Extend</code>]. <a href="trait.Itertools.html#method.concat">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.collect_vec" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1982-1986">source</a><a href="#method.collect_vec" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.collect_vec" class="fnname">collect_vec</a>(self) -&gt; Vec&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'><code>.collect_vec()</code> is simply a type specialization of [<code>Iterator::collect</code>],
for convenience. <a href="trait.Itertools.html#method.collect_vec">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_collect" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2009-2015">source</a><a href="#method.try_collect" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.try_collect" class="fnname">try_collect</a>&lt;T, U, E&gt;(self) -&gt; Result&lt;U, E&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + Iterator&lt;Item = Result&lt;T, E&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Result&lt;U, E&gt;: FromIterator&lt;Result&lt;T, E&gt;&gt;,</span></h4></section></summary><div class='docblock'><code>.try_collect()</code> is more convenient way of writing
<code>.collect::&lt;Result&lt;_, _&gt;&gt;()</code> <a href="trait.Itertools.html#method.try_collect">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2033-2046">source</a><a href="#method.set_from" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.set_from" class="fnname">set_from</a>&lt;'a, A:&nbsp;'a, J&gt;(&amp;mut self, from: J) -&gt; usize<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = &amp;'a mut A&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;J: IntoIterator&lt;Item = A&gt;,</span></h4></section></summary><div class='docblock'>Assign to each reference in <code>self</code> from the <code>from</code> iterator,
stopping at the shortest of the two iterators. <a href="trait.Itertools.html#method.set_from">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.join" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2059-2076">source</a><a href="#method.join" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.join" class="fnname">join</a>(&amp;mut self, sep: &amp;str) -&gt; String<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Display,</span></h4></section></summary><div class='docblock'>Combine all iterator elements into one String, separated by <code>sep</code>. <a href="trait.Itertools.html#method.join">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2093-2097">source</a><a href="#method.format" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.format" class="fnname">format</a>(self, sep: &amp;str) -&gt; <a class="struct" href="structs/struct.Format.html" title="struct itertools::structs::Format">Format</a>&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Format all iterator elements, separated by <code>sep</code>. <a href="trait.Itertools.html#method.format">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_with" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2131-2136">source</a><a href="#method.format_with" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.format_with" class="fnname">format_with</a>&lt;F&gt;(self, sep: &amp;str, format: F) -&gt; <a class="struct" href="structs/struct.FormatWith.html" title="struct itertools::structs::FormatWith">FormatWith</a>&lt;'_, Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, &amp;mut dyn FnMut(&amp;dyn Display) -&gt; Result) -&gt; Result,</span></h4></section></summary><div class='docblock'>Format all iterator elements, separated by <code>sep</code>. <a href="trait.Itertools.html#method.format_with">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold_results" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2140-2145">source</a><a href="#method.fold_results" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold_results" class="fnname">fold_results</a>&lt;A, E, B, F&gt;(&amp;mut self, start: B, f: F) -&gt; Result&lt;B, E&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Result&lt;A, E&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(B, A) -&gt; B,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.0: Use .fold_ok() instead</span></div></span><div class='docblock'>See <a href="trait.Itertools.html#method.fold_ok"><code>.fold_ok()</code></a>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2189-2200">source</a><a href="#method.fold_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold_ok" class="fnname">fold_ok</a>&lt;A, E, B, F&gt;(&amp;mut self, start: B, f: F) -&gt; Result&lt;B, E&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Result&lt;A, E&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(B, A) -&gt; B,</span></h4></section></summary><div class='docblock'>Fold <code>Result</code> values from an iterator. <a href="trait.Itertools.html#method.fold_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold_options" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2221-2232">source</a><a href="#method.fold_options" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold_options" class="fnname">fold_options</a>&lt;A, B, F&gt;(&amp;mut self, start: B, f: F) -&gt; Option&lt;B&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Option&lt;A&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(B, A) -&gt; B,</span></h4></section></summary><div class='docblock'>Fold <code>Option</code> values from an iterator. <a href="trait.Itertools.html#method.fold_options">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2247-2252">source</a><a href="#method.fold1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold1" class="fnname">fold1</a>&lt;F&gt;(self, f: F) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, Self::Item) -&gt; Self::Item,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.2: Use <code>Iterator::reduce</code> instead</span></div></span><div class='docblock'>Accumulator of the elements in the iterator. <a href="trait.Itertools.html#method.fold1">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tree_fold1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2302-2359">source</a><a href="#method.tree_fold1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tree_fold1" class="fnname">tree_fold1</a>&lt;F&gt;(self, f: F) -&gt; Option&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item, Self::Item) -&gt; Self::Item,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Accumulate the elements in the iterator in a tree-like manner. <a href="trait.Itertools.html#method.tree_fold1">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold_while" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2400-2420">source</a><a href="#method.fold_while" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold_while" class="fnname">fold_while</a>&lt;B, F&gt;(&amp;mut self, init: B, f: F) -&gt; <a class="enum" href="enum.FoldWhile.html" title="enum itertools::FoldWhile">FoldWhile</a>&lt;B&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(B, Self::Item) -&gt; <a class="enum" href="enum.FoldWhile.html" title="enum itertools::FoldWhile">FoldWhile</a>&lt;B&gt;,</span></h4></section></summary><div class='docblock'>An iterator method that applies a function, producing a single, final value. <a href="trait.Itertools.html#method.fold_while">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sum1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2443-2449">source</a><a href="#method.sum1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sum1" class="fnname">sum1</a>&lt;S&gt;(self) -&gt; Option&lt;S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Sum&lt;Self::Item&gt;,</span></h4></section></summary><div class='docblock'>Iterate over the entire iterator and add all the elements. <a href="trait.Itertools.html#method.sum1">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.product1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2471-2477">source</a><a href="#method.product1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.product1" class="fnname">product1</a>&lt;P&gt;(self) -&gt; Option&lt;P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;P: Product&lt;Self::Item&gt;,</span></h4></section></summary><div class='docblock'>Iterate over the entire iterator and multiply all the elements. <a href="trait.Itertools.html#method.product1">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_unstable" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2497-2506">source</a><a href="#method.sorted_unstable" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_unstable" class="fnname">sorted_unstable</a>(self) -&gt; IntoIter&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_unstable">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_unstable_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2532-2539">source</a><a href="#method.sorted_unstable_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_unstable_by" class="fnname">sorted_unstable_by</a>&lt;F&gt;(self, cmp: F) -&gt; IntoIter&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_unstable_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_unstable_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2565-2573">source</a><a href="#method.sorted_unstable_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_unstable_by_key" class="fnname">sorted_unstable_by_key</a>&lt;K, F&gt;(self, f: F) -&gt; IntoIter&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_unstable_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2593-2602">source</a><a href="#method.sorted" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted" class="fnname">sorted</a>(self) -&gt; IntoIter&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2628-2635">source</a><a href="#method.sorted_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_by" class="fnname">sorted_by</a>&lt;F&gt;(self, cmp: F) -&gt; IntoIter&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2661-2669">source</a><a href="#method.sorted_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_by_key" class="fnname">sorted_by_key</a>&lt;K, F&gt;(self, f: F) -&gt; IntoIter&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_by_cached_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2696-2705">source</a><a href="#method.sorted_by_cached_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_by_cached_key" class="fnname">sorted_by_cached_key</a>&lt;K, F&gt;(self, f: F) -&gt; IntoIter&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. The key function is
called exactly once per key. <a href="trait.Itertools.html#method.sorted_by_cached_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.k_smallest" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2735-2742">source</a><a href="#method.k_smallest" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.k_smallest" class="fnname">k_smallest</a>(self, k: usize) -&gt; IntoIter&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Sort the k smallest elements into a new iterator, in ascending order. <a href="trait.Itertools.html#method.k_smallest">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partition_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2765-2780">source</a><a href="#method.partition_map" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.partition_map" class="fnname">partition_map</a>&lt;A, B, F, L, R&gt;(self, predicate: F) -&gt; (A, B)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item) -&gt; <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a>&lt;L, R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: Default + Extend&lt;L&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Default + Extend&lt;R&gt;,</span></h4></section></summary><div class='docblock'>Collect all iterator elements into one of two
partitions. Unlike [<code>Iterator::partition</code>], each partition may
have a distinct type. <a href="trait.Itertools.html#method.partition_map">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partition_result" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2797-2807">source</a><a href="#method.partition_result" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.partition_result" class="fnname">partition_result</a>&lt;A, B, T, E&gt;(self) -&gt; (A, B)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = Result&lt;T, E&gt;&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;A: Default + Extend&lt;T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Default + Extend&lt;E&gt;,</span></h4></section></summary><div class='docblock'>Partition a sequence of <code>Result</code>s into one list of all the <code>Ok</code> elements
and another list of all the <code>Err</code> elements. <a href="trait.Itertools.html#method.partition_result">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_group_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2826-2831">source</a><a href="#method.into_group_map" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.into_group_map" class="fnname">into_group_map</a>&lt;K, V&gt;(self) -&gt; HashMap&lt;K, Vec&lt;V&gt;&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = (K, V)&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Hash + Eq,</span></h4></section></summary><div class='docblock'>Return a <code>HashMap</code> of keys mapped to <code>Vec</code>s of values. Keys and values
are taken from <code>(Key, Value)</code> tuple pairs yielded by the input iterator. <a href="trait.Itertools.html#method.into_group_map">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_group_map_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2861-2868">source</a><a href="#method.into_group_map_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.into_group_map_by" class="fnname">into_group_map_by</a>&lt;K, V, F&gt;(self, f: F) -&gt; HashMap&lt;K, Vec&lt;V&gt;&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = V&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Hash + Eq,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: Fn(&amp;V) -&gt; K,</span></h4></section></summary><div class='docblock'>Return an <code>Iterator</code> on a <code>HashMap</code>. Keys mapped to <code>Vec</code>s of values. The key is specified
in the closure. <a href="trait.Itertools.html#method.into_group_map_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_grouping_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2880-2885">source</a><a href="#method.into_grouping_map" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.into_grouping_map" class="fnname">into_grouping_map</a>&lt;K, V&gt;(self) -&gt; <a class="struct" href="structs/struct.GroupingMap.html" title="struct itertools::structs::GroupingMap">GroupingMap</a>&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = (K, V)&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Hash + Eq,</span></h4></section></summary><div class='docblock'>Constructs a <code>GroupingMap</code> to be used later with one of the efficient
group-and-fold operations it allows to perform. <a href="trait.Itertools.html#method.into_grouping_map">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_grouping_map_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2896-2902">source</a><a href="#method.into_grouping_map_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.into_grouping_map_by" class="fnname">into_grouping_map_by</a>&lt;K, V, F&gt;(self, key_mapper: F) -&gt; <a class="type" href="structs/type.GroupingMapBy.html" title="type itertools::structs::GroupingMapBy">GroupingMapBy</a>&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Iterator&lt;Item = V&gt; + Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Hash + Eq,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;V) -&gt; K,</span></h4></section></summary><div class='docblock'>Constructs a <code>GroupingMap</code> to be used later with one of the efficient
group-and-fold operations it allows to perform. <a href="trait.Itertools.html#method.into_grouping_map_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min_set" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2927-2931">source</a><a href="#method.min_set" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.min_set" class="fnname">min_set</a>(self) -&gt; Vec&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Return all minimum elements of an iterator. <a href="trait.Itertools.html#method.min_set">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min_set_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2958-2966">source</a><a href="#method.min_set_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.min_set_by" class="fnname">min_set_by</a>&lt;F&gt;(self, compare: F) -&gt; Vec&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Return all minimum elements of an iterator, as determined by
the specified function. <a href="trait.Itertools.html#method.min_set_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min_set_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2992-2996">source</a><a href="#method.min_set_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.min_set_by_key" class="fnname">min_set_by_key</a>&lt;K, F&gt;(self, key: F) -&gt; Vec&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Return all minimum elements of an iterator, as determined by
the specified function. <a href="trait.Itertools.html#method.min_set_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_set" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3021-3025">source</a><a href="#method.max_set" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.max_set" class="fnname">max_set</a>(self) -&gt; Vec&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Return all maximum elements of an iterator. <a href="trait.Itertools.html#method.max_set">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_set_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3052-3060">source</a><a href="#method.max_set_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.max_set_by" class="fnname">max_set_by</a>&lt;F&gt;(self, compare: F) -&gt; Vec&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Return all maximum elements of an iterator, as determined by
the specified function. <a href="trait.Itertools.html#method.max_set_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_set_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3086-3090">source</a><a href="#method.max_set_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.max_set_by_key" class="fnname">max_set_by_key</a>&lt;K, F&gt;(self, key: F) -&gt; Vec&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Return all minimum elements of an iterator, as determined by
the specified function. <a href="trait.Itertools.html#method.max_set_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.minmax" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3127-3131">source</a><a href="#method.minmax" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.minmax" class="fnname">minmax</a>(self) -&gt; <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a>&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialOrd,</span></h4></section></summary><div class='docblock'>Return the minimum and maximum elements in the iterator. <a href="trait.Itertools.html#method.minmax">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.minmax_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3144-3148">source</a><a href="#method.minmax_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.minmax_by_key" class="fnname">minmax_by_key</a>&lt;K, F&gt;(self, key: F) -&gt; <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a>&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: PartialOrd,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Return the minimum and maximum element of an iterator, as determined by
the specified function. <a href="trait.Itertools.html#method.minmax_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.minmax_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3158-3166">source</a><a href="#method.minmax_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.minmax_by" class="fnname">minmax_by</a>&lt;F&gt;(self, compare: F) -&gt; <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a>&lt;Self::Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Return the minimum and maximum element of an iterator, as determined by
the specified comparison function. <a href="trait.Itertools.html#method.minmax_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_max" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3187-3193">source</a><a href="#method.position_max" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_max" class="fnname">position_max</a>(self) -&gt; Option&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Return the position of the maximum element in the iterator. <a href="trait.Itertools.html#method.position_max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_max_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3215-3221">source</a><a href="#method.position_max_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_max_by_key" class="fnname">position_max_by_key</a>&lt;K, F&gt;(self, key: F) -&gt; Option&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Return the position of the maximum element in the iterator, as
determined by the specified function. <a href="trait.Itertools.html#method.position_max_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_max_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3243-3249">source</a><a href="#method.position_max_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_max_by" class="fnname">position_max_by</a>&lt;F&gt;(self, compare: F) -&gt; Option&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Return the position of the maximum element in the iterator, as
determined by the specified comparison function. <a href="trait.Itertools.html#method.position_max_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_min" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3270-3276">source</a><a href="#method.position_min" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_min" class="fnname">position_min</a>(self) -&gt; Option&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Return the position of the minimum element in the iterator. <a href="trait.Itertools.html#method.position_min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_min_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3298-3304">source</a><a href="#method.position_min_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_min_by_key" class="fnname">position_min_by_key</a>&lt;K, F&gt;(self, key: F) -&gt; Option&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Ord,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Return the position of the minimum element in the iterator, as
determined by the specified function. <a href="trait.Itertools.html#method.position_min_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_min_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3326-3332">source</a><a href="#method.position_min_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_min_by" class="fnname">position_min_by</a>&lt;F&gt;(self, compare: F) -&gt; Option&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Return the position of the minimum element in the iterator, as
determined by the specified comparison function. <a href="trait.Itertools.html#method.position_min_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_minmax" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3376-3385">source</a><a href="#method.position_minmax" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_minmax" class="fnname">position_minmax</a>(self) -&gt; <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a>&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: PartialOrd,</span></h4></section></summary><div class='docblock'>Return the positions of the minimum and maximum elements in
the iterator. <a href="trait.Itertools.html#method.position_minmax">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_minmax_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3421-3430">source</a><a href="#method.position_minmax_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_minmax_by_key" class="fnname">position_minmax_by_key</a>&lt;K, F&gt;(self, key: F) -&gt; <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a>&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: PartialOrd,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Return the postions of the minimum and maximum elements of an
iterator, as determined by the specified function. <a href="trait.Itertools.html#method.position_minmax_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_minmax_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3463-3472">source</a><a href="#method.position_minmax_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_minmax_by" class="fnname">position_minmax_by</a>&lt;F&gt;(self, compare: F) -&gt; <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a>&lt;usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::Item, &amp;Self::Item) -&gt; Ordering,</span></h4></section></summary><div class='docblock'>Return the postions of the minimum and maximum elements of an
iterator, as determined by the specified comparison function. <a href="trait.Itertools.html#method.position_minmax_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.exactly_one" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3491-3508">source</a><a href="#method.exactly_one" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.exactly_one" class="fnname">exactly_one</a>(self) -&gt; Result&lt;Self::Item, <a class="struct" href="structs/struct.ExactlyOneError.html" title="struct itertools::structs::ExactlyOneError">ExactlyOneError</a>&lt;Self&gt;&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>If the iterator yields exactly one element, that element will be returned, otherwise
an error will be returned containing an iterator that has the same output as the input
iterator. <a href="trait.Itertools.html#method.exactly_one">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.at_most_one" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3527-3544">source</a><a href="#method.at_most_one" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.at_most_one" class="fnname">at_most_one</a>(self) -&gt; Result&lt;Option&lt;Self::Item&gt;, <a class="struct" href="structs/struct.ExactlyOneError.html" title="struct itertools::structs::ExactlyOneError">ExactlyOneError</a>&lt;Self&gt;&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>If the iterator yields no elements, Ok(None) will be returned. If the iterator yields
exactly one element, that element will be returned, otherwise an error will be returned
containing an iterator that has the same output as the input iterator. <a href="trait.Itertools.html#method.at_most_one">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.multipeek" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3561-3566">source</a><a href="#method.multipeek" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.multipeek" class="fnname">multipeek</a>(self) -&gt; <a class="struct" href="structs/struct.MultiPeek.html" title="struct itertools::structs::MultiPeek">MultiPeek</a>&lt;Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.MultiPeek.html" title="struct itertools::structs::MultiPeek">MultiPeek</a>&lt;I&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;I&gt; Iterator for <a class="struct" href="structs/struct.MultiPeek.html" title="struct itertools::structs::MultiPeek">MultiPeek</a>&lt;I&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: Iterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>An iterator adaptor that allows the user to peek at multiple <code>.next()</code>
values without advancing the base iterator. <a href="trait.Itertools.html#method.multipeek">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.counts" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3582-3590">source</a><a href="#method.counts" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.counts" class="fnname">counts</a>(self) -&gt; HashMap&lt;Self::Item, usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::Item: Eq + Hash,</span></h4></section></summary><div class='docblock'>Collect the items in this iterator and return a <code>HashMap</code> which
contains each item that appears in the iterator and the number
of times it appears. <a href="trait.Itertools.html#method.counts">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.counts_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3625-3632">source</a><a href="#method.counts_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.counts_by" class="fnname">counts_by</a>&lt;K, F&gt;(self, f: F) -&gt; HashMap&lt;K, usize&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Eq + Hash,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(Self::Item) -&gt; K,</span></h4></section></summary><div class='docblock'>Collect the items in this iterator and return a <code>HashMap</code> which
contains each item that appears in the iterator and the number
of times it appears,
determining identity using a keying function. <a href="trait.Itertools.html#method.counts_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.multiunzip" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3654-3659">source</a><a href="#method.multiunzip" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.multiunzip" class="fnname">multiunzip</a>&lt;FromI&gt;(self) -&gt; FromI<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized + <a class="trait" href="trait.MultiUnzip.html" title="trait itertools::MultiUnzip">MultiUnzip</a>&lt;FromI&gt;,</span></h4></section></summary><div class='docblock'>Converts an iterator of tuples into a tuple of containers. <a href="trait.Itertools.html#method.multiunzip">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-Provider-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;E&gt; Provider for E<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;E: Error + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.provide-1" class="method trait-impl has-srclink"><a href="#method.provide-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">provide</a>(&amp;'a self, demand: &amp;mut Demand&lt;'a&gt;)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>provide_any</code>)</span></div></span><div class='docblock'>Data providers should implement this method to provide <em>all</em> values they are able to
provide by using <code>demand</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-ToOwned-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; ToOwned for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Clone,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a href="#method.to_owned" class="anchor"></a><h4 class="code-header">fn <a class="fnname">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a href="#method.clone_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">clone_into</a>(&amp;self, target: &amp;mut T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToString-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-ToString-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; ToString for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Display + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_string" class="method trait-impl has-srclink"><a href="#method.to_string" class="anchor"></a><h4 class="code-header">default fn <a class="fnname">to_string</a>(&amp;self) -&gt; String</h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-TryFrom%3CU%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryFrom&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: Into&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Infallible</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_from</a>(value: U) -&gt; Result&lt;T, &lt;T as TryFrom&lt;U&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-TryInto%3CU%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryInto&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: TryFrom&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = &lt;U as TryFrom&lt;T&gt;&gt;::Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_into</a>(self) -&gt; Result&lt;U, &lt;U as TryFrom&lt;T&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="itertools" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>