blob: 42d011296050454b5752cc3cdfe9db5bd1374614 [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 either - 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="../either/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="../either/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-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 either</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">either</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-55">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-750">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 either::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-166">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-179">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-197">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-215">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-233">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 either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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-258">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 either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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-271">source</a><h4 class="code-header">pub fn <a href="#method.as_pin_ref" class="fnname">as_pin_ref</a>(self: Pin&lt;&amp;Self&gt;) -&gt; <a class="enum" href="enum.Either.html" title="enum either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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-287">source</a><h4 class="code-header">pub fn <a href="#method.as_pin_mut" class="fnname">as_pin_mut</a>(self: Pin&lt;&amp;mut Self&gt;) -&gt; <a class="enum" href="enum.Either.html" title="enum either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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-305">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 either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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-327">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 either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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-349">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 either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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-376">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-406">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-427">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 either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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 either::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-448">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 either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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 either::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-470">source</a><h4 class="code-header">pub fn <a href="#method.into_iter" class="fnname">into_iter</a>(self) -&gt; <a class="enum" href="enum.Either.html" title="enum either::Either">Either</a>&lt;L::IntoIter, R::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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 = L::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-495">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-517">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-539">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-564">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-586">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-608">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-639">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-668">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-697">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-726">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-749">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-771">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 either::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-770">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 either::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-794">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 either::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-793">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 either::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-817">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 either::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-816">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 either::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-838">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 either::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-837">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 either::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-859">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 either::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-858">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 either::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-897">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 either::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-875">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-896">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 either::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 either::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 either::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 = L::Item&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = L::Item;</span><span class="where fmt-newline">impl&lt;L, R&gt; Future for <a class="enum" href="enum.Either.html" title="enum either::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 = L::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = L::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-1255">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 either::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-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1252-1254">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 [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 either::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-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_mut-4" 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 either::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-3" 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-3" 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 either::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-2" 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-2" 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-1245">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 either::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-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1242-1244">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 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 either::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-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1210">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 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-1235">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 either::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-1234">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 either::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-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_ref-5" 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 either::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-4" 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-4" 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 either::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-3" 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-3" 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-1186">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 either::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-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1183-1185">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;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 either::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-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1210">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;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-1150">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 either::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-1137">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]&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-1141">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-1145">source</a><a href="#method.read_until" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_until</a>(&amp;mut self, byte: u8, buf: &amp;mut Vec&lt;u8&gt;) -&gt; Result&lt;usize&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-1149">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&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-149">source</a><a href="#impl-Clone-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl&lt;L:&nbsp;Clone, R:&nbsp;Clone&gt; Clone for <a class="enum" href="enum.Either.html" title="enum either::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.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#135-140">source</a><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a class="fnname">clone</a>(&amp;self) -&gt; Self</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-148">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;Self)</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:&nbsp;Debug, R:&nbsp;Debug&gt; Debug for <a class="enum" href="enum.Either.html" title="enum either::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.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</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-1267">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 either::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 = L::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-1266">source</a><a href="#method.deref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">deref</a>(&amp;self) -&gt; &amp;Self::Target</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-1277">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 either::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 = L::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-1276">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 Self::Target</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-1309">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 either::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-1308">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</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-1053">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 either::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 = L::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-1033">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;Self::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-1045">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, Self::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-1052">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;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'>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-1299">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 either::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-1288">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-1293">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-1298">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-1063">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 either::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 = L::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-1062">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-931">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 either::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-930">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-907">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 either::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-906">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; Self</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-1086">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 either::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 = L::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-1085">source</a><a href="#method.poll" class="anchor"></a><h4 class="code-header">fn <a class="fnname">poll</a>(self: Pin&lt;&amp;mut Self&gt;, cx: &amp;mut Context&lt;'_&gt;) -&gt; Poll&lt;Self::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:&nbsp;Hash, R:&nbsp;Hash&gt; Hash for <a class="enum" href="enum.Either.html" title="enum either::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.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:&nbsp;Hasher&gt;(&amp;self, state: &amp;mut __H)</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-918">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 either::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-917">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-1024">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 either::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 = L::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-943">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;Self::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-947">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-954">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, Self::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-961">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(Self::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-965">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-969">source</a><a href="#method.last" class="anchor"></a><h4 class="code-header">fn <a class="fnname">last</a>(self) -&gt; Option&lt;Self::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-973">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;Self::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-980">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;Self::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-988">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;Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(&amp;Self::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-995">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(Self::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-1002">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(Self::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-1009">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;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'>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-1016">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(Self::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-1023">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(Self::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" 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" 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" 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" 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" 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" 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:&nbsp;Ord, R:&nbsp;Ord&gt; Ord for <a class="enum" href="enum.Either.html" title="enum either::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.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 either::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:&nbsp;PartialEq, R:&nbsp;PartialEq&gt; PartialEq&lt;<a class="enum" href="enum.Either.html" title="enum either::Either">Either</a>&lt;L, R&gt;&gt; for <a class="enum" href="enum.Either.html" title="enum either::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.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 either::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:&nbsp;PartialOrd, R:&nbsp;PartialOrd&gt; PartialOrd&lt;<a class="enum" href="enum.Either.html" title="enum either::Either">Either</a>&lt;L, R&gt;&gt; for <a class="enum" href="enum.Either.html" title="enum either::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.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 either::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-1112">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 either::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-1099">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&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-1103">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;()&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-1107">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&gt;) -&gt; Result&lt;usize&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-1111">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&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-1" class="method trait-impl has-srclink"><a href="#method.chain-1" 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-1" class="method trait-impl has-srclink"><a href="#method.take-1" 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-1126">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 either::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-1125">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&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-1176">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 either::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-1163">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&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-1167">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;()&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-1171">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;()&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-1175">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;()&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-2" class="method trait-impl has-srclink"><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'>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:&nbsp;Copy, R:&nbsp;Copy&gt; Copy for <a class="enum" href="enum.Either.html" title="enum either::Either">Either</a>&lt;L, R&gt;</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:&nbsp;Eq, R:&nbsp;Eq&gt; Eq for <a class="enum" href="enum.Either.html" title="enum either::Either">Either</a>&lt;L, R&gt;</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-1070">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 either::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 = L::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 either::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 either::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 either::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 either::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 either::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 either::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 either::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-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="either" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>