| <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The enum `Either` with variants `Left` and `Right` is a general purpose sum type with two cases."><meta name="keywords" content="rust, rustlang, rust-lang, Either"><title>Either in itertools - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../normalize.css"><link rel="stylesheet" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../ayu.css" disabled><link rel="stylesheet" href="../dark.css" disabled><link rel="stylesheet" href="../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../main.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../favicon.svg"></head><body class="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">☰</button><a class="sidebar-logo" href="../itertools/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../itertools/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Either</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block"><li><a href="#variant.Left">Left</a></li><li><a href="#variant.Right">Right</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.as_mut">as_mut</a></li><li><a href="#method.as_pin_mut">as_pin_mut</a></li><li><a href="#method.as_pin_ref">as_pin_ref</a></li><li><a href="#method.as_ref">as_ref</a></li><li><a href="#method.either">either</a></li><li><a href="#method.either_into">either_into</a></li><li><a href="#method.either_with">either_with</a></li><li><a href="#method.expect_left">expect_left</a></li><li><a href="#method.expect_right">expect_right</a></li><li><a href="#method.factor_err">factor_err</a></li><li><a href="#method.factor_first">factor_first</a></li><li><a href="#method.factor_none">factor_none</a></li><li><a href="#method.factor_ok">factor_ok</a></li><li><a href="#method.factor_second">factor_second</a></li><li><a href="#method.flip">flip</a></li><li><a href="#method.into_inner">into_inner</a></li><li><a href="#method.into_iter">into_iter</a></li><li><a href="#method.is_left">is_left</a></li><li><a href="#method.is_right">is_right</a></li><li><a href="#method.left">left</a></li><li><a href="#method.left_and_then">left_and_then</a></li><li><a href="#method.left_or">left_or</a></li><li><a href="#method.left_or_default">left_or_default</a></li><li><a href="#method.left_or_else">left_or_else</a></li><li><a href="#method.map">map</a></li><li><a href="#method.map_left">map_left</a></li><li><a href="#method.map_right">map_right</a></li><li><a href="#method.right">right</a></li><li><a href="#method.right_and_then">right_and_then</a></li><li><a href="#method.right_or">right_or</a></li><li><a href="#method.right_or_default">right_or_default</a></li><li><a href="#method.right_or_else">right_or_else</a></li><li><a href="#method.unwrap_left">unwrap_left</a></li><li><a href="#method.unwrap_right">unwrap_right</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsMut%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E">AsMut<[Target]></a></li><li><a href="#impl-AsMut%3CCStr%3E-for-Either%3CL%2C%20R%3E">AsMut<CStr></a></li><li><a href="#impl-AsMut%3COsStr%3E-for-Either%3CL%2C%20R%3E">AsMut<OsStr></a></li><li><a href="#impl-AsMut%3CPath%3E-for-Either%3CL%2C%20R%3E">AsMut<Path></a></li><li><a href="#impl-AsMut%3CTarget%3E-for-Either%3CL%2C%20R%3E">AsMut<Target></a></li><li><a href="#impl-AsMut%3Cstr%3E-for-Either%3CL%2C%20R%3E">AsMut<str></a></li><li><a href="#impl-AsRef%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E">AsRef<[Target]></a></li><li><a href="#impl-AsRef%3CCStr%3E-for-Either%3CL%2C%20R%3E">AsRef<CStr></a></li><li><a href="#impl-AsRef%3COsStr%3E-for-Either%3CL%2C%20R%3E">AsRef<OsStr></a></li><li><a href="#impl-AsRef%3CPath%3E-for-Either%3CL%2C%20R%3E">AsRef<Path></a></li><li><a href="#impl-AsRef%3CTarget%3E-for-Either%3CL%2C%20R%3E">AsRef<Target></a></li><li><a href="#impl-AsRef%3Cstr%3E-for-Either%3CL%2C%20R%3E">AsRef<str></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<A></a></li><li><a href="#impl-From%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E">From<Result<R, L>></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<Result<R, L>></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<Either<L, R>></a></li><li><a href="#impl-PartialOrd%3CEither%3CL%2C%20R%3E%3E-for-Either%3CL%2C%20R%3E">PartialOrd<Either<L, R>></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<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Either%3CL%2C%20R%3E">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-Either%3CL%2C%20R%3E">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-Either%3CL%2C%20R%3E">Into<U></a></li><li><a href="#impl-IntoFuture-for-Either%3CL%2C%20R%3E">IntoFuture</a></li><li><a href="#impl-IntoIterator-for-Either%3CL%2C%20R%3E">IntoIterator</a></li><li><a href="#impl-Itertools-for-Either%3CL%2C%20R%3E">Itertools</a></li><li><a href="#impl-Provider-for-Either%3CL%2C%20R%3E">Provider</a></li><li><a href="#impl-ToOwned-for-Either%3CL%2C%20R%3E">ToOwned</a></li><li><a href="#impl-ToString-for-Either%3CL%2C%20R%3E">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Either%3CL%2C%20R%3E">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-Either%3CL%2C%20R%3E">TryInto<U></a></li></ul></section><h2><a href="index.html">In itertools</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Enum <a href="index.html">itertools</a>::<wbr><a class="enum" href="#">Either</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../src/either/lib.rs.html#50">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="item-decl"><pre class="rust enum"><code>pub enum Either<L, R> { |
| Left(L), |
| Right(R), |
| }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The enum <code>Either</code> with variants <code>Left</code> and <code>Right</code> is a general purpose |
| sum type with two cases.</p> |
| <p>The <code>Either</code> type is symmetric and treats its variants the same way, without |
| preference. |
| (For representing success or error, use the regular <code>Result</code> enum instead.)</p> |
| </div></details><h2 id="variants" class="variants small-section-header">Variants<a href="#variants" class="anchor"></a></h2><h3 id="variant.Left" class="variant small-section-header"><a href="#variant.Left" class="anchor field"></a><code>Left(L)</code></h3><div class="docblock"><p>A value of type <code>L</code>.</p> |
| </div><h3 id="variant.Right" class="variant small-section-header"><a href="#variant.Right" class="anchor field"></a><code>Right(R)</code></h3><div class="docblock"><p>A value of type <code>R</code>.</p> |
| </div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#151">source</a><a href="#impl-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#161">source</a><h4 class="code-header">pub fn <a href="#method.is_left" class="fnname">is_left</a>(&self) -> 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">"the right value"</span>)]; |
| <span class="macro">assert_eq!</span>(values[<span class="number">0</span>].is_left(), <span class="bool-val">true</span>); |
| <span class="macro">assert_eq!</span>(values[<span class="number">1</span>].is_left(), <span class="bool-val">false</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#177">source</a><h4 class="code-header">pub fn <a href="#method.is_right" class="fnname">is_right</a>(&self) -> 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">"the right value"</span>)]; |
| <span class="macro">assert_eq!</span>(values[<span class="number">0</span>].is_right(), <span class="bool-val">false</span>); |
| <span class="macro">assert_eq!</span>(values[<span class="number">1</span>].is_right(), <span class="bool-val">true</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#192">source</a><h4 class="code-header">pub fn <a href="#method.left" class="fnname">left</a>(self) -> Option<L></h4></section></summary><div class="docblock"><p>Convert the left side of <code>Either<L, R></code> to an <code>Option<L></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<<span class="kw">_</span>, ()> = Left(<span class="string">"some value"</span>); |
| <span class="macro">assert_eq!</span>(left.left(), <span class="prelude-val">Some</span>(<span class="string">"some value"</span>)); |
| |
| <span class="kw">let </span>right: Either<(), <span class="kw">_</span>> = Right(<span class="number">321</span>); |
| <span class="macro">assert_eq!</span>(right.left(), <span class="prelude-val">None</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#210">source</a><h4 class="code-header">pub fn <a href="#method.right" class="fnname">right</a>(self) -> Option<R></h4></section></summary><div class="docblock"><p>Convert the right side of <code>Either<L, R></code> to an <code>Option<R></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<<span class="kw">_</span>, ()> = Left(<span class="string">"some value"</span>); |
| <span class="macro">assert_eq!</span>(left.right(), <span class="prelude-val">None</span>); |
| |
| <span class="kw">let </span>right: Either<(), <span class="kw">_</span>> = Right(<span class="number">321</span>); |
| <span class="macro">assert_eq!</span>(right.right(), <span class="prelude-val">Some</span>(<span class="number">321</span>));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#228">source</a><h4 class="code-header">pub fn <a href="#method.as_ref" class="fnname">as_ref</a>(&self) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><&L, &R><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>&Either<L, R></code> to <code>Either<&L, &R></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<<span class="kw">_</span>, ()> = Left(<span class="string">"some value"</span>); |
| <span class="macro">assert_eq!</span>(left.as_ref(), Left(<span class="kw-2">&</span><span class="string">"some value"</span>)); |
| |
| <span class="kw">let </span>right: Either<(), <span class="kw">_</span>> = Right(<span class="string">"some value"</span>); |
| <span class="macro">assert_eq!</span>(right.as_ref(), Right(<span class="kw-2">&</span><span class="string">"some value"</span>));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#253">source</a><h4 class="code-header">pub fn <a href="#method.as_mut" class="fnname">as_mut</a>(&mut self) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><&mut L, &mut R><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>&mut Either<L, R></code> to <code>Either<&mut L, &mut R></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">&mut </span>Either<u32, u32>) { |
| <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">&mut </span>left); |
| mutate_left(<span class="kw-2">&mut </span>right); |
| <span class="macro">assert_eq!</span>(left, Left(<span class="number">999</span>)); |
| <span class="macro">assert_eq!</span>(right, Right(<span class="number">123</span>));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_pin_ref" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#262">source</a><h4 class="code-header">pub fn <a href="#method.as_pin_ref" class="fnname">as_pin_ref</a>(self: Pin<&<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>>) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><Pin<&L>, Pin<&R>><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>Pin<&Either<L, R>></code> to <code>Either<Pin<&L>, Pin<&R>></code>, |
| pinned projections of the inner variants.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_pin_mut" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#275">source</a><h4 class="code-header">pub fn <a href="#method.as_pin_mut" class="fnname">as_pin_mut</a>(<br> self: Pin<&mut <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>><br>) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><Pin<&mut L>, Pin<&mut R>><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>Pin<&mut Either<L, R>></code> to <code>Either<Pin<&mut L>, Pin<&mut R>></code>, |
| pinned projections of the inner variants.</p> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.flip" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#300">source</a><h4 class="code-header">pub fn <a href="#method.flip" class="fnname">flip</a>(self) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><R, L><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Convert <code>Either<L, R></code> to <code>Either<R, L></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<<span class="kw">_</span>, ()> = 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<(), <span class="kw">_</span>> = Right(<span class="string">"some value"</span>); |
| <span class="macro">assert_eq!</span>(right.flip(), Left(<span class="string">"some value"</span>));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#319-321">source</a><h4 class="code-header">pub fn <a href="#method.map_left" class="fnname">map_left</a><F, M>(self, f: F) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><M, R><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br> F: FnOnce(L) -> 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<<span class="kw">_</span>, u32> = 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<u32, <span class="kw">_</span>> = Right(<span class="number">123</span>); |
| <span class="macro">assert_eq!</span>(right.map_left(|x| x * <span class="number">2</span>), Right(<span class="number">123</span>));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#341-343">source</a><h4 class="code-header">pub fn <a href="#method.map_right" class="fnname">map_right</a><F, S>(self, f: F) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, S><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br> F: FnOnce(R) -> 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<<span class="kw">_</span>, u32> = 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<u32, <span class="kw">_</span>> = Right(<span class="number">123</span>); |
| <span class="macro">assert_eq!</span>(right.map_right(|x| x * <span class="number">2</span>), Right(<span class="number">246</span>));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.either" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#367-370">source</a><h4 class="code-header">pub fn <a href="#method.either" class="fnname">either</a><F, G, T>(self, f: F, g: G) -> T<span class="where fmt-newline">where<br> F: FnOnce(L) -> T,<br> G: FnOnce(R) -> 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) -> i32 { (n * n) <span class="kw">as </span>i32 } |
| <span class="kw">fn </span>negate(n: i32) -> i32 { -n } |
| |
| <span class="kw">let </span>left: Either<u32, i32> = 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<u32, i32> = Right(-<span class="number">4</span>); |
| <span class="macro">assert_eq!</span>(right.either(square, negate), <span class="number">4</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.either_with" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#397-400">source</a><h4 class="code-header">pub fn <a href="#method.either_with" class="fnname">either_with</a><Ctx, F, G, T>(self, ctx: Ctx, f: F, g: G) -> T<span class="where fmt-newline">where<br> F: FnOnce(Ctx, L) -> T,<br> G: FnOnce(Ctx, R) -> 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">&mut </span>result, |
| |ctx, integer| ctx.push(integer), |
| |ctx, real| ctx.push(f64::round(real) <span class="kw">as </span>i32)); |
| } |
| |
| <span class="macro">assert_eq!</span>(result, <span class="macro">vec!</span>[<span class="number">2</span>, <span class="number">3</span>]);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_and_then" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#419-421">source</a><h4 class="code-header">pub fn <a href="#method.left_and_then" class="fnname">left_and_then</a><F, S>(self, f: F) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><S, R><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br> F: FnOnce(L) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><S, R>,</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<<span class="kw">_</span>, u32> = Left(<span class="number">123</span>); |
| <span class="macro">assert_eq!</span>(left.left_and_then::<<span class="kw">_</span>,()>(|x| Right(x * <span class="number">2</span>)), Right(<span class="number">246</span>)); |
| |
| <span class="kw">let </span>right: Either<u32, <span class="kw">_</span>> = Right(<span class="number">123</span>); |
| <span class="macro">assert_eq!</span>(right.left_and_then(|x| Right::<(), <span class="kw">_</span>>(x * <span class="number">2</span>)), Right(<span class="number">123</span>));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_and_then" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#440-442">source</a><h4 class="code-header">pub fn <a href="#method.right_and_then" class="fnname">right_and_then</a><F, S>(self, f: F) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, S><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br> F: FnOnce(R) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, 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.</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<<span class="kw">_</span>, u32> = 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<u32, <span class="kw">_</span>> = Right(<span class="number">123</span>); |
| <span class="macro">assert_eq!</span>(right.right_and_then(|x| Right(x * <span class="number">2</span>)), Right(<span class="number">246</span>));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_iter" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#461-464">source</a><h4 class="code-header">pub fn <a href="#method.into_iter" class="fnname">into_iter</a>(<br> self<br>) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><<L as IntoIterator>::IntoIter, <R as IntoIterator>::IntoIter><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br> L: IntoIterator,<br> R: IntoIterator<Item = <L as IntoIterator>::Item>,</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<<span class="kw">_</span>, Vec<u32>> = 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<Vec<u32>, <span class="kw">_</span>> = Right(<span class="macro">vec!</span>[]); |
| right.extend(left.into_iter()); |
| <span class="macro">assert_eq!</span>(right, Right(<span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">5</span>]));</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_or" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#490">source</a><h4 class="code-header">pub fn <a href="#method.left_or" class="fnname">left_or</a>(self, other: L) -> 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<<span class="kw-2">&</span>str, <span class="kw-2">&</span>str> = Left(<span class="string">"left"</span>); |
| <span class="macro">assert_eq!</span>(left.left_or(<span class="string">"foo"</span>), <span class="string">"left"</span>); |
| |
| <span class="kw">let </span>right: Either<<span class="kw-2">&</span>str, <span class="kw-2">&</span>str> = Right(<span class="string">"right"</span>); |
| <span class="macro">assert_eq!</span>(right.left_or(<span class="string">"left"</span>), <span class="string">"left"</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_or_default" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#509-511">source</a><h4 class="code-header">pub fn <a href="#method.left_or_default" class="fnname">left_or_default</a>(self) -> L<span class="where fmt-newline">where<br> 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<String, u32> = Left(<span class="string">"left"</span>.to_string()); |
| <span class="macro">assert_eq!</span>(left.left_or_default(), <span class="string">"left"</span>); |
| |
| <span class="kw">let </span>right: Either<String, u32> = Right(<span class="number">42</span>); |
| <span class="macro">assert_eq!</span>(right.left_or_default(), String::default());</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_or_else" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#531-533">source</a><h4 class="code-header">pub fn <a href="#method.left_or_else" class="fnname">left_or_else</a><F>(self, f: F) -> L<span class="where fmt-newline">where<br> F: FnOnce(R) -> 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<String, u32> = Left(<span class="string">"3"</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">"3"</span>); |
| |
| <span class="kw">let </span>right: Either<String, u32> = Right(<span class="number">3</span>); |
| <span class="macro">assert_eq!</span>(right.left_or_else(|x| x.to_string()), <span class="string">"3"</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_or" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#559">source</a><h4 class="code-header">pub fn <a href="#method.right_or" class="fnname">right_or</a>(self, other: R) -> 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<<span class="kw-2">&</span>str, <span class="kw-2">&</span>str> = Right(<span class="string">"right"</span>); |
| <span class="macro">assert_eq!</span>(right.right_or(<span class="string">"foo"</span>), <span class="string">"right"</span>); |
| |
| <span class="kw">let </span>left: Either<<span class="kw-2">&</span>str, <span class="kw-2">&</span>str> = Left(<span class="string">"left"</span>); |
| <span class="macro">assert_eq!</span>(left.right_or(<span class="string">"right"</span>), <span class="string">"right"</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_or_default" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#578-580">source</a><h4 class="code-header">pub fn <a href="#method.right_or_default" class="fnname">right_or_default</a>(self) -> R<span class="where fmt-newline">where<br> 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<String, u32> = Left(<span class="string">"left"</span>.to_string()); |
| <span class="macro">assert_eq!</span>(left.right_or_default(), u32::default()); |
| |
| <span class="kw">let </span>right: Either<String, u32> = Right(<span class="number">42</span>); |
| <span class="macro">assert_eq!</span>(right.right_or_default(), <span class="number">42</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_or_else" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#600-602">source</a><h4 class="code-header">pub fn <a href="#method.right_or_else" class="fnname">right_or_else</a><F>(self, f: F) -> R<span class="where fmt-newline">where<br> F: FnOnce(L) -> 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<String, u32> = Left(<span class="string">"3"</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<String, u32> = Right(<span class="number">3</span>); |
| <span class="macro">assert_eq!</span>(right.right_or_else(|<span class="kw">_</span>| <span class="macro">unreachable!</span>()), <span class="number">3</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unwrap_left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#629-631">source</a><h4 class="code-header">pub fn <a href="#method.unwrap_left" class="fnname">unwrap_left</a>(self) -> L<span class="where fmt-newline">where<br> 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<<span class="kw">_</span>, ()> = 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<(), <span class="kw">_</span>> = Right(<span class="number">3</span>); |
| right.unwrap_left();</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unwrap_right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#660-662">source</a><h4 class="code-header">pub fn <a href="#method.unwrap_right" class="fnname">unwrap_right</a>(self) -> R<span class="where fmt-newline">where<br> 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<(), <span class="kw">_</span>> = 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<<span class="kw">_</span>, ()> = Left(<span class="number">3</span>); |
| left.unwrap_right();</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.expect_left" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#689-691">source</a><h4 class="code-header">pub fn <a href="#method.expect_left" class="fnname">expect_left</a>(self, msg: &str) -> L<span class="where fmt-newline">where<br> 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<<span class="kw">_</span>, ()> = Left(<span class="number">3</span>); |
| <span class="macro">assert_eq!</span>(left.expect_left(<span class="string">"value was Right"</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<(), <span class="kw">_</span>> = Right(<span class="number">3</span>); |
| right.expect_left(<span class="string">"value was Right"</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.expect_right" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#718-720">source</a><h4 class="code-header">pub fn <a href="#method.expect_right" class="fnname">expect_right</a>(self, msg: &str) -> R<span class="where fmt-newline">where<br> 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<(), <span class="kw">_</span>> = Right(<span class="number">3</span>); |
| <span class="macro">assert_eq!</span>(right.expect_right(<span class="string">"value was Left"</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<<span class="kw">_</span>, ()> = Left(<span class="number">3</span>); |
| left.expect_right(<span class="string">"value was Right"</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.either_into" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#740-743">source</a><h4 class="code-header">pub fn <a href="#method.either_into" class="fnname">either_into</a><T>(self) -> T<span class="where fmt-newline">where<br> L: Into<T>,<br> R: Into<T>,</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<u16, u32> = Left(<span class="number">3u16</span>); |
| <span class="macro">assert_eq!</span>(left.either_into::<u64>(), <span class="number">3u64</span>); |
| <span class="kw">let </span>right: Either<u16, u32> = Right(<span class="number">7u32</span>); |
| <span class="macro">assert_eq!</span>(right.either_into::<u64>(), <span class="number">7u64</span>);</code></pre></div> |
| </div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3COption%3CL%3E%2C%20Option%3CR%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#752">source</a><a href="#impl-Either%3COption%3CL%3E%2C%20Option%3CR%3E%3E" class="anchor"></a><h3 class="code-header">impl<L, R> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><Option<L>, Option<R>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_none" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#765">source</a><h4 class="code-header">pub fn <a href="#method.factor_none" class="fnname">factor_none</a>(self) -> Option<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>></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<<span class="kw">_</span>, <span class="prelude-ty">Option</span><String>> = 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<<span class="prelude-ty">Option</span><Vec<u8>>, <span class="kw">_</span>> = Right(<span class="prelude-val">Some</span>(String::new())); |
| <span class="macro">assert_eq!</span>(right.factor_none(), <span class="prelude-val">Some</span>(Right(String::new())));</code></pre></div> |
| </div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3CResult%3CL%2C%20E%3E%2C%20Result%3CR%2C%20E%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#773">source</a><a href="#impl-Either%3CResult%3CL%2C%20E%3E%2C%20Result%3CR%2C%20E%3E%3E" class="anchor"></a><h3 class="code-header">impl<L, R, E> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><Result<L, E>, Result<R, E>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_err" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#788">source</a><h4 class="code-header">pub fn <a href="#method.factor_err" class="fnname">factor_err</a>(self) -> Result<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>, E></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<<span class="kw">_</span>, <span class="prelude-ty">Result</span><String, u32>> = 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<<span class="prelude-ty">Result</span><Vec<u8>, u32>, <span class="kw">_</span>> = Right(<span class="prelude-val">Ok</span>(String::new())); |
| <span class="macro">assert_eq!</span>(right.factor_err(), <span class="prelude-val">Ok</span>(Right(String::new())));</code></pre></div> |
| </div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3CResult%3CT%2C%20L%3E%2C%20Result%3CT%2C%20R%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#796">source</a><a href="#impl-Either%3CResult%3CT%2C%20L%3E%2C%20Result%3CT%2C%20R%3E%3E" class="anchor"></a><h3 class="code-header">impl<T, L, R> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><Result<T, L>, Result<T, R>></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_ok" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#811">source</a><h4 class="code-header">pub fn <a href="#method.factor_ok" class="fnname">factor_ok</a>(self) -> Result<T, <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>></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<<span class="kw">_</span>, <span class="prelude-ty">Result</span><u32, String>> = 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<<span class="prelude-ty">Result</span><u32, Vec<u8>>, <span class="kw">_</span>> = Right(<span class="prelude-val">Err</span>(String::new())); |
| <span class="macro">assert_eq!</span>(right.factor_ok(), <span class="prelude-val">Err</span>(Right(String::new())));</code></pre></div> |
| </div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3C(T%2C%20L)%2C%20(T%2C%20R)%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#819">source</a><a href="#impl-Either%3C(T%2C%20L)%2C%20(T%2C%20R)%3E" class="anchor"></a><h3 class="code-header">impl<T, L, R> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><(T, L), (T, R)></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_first" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#832">source</a><h4 class="code-header">pub fn <a href="#method.factor_first" class="fnname">factor_first</a>(self) -> (T, <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>)</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<<span class="kw">_</span>, (u32, String)> = 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<(u32, Vec<u8>), <span class="kw">_</span>> = Right((<span class="number">123</span>, String::new())); |
| <span class="macro">assert_eq!</span>(right.factor_first().<span class="number">0</span>, <span class="number">123</span>);</code></pre></div> |
| </div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3C(L%2C%20T)%2C%20(R%2C%20T)%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#840">source</a><a href="#impl-Either%3C(L%2C%20T)%2C%20(R%2C%20T)%3E" class="anchor"></a><h3 class="code-header">impl<T, L, R> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><(L, T), (R, T)></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.factor_second" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#853">source</a><h4 class="code-header">pub fn <a href="#method.factor_second" class="fnname">factor_second</a>(self) -> (<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>, 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<<span class="kw">_</span>, (String, u32)> = 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<(Vec<u8>, u32), <span class="kw">_</span>> = Right((String::new(), <span class="number">123</span>)); |
| <span class="macro">assert_eq!</span>(right.factor_second().<span class="number">1</span>, <span class="number">123</span>);</code></pre></div> |
| </div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Either%3CT%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#861">source</a><a href="#impl-Either%3CT%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl<T> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><T, T></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_inner" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#873">source</a><h4 class="code-header">pub fn <a href="#method.into_inner" class="fnname">into_inner</a>(self) -> 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<<span class="kw">_</span>, u32> = 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<u32, <span class="kw">_</span>> = Right(<span class="number">123</span>); |
| <span class="macro">assert_eq!</span>(right.into_inner(), <span class="number">123</span>);</code></pre></div> |
| </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map" class="method has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#888-890">source</a><h4 class="code-header">pub fn <a href="#method.map" class="fnname">map</a><F, M>(self, f: F) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><M, M><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br> F: FnOnce(T) -> 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<<span class="kw">_</span>, i32> = Right(<span class="number">42</span>); |
| |
| <span class="kw">let </span>other = value.map(|x| x * <span class="number">2</span>); |
| <span class="macro">assert_eq!</span>(other, Right(<span class="number">84</span>));</code></pre></div> |
| </div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsMut%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1247">source</a><a href="#impl-AsMut%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R, Target> AsMut<[Target]> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsMut<[Target]>,<br> R: AsMut<[Target]>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1252">source</a><a href="#method.as_mut-4" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&mut self) -> &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<L, R> AsMut<CStr> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsMut<CStr>,<br> R: AsMut<CStr>,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1221-1225">source</a><a href="#method.as_mut-5" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&mut self) -> &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<L, R> AsMut<OsStr> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsMut<OsStr>,<br> R: AsMut<OsStr>,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1216-1220">source</a><a href="#method.as_mut-2" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&mut self) -> &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<L, R> AsMut<Path> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsMut<Path>,<br> R: AsMut<Path>,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1211-1215">source</a><a href="#method.as_mut-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&mut self) -> &mut Path</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsMut%3CTarget%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1237">source</a><a href="#impl-AsMut%3CTarget%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R, Target> AsMut<Target> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsMut<Target>,<br> R: AsMut<Target>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1242">source</a><a href="#method.as_mut-3" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&mut self) -> &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<L, R> AsMut<str> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsMut<str>,<br> R: AsMut<str>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_mut-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1210">source</a><a href="#method.as_mut-6" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_mut</a>(&mut self) -> &mut str</h4></section></summary><div class='docblock'>Converts this type into a mutable reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsRef%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1227">source</a><a href="#impl-AsRef%3C%5BTarget%5D%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R, Target> AsRef<[Target]> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsRef<[Target]>,<br> R: AsRef<[Target]>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1232">source</a><a href="#method.as_ref-6" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&self) -> &[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<L, R> AsRef<CStr> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsRef<CStr>,<br> R: AsRef<CStr>,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1221-1225">source</a><a href="#method.as_ref-4" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&self) -> &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<L, R> AsRef<OsStr> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsRef<OsStr>,<br> R: AsRef<OsStr>,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1216-1220">source</a><a href="#method.as_ref-2" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&self) -> &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<L, R> AsRef<Path> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsRef<Path>,<br> R: AsRef<Path>,</span></h3></section></summary><div class="docblock"><p>Requires crate feature <code>use_std</code>.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1211-1215">source</a><a href="#method.as_ref-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&self) -> &Path</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsRef%3CTarget%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1178">source</a><a href="#impl-AsRef%3CTarget%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R, Target> AsRef<Target> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsRef<Target>,<br> R: AsRef<Target>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1183">source</a><a href="#method.as_ref-5" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&self) -> &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<L, R> AsRef<str> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: AsRef<str>,<br> R: AsRef<str>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1210">source</a><a href="#method.as_ref-3" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&self) -> &str</h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BufRead-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1130">source</a><a href="#impl-BufRead-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> BufRead for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: BufRead,<br> R: BufRead,</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.fill_buf" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1135">source</a><a href="#method.fill_buf" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fill_buf</a>(&mut self) -> Result<&[u8], Error></h4></section></summary><div class='docblock'>Returns the contents of the internal buffer, filling it with more data |
| from the inner reader if it is empty. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.consume" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1139">source</a><a href="#method.consume" class="anchor"></a><h4 class="code-header">fn <a class="fnname">consume</a>(&mut self, amt: usize)</h4></section></summary><div class='docblock'>Tells this buffer that <code>amt</code> bytes have been consumed from the buffer, |
| so they should no longer be returned in calls to <code>read</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_until" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1143">source</a><a href="#method.read_until" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_until</a>(<br> &mut self,<br> byte: u8,<br> buf: &mut Vec<u8, Global><br>) -> Result<usize, Error></h4></section></summary><div class='docblock'>Read all bytes into <code>buf</code> until the delimiter <code>byte</code> or EOF is reached. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_line" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1147">source</a><a href="#method.read_line" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_line</a>(&mut self, buf: &mut String) -> Result<usize, Error></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>(&mut self) -> Result<bool, Error></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) -> Split<Self></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) -> Lines<Self></h4></section></summary><div class='docblock'>Returns an iterator over the lines of this reader. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#134">source</a><a href="#impl-Clone-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Clone for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Clone,<br> R: Clone,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#135">source</a><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a class="fnname">clone</a>(&self) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class='docblock'>Returns a copy of the value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#142">source</a><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">clone_from</a>(&mut self, source: &<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>)</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<L, R> Debug for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Debug,<br> R: Debug,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt</a>(&self, f: &mut Formatter<'_>) -> Result<(), Error></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deref-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1257">source</a><a href="#impl-Deref-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Deref for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Deref,<br> R: Deref<Target = <L as Deref>::Target>,</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> = <L as Deref>::Target</h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1264">source</a><a href="#method.deref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">deref</a>(&self) -> &<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Deref>::Target<span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DerefMut-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1269">source</a><a href="#impl-DerefMut-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> DerefMut for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: DerefMut,<br> R: DerefMut<Target = <L as Deref>::Target>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref_mut" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1274">source</a><a href="#method.deref_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">deref_mut</a>(&mut self) -> &mut <<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Deref>::Target<span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class='docblock'>Mutably dereferences the value.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Display-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1301">source</a><a href="#impl-Display-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Display for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Display,<br> R: Display,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1306">source</a><a href="#method.fmt-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt</a>(&self, f: &mut Formatter<'_>) -> Result<(), Error></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DoubleEndedIterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1026">source</a><a href="#impl-DoubleEndedIterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> DoubleEndedIterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: DoubleEndedIterator,<br> R: DoubleEndedIterator<Item = <L as Iterator>::Item>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_back" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1031">source</a><a href="#method.next_back" class="anchor"></a><h4 class="code-header">fn <a class="fnname">next_back</a>(&mut self) -> Option<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item></h4></section></summary><div class='docblock'>Removes and returns an element from the end of the iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.rfold" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1040-1042">source</a><a href="#method.rfold" class="anchor"></a><h4 class="code-header">fn <a class="fnname">rfold</a><Acc, G>(self, init: Acc, f: G) -> Acc<span class="where fmt-newline">where<br> G: FnMut(Acc, <<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> Acc,</span></h4></section></summary><div class='docblock'>An iterator method that reduces the iterator’s elements to a single, |
| final value, starting from the back. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.rfind" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1047-1049">source</a><a href="#method.rfind" class="anchor"></a><h4 class="code-header">fn <a class="fnname">rfind</a><P>(&mut self, predicate: P) -> Option<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item><span class="where fmt-newline">where<br> P: FnMut(&<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> 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>(&mut self, n: usize) -> Result<(), 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>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>(&mut self, n: usize) -> Option<Self::Item></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><B, F, R>(&mut self, init: B, f: F) -> R<span class="where fmt-newline">where<br> F: FnMut(B, Self::Item) -> R,<br> R: Try<Output = B>,</span></h4></section></summary><div class='docblock'>This is the reverse version of [<code>Iterator::try_fold()</code>]: it takes |
| elements starting from the back of the iterator. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Error-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1281">source</a><a href="#impl-Error-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Error for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Error,<br> R: Error,</span></h3></section></summary><div class="docblock"><p><code>Either</code> implements <code>Error</code> if <em>both</em> <code>L</code> and <code>R</code> implement it.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.source" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1286">source</a><a href="#method.source" class="anchor"></a><h4 class="code-header">fn <a class="fnname">source</a>(&self) -> Option<&(dyn Error + 'static)></h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.description" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1291">source</a><a href="#method.description" class="anchor"></a><h4 class="code-header">fn <a class="fnname">description</a>(&self) -> &str</h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1296">source</a><a href="#method.cause" class="anchor"></a><h4 class="code-header">fn <a class="fnname">cause</a>(&self) -> Option<&dyn Error></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>(&'a self, demand: &mut Demand<'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>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ExactSizeIterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1055">source</a><a href="#impl-ExactSizeIterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> ExactSizeIterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: ExactSizeIterator,<br> R: ExactSizeIterator<Item = <L as Iterator>::Item>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.len" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1060">source</a><a href="#method.len" class="anchor"></a><h4 class="code-header">fn <a class="fnname">len</a>(&self) -> 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>(&self) -> bool</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>exact_size_is_empty</code>)</span></div></span><div class='docblock'>Returns <code>true</code> if the iterator is empty. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Extend%3CA%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#920">source</a><a href="#impl-Extend%3CA%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R, A> Extend<A> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Extend<A>,<br> R: Extend<A>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extend" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#925-927">source</a><a href="#method.extend" class="anchor"></a><h4 class="code-header">fn <a class="fnname">extend</a><T>(&mut self, iter: T)<span class="where fmt-newline">where<br> T: IntoIterator<Item = A>,</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>(&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>(&mut self, additional: usize)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>extend_one</code>)</span></div></span><div class='docblock'>Reserves capacity in a collection for the given number of additional elements. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#900">source</a><a href="#impl-From%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> From<Result<R, L>> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></h3></section></summary><div class="docblock"><p>Convert from <code>Result</code> to <code>Either</code> with <code>Ok => Right</code> and <code>Err => Left</code>.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#901">source</a><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(r: Result<R, L>) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></span><code class="content"><span class="where fmt-newline">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <L as Iterator>::Item;</span><span class="where fmt-newline">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = <L as Future>::Output;</span></code></span></span></span></span></h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Future-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1073">source</a><a href="#impl-Future-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Future for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Future,<br> R: Future<Output = <L as Future>::Output>,</span></h3></section></summary><div class="docblock"><p><code>Either<L, R></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> = <L as Future>::Output</h4></section></summary><div class='docblock'>The type of value produced on completion.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1080-1083">source</a><a href="#method.poll" class="anchor"></a><h4 class="code-header">fn <a class="fnname">poll</a>(<br> self: Pin<&mut <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>>,<br> cx: &mut Context<'_><br>) -> Poll<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Future>::Output></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<L, R> Hash for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Hash,<br> R: Hash,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.hash" class="anchor"></a><h4 class="code-header">fn <a class="fnname">hash</a><__H>(&self, state: &mut __H)<span class="where fmt-newline">where<br> __H: Hasher,</span></h4></section></summary><div class='docblock'>Feeds this value into the given [<code>Hasher</code>]. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.3.0">1.3.0</span><a href="#method.hash_slice" class="anchor"></a><h4 class="code-header">fn <a class="fnname">hash_slice</a><H>(data: &[Self], state: &mut H)<span class="where fmt-newline">where<br> H: Hasher,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given [<code>Hasher</code>]. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Into%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#911">source</a><a href="#impl-Into%3CResult%3CR%2C%20L%3E%3E-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Into<Result<R, L>> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></h3></section></summary><div class="docblock"><p>Convert from <code>Either</code> to <code>Result</code> with <code>Right => Ok</code> and <code>Left => Err</code>.</p> |
| </div><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#912">source</a><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -> Result<R, L></h4></section></summary><div class='docblock'>Converts this type into the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Iterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#934">source</a><a href="#impl-Iterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Iterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Iterator,<br> R: Iterator<Item = <L as Iterator>::Item>,</span></h3></section></summary><div class="docblock"><p><code>Either<L, R></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> = <L as Iterator>::Item</h4></section></summary><div class='docblock'>The type of the elements being iterated over.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#941">source</a><a href="#method.next" class="anchor"></a><h4 class="code-header">fn <a class="fnname">next</a>(&mut self) -> Option<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item></h4></section></summary><div class='docblock'>Advances the iterator and returns the next value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#945">source</a><a href="#method.size_hint" class="anchor"></a><h4 class="code-header">fn <a class="fnname">size_hint</a>(&self) -> (usize, Option<usize>)</h4></section></summary><div class='docblock'>Returns the bounds on the remaining length of the iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#949-951">source</a><a href="#method.fold" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fold</a><Acc, G>(self, init: Acc, f: G) -> Acc<span class="where fmt-newline">where<br> G: FnMut(Acc, <<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> Acc,</span></h4></section></summary><div class='docblock'>Folds every element into an accumulator by applying an operation, |
| returning the final result. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.for_each" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#956-958">source</a><a href="#method.for_each" class="anchor"></a><h4 class="code-header">fn <a class="fnname">for_each</a><F>(self, f: F)<span class="where fmt-newline">where<br> F: FnMut(<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item),</span></h4></section></summary><div class='docblock'>Calls a closure on each element of an iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.count" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#963">source</a><a href="#method.count" class="anchor"></a><h4 class="code-header">fn <a class="fnname">count</a>(self) -> usize</h4></section></summary><div class='docblock'>Consumes the iterator, counting the number of iterations and returning it. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.last" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#967">source</a><a href="#method.last" class="anchor"></a><h4 class="code-header">fn <a class="fnname">last</a>(self) -> Option<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item></h4></section></summary><div class='docblock'>Consumes the iterator, returning the last element. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.nth" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#971">source</a><a href="#method.nth" class="anchor"></a><h4 class="code-header">fn <a class="fnname">nth</a>(&mut self, n: usize) -> Option<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item></h4></section></summary><div class='docblock'>Returns the <code>n</code>th element of the iterator. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.collect" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#975-977">source</a><a href="#method.collect" class="anchor"></a><h4 class="code-header">fn <a class="fnname">collect</a><B>(self) -> B<span class="where fmt-newline">where<br> B: FromIterator<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item>,</span></h4></section></summary><div class='docblock'>Transforms an iterator into a collection. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partition" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#982-985">source</a><a href="#method.partition" class="anchor"></a><h4 class="code-header">fn <a class="fnname">partition</a><B, F>(self, f: F) -> (B, B)<span class="where fmt-newline">where<br> B: Default + Extend<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item>,<br> F: FnMut(&<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> bool,</span></h4></section></summary><div class='docblock'>Consumes an iterator, creating two collections from it. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.all" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#990-992">source</a><a href="#method.all" class="anchor"></a><h4 class="code-header">fn <a class="fnname">all</a><F>(&mut self, f: F) -> bool<span class="where fmt-newline">where<br> F: FnMut(<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> bool,</span></h4></section></summary><div class='docblock'>Tests if every element of the iterator matches a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.any" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#997-999">source</a><a href="#method.any" class="anchor"></a><h4 class="code-header">fn <a class="fnname">any</a><F>(&mut self, f: F) -> bool<span class="where fmt-newline">where<br> F: FnMut(<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> bool,</span></h4></section></summary><div class='docblock'>Tests if any element of the iterator matches a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1004-1006">source</a><a href="#method.find" class="anchor"></a><h4 class="code-header">fn <a class="fnname">find</a><P>(&mut self, predicate: P) -> Option<<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item><span class="where fmt-newline">where<br> P: FnMut(&<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> bool,</span></h4></section></summary><div class='docblock'>Searches for an element of an iterator that satisfies a predicate. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1011-1013">source</a><a href="#method.find_map" class="anchor"></a><h4 class="code-header">fn <a class="fnname">find_map</a><B, F>(&mut self, f: F) -> Option<B><span class="where fmt-newline">where<br> F: FnMut(<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> Option<B>,</span></h4></section></summary><div class='docblock'>Applies function to the elements of iterator and returns |
| the first non-none result. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1018-1020">source</a><a href="#method.position" class="anchor"></a><h4 class="code-header">fn <a class="fnname">position</a><P>(&mut self, predicate: P) -> Option<usize><span class="where fmt-newline">where<br> P: FnMut(<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R> as Iterator>::Item) -> 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><const N: usize>(<br> &mut self<br>) -> Result<[Self::Item; N], IntoIter<Self::Item, N>></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>(&mut self, n: usize) -> Result<(), 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>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) -> StepBy<Self></h4></section></summary><div class='docblock'>Creates an iterator starting at the same point, but stepping by |
| the given amount at each iteration. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.chain-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.chain-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">chain</a><U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter><span class="where fmt-newline">where<br> U: IntoIterator<Item = Self::Item>,</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><U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter><span class="where fmt-newline">where<br> 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><G>(self, separator: G) -> IntersperseWith<Self, G><span class="where fmt-newline">where<br> G: FnMut() -> 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><B, F>(self, f: F) -> Map<Self, F><span class="where fmt-newline">where<br> F: FnMut(Self::Item) -> 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><P>(self, predicate: P) -> Filter<Self, P><span class="where fmt-newline">where<br> P: FnMut(&Self::Item) -> 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><B, F>(self, f: F) -> FilterMap<Self, F><span class="where fmt-newline">where<br> F: FnMut(Self::Item) -> Option<B>,</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) -> Enumerate<Self></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) -> Peekable<Self></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><P>(self, predicate: P) -> SkipWhile<Self, P><span class="where fmt-newline">where<br> P: FnMut(&Self::Item) -> 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><P>(self, predicate: P) -> TakeWhile<Self, P><span class="where fmt-newline">where<br> P: FnMut(&Self::Item) -> 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><B, P>(self, predicate: P) -> MapWhile<Self, P><span class="where fmt-newline">where<br> P: FnMut(Self::Item) -> Option<B>,</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) -> Skip<Self></h4></section></summary><div class='docblock'>Creates an iterator that skips the first <code>n</code> elements. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take-1" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.take-1" class="anchor"></a><h4 class="code-header">fn <a class="fnname">take</a>(self, n: usize) -> Take<Self></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><St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F><span class="where fmt-newline">where<br> F: FnMut(&mut St, Self::Item) -> Option<B>,</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><U, F>(self, f: F) -> FlatMap<Self, U, F><span class="where fmt-newline">where<br> U: IntoIterator,<br> F: FnMut(Self::Item) -> 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) -> Fuse<Self></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><F>(self, f: F) -> Inspect<Self, F><span class="where fmt-newline">where<br> F: FnMut(&Self::Item),</span></h4></section></summary><div class='docblock'>Does something with each element of an iterator, passing the value on. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.by_ref-2" class="method trait-impl has-srclink"><span class="since rightside" title="Stable since Rust version 1.0.0">1.0.0</span><a href="#method.by_ref-2" class="anchor"></a><h4 class="code-header">fn <a class="fnname">by_ref</a>(&mut self) -> &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><E>(self, collection: &mut E) -> &mut E<span class="where fmt-newline">where<br> E: Extend<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_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><P>(self, predicate: P) -> bool<span class="where fmt-newline">where<br> P: FnMut(Self::Item) -> 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><B, F, R>(&mut self, init: B, f: F) -> R<span class="where fmt-newline">where<br> F: FnMut(B, Self::Item) -> R,<br> R: Try<Output = B>,</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><F, R>(&mut self, f: F) -> R<span class="where fmt-newline">where<br> F: FnMut(Self::Item) -> R,<br> R: Try<Output = ()>,</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><F>(self, f: F) -> Option<Self::Item><span class="where fmt-newline">where<br> F: FnMut(Self::Item, Self::Item) -> 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><F, R>(<br> &mut self,<br> f: F<br>) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType<span class="where fmt-newline">where<br> F: FnMut(Self::Item, Self::Item) -> R,<br> R: Try<Output = Self::Item>,<br> <R as Try>::Residual: Residual<Option<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>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><F, R>(<br> &mut self,<br> f: F<br>) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType<span class="where fmt-newline">where<br> F: FnMut(&Self::Item) -> R,<br> R: Try<Output = bool>,<br> <R as Try>::Residual: Residual<Option<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>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><B, F>(self, f: F) -> Option<Self::Item><span class="where fmt-newline">where<br> B: Ord,<br> F: FnMut(&Self::Item) -> 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><F>(self, compare: F) -> Option<Self::Item><span class="where fmt-newline">where<br> F: FnMut(&Self::Item, &Self::Item) -> 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><B, F>(self, f: F) -> Option<Self::Item><span class="where fmt-newline">where<br> B: Ord,<br> F: FnMut(&Self::Item) -> 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><F>(self, compare: F) -> Option<Self::Item><span class="where fmt-newline">where<br> F: FnMut(&Self::Item, &Self::Item) -> 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><A, B, FromA, FromB>(self) -> (FromA, FromB)<span class="where fmt-newline">where<br> FromA: Default + Extend<A>,<br> FromB: Default + Extend<B>,<br> Self: Iterator<Item = (A, B)>,</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><'a, T>(self) -> Copied<Self><span class="where fmt-newline">where<br> T: 'a + Copy,<br> Self: Iterator<Item = &'a T>,</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><'a, T>(self) -> Cloned<Self><span class="where fmt-newline">where<br> T: 'a + Clone,<br> Self: Iterator<Item = &'a T>,</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><const N: usize>(self) -> ArrayChunks<Self, N></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><S>(self) -> S<span class="where fmt-newline">where<br> S: Sum<Self::Item>,</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><P>(self) -> P<span class="where fmt-newline">where<br> P: Product<Self::Item>,</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><I, F>(self, other: I, cmp: F) -> Ordering<span class="where fmt-newline">where<br> I: IntoIterator,<br> F: FnMut(Self::Item, <I as IntoIterator>::Item) -> 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><I>(self, other: I) -> Option<Ordering><span class="where fmt-newline">where<br> I: IntoIterator,<br> Self::Item: PartialOrd<<I as IntoIterator>::Item>,</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><I, F>(self, other: I, partial_cmp: F) -> Option<Ordering><span class="where fmt-newline">where<br> I: IntoIterator,<br> F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<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.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><I>(self, other: I) -> bool<span class="where fmt-newline">where<br> I: IntoIterator,<br> Self::Item: PartialEq<<I as IntoIterator>::Item>,</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><I, F>(self, other: I, eq: F) -> bool<span class="where fmt-newline">where<br> I: IntoIterator,<br> F: FnMut(Self::Item, <I as IntoIterator>::Item) -> 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><I>(self, other: I) -> bool<span class="where fmt-newline">where<br> I: IntoIterator,<br> Self::Item: PartialEq<<I as IntoIterator>::Item>,</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><I>(self, other: I) -> bool<span class="where fmt-newline">where<br> I: IntoIterator,<br> Self::Item: PartialOrd<<I as IntoIterator>::Item>,</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><I>(self, other: I) -> bool<span class="where fmt-newline">where<br> I: IntoIterator,<br> Self::Item: PartialOrd<<I as IntoIterator>::Item>,</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><I>(self, other: I) -> bool<span class="where fmt-newline">where<br> I: IntoIterator,<br> Self::Item: PartialOrd<<I as IntoIterator>::Item>,</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><I>(self, other: I) -> bool<span class="where fmt-newline">where<br> I: IntoIterator,<br> Self::Item: PartialOrd<<I as IntoIterator>::Item>,</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><F>(self, compare: F) -> bool<span class="where fmt-newline">where<br> F: FnMut(&Self::Item, &Self::Item) -> Option<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>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><F, K>(self, f: F) -> bool<span class="where fmt-newline">where<br> F: FnMut(Self::Item) -> K,<br> K: PartialOrd<K>,</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<L, R> Ord for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Ord,<br> R: Ord,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.cmp" class="anchor"></a><h4 class="code-header">fn <a class="fnname">cmp</a>(&self, other: &<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>) -> 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) -> 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) -> 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) -> Self<span class="where fmt-newline">where<br> Self: PartialOrd<Self>,</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<L, R> PartialEq<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: PartialEq<L>,<br> R: PartialEq<R>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.eq" class="anchor"></a><h4 class="code-header">fn <a class="fnname">eq</a>(&self, other: &<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>) -> 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>(&self, other: &Rhs) -> 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<L, R> PartialOrd<<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>> for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: PartialOrd<L>,<br> R: PartialOrd<R>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partial_cmp" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#method.partial_cmp" class="anchor"></a><h4 class="code-header">fn <a class="fnname">partial_cmp</a>(&self, other: &<a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>) -> Option<Ordering></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>(&self, other: &Rhs) -> 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><</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>(&self, other: &Rhs) -> 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><=</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>(&self, other: &Rhs) -> 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>></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>(&self, other: &Rhs) -> 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>>=</code> |
| operator. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Read-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1092">source</a><a href="#impl-Read-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Read for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Read,<br> R: Read,</span></h3></section></summary><div class="docblock"><p><code>Either<L, R></code> implements <code>Read</code> if both <code>L</code> and <code>R</code> do.</p> |
| <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.read" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1097">source</a><a href="#method.read" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read</a>(&mut self, buf: &mut [u8]) -> Result<usize, Error></h4></section></summary><div class='docblock'>Pull some bytes from this source into the specified buffer, returning |
| how many bytes were read. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_exact" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1101">source</a><a href="#method.read_exact" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_exact</a>(&mut self, buf: &mut [u8]) -> Result<(), Error></h4></section></summary><div class='docblock'>Read the exact number of bytes required to fill <code>buf</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1105">source</a><a href="#method.read_to_end" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_to_end</a>(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error></h4></section></summary><div class='docblock'>Read all bytes until EOF in this source, placing them into <code>buf</code>. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1109">source</a><a href="#method.read_to_string" class="anchor"></a><h4 class="code-header">fn <a class="fnname">read_to_string</a>(&mut self, buf: &mut String) -> Result<usize, Error></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>(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error></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>(&self) -> 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>(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error></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>(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error></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>(&mut self) -> &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) -> Bytes<Self></h4></section></summary><div class='docblock'>Transforms this <code>Read</code> instance to an [<code>Iterator</code>] over its bytes. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.chain" class="method trait-impl has-srclink"><a href="#method.chain" class="anchor"></a><h4 class="code-header">fn <a class="fnname">chain</a><R>(self, next: R) -> Chain<Self, R><span class="where fmt-newline">where<br> R: Read,</span></h4></section></summary><div class='docblock'>Creates an adapter which will chain this stream with another. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take" class="method trait-impl has-srclink"><a href="#method.take" class="anchor"></a><h4 class="code-header">fn <a class="fnname">take</a>(self, limit: u64) -> Take<Self></h4></section></summary><div class='docblock'>Creates an adapter which will read at most <code>limit</code> bytes from it. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Seek-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1118">source</a><a href="#impl-Seek-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Seek for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Seek,<br> R: Seek,</span></h3></section></summary><div class="docblock"><p><code>Either<L, R></code> implements <code>Seek</code> if both <code>L</code> and <code>R</code> do.</p> |
| <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.seek" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1123">source</a><a href="#method.seek" class="anchor"></a><h4 class="code-header">fn <a class="fnname">seek</a>(&mut self, pos: SeekFrom) -> Result<u64, Error></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>(&mut self) -> Result<(), Error></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>(&mut self) -> Result<u64, Error></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>(&mut self) -> Result<u64, Error></h4></section></summary><div class='docblock'>Returns the current seek position from the start of the stream. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Write-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1156">source</a><a href="#impl-Write-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Write for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Write,<br> R: Write,</span></h3></section></summary><div class="docblock"><p><code>Either<L, R></code> implements <code>Write</code> if both <code>L</code> and <code>R</code> do.</p> |
| <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.write" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1161">source</a><a href="#method.write" class="anchor"></a><h4 class="code-header">fn <a class="fnname">write</a>(&mut self, buf: &[u8]) -> Result<usize, Error></h4></section></summary><div class='docblock'>Write a buffer into this writer, returning how many bytes were written. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_all" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1165">source</a><a href="#method.write_all" class="anchor"></a><h4 class="code-header">fn <a class="fnname">write_all</a>(&mut self, buf: &[u8]) -> Result<(), Error></h4></section></summary><div class='docblock'>Attempts to write an entire buffer into this writer. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1169">source</a><a href="#method.write_fmt" class="anchor"></a><h4 class="code-header">fn <a class="fnname">write_fmt</a>(&mut self, fmt: Arguments<'_>) -> Result<(), Error></h4></section></summary><div class='docblock'>Writes a formatted string into this writer, returning any error |
| encountered. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.flush" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1173">source</a><a href="#method.flush" class="anchor"></a><h4 class="code-header">fn <a class="fnname">flush</a>(&mut self) -> Result<(), Error></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>(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error></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>(&self) -> 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>(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error></h4></section></summary><div class='docblock'>Attempts to write multiple buffers into this writer. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><a href="#method.by_ref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">by_ref</a>(&mut self) -> &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<L, R> Copy for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Copy,<br> R: Copy,</span></h3></section><section id="impl-Eq-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#49">source</a><a href="#impl-Eq-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> Eq for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Eq,<br> R: Eq,</span></h3></section><section id="impl-FusedIterator-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/either/lib.rs.html#1065">source</a><a href="#impl-FusedIterator-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<L, R> FusedIterator for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: FusedIterator,<br> R: FusedIterator<Item = <L as Iterator>::Item>,</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<L, R> StructuralEq for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></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<L, R> StructuralPartialEq for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R></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<L, R> RefUnwindSafe for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: RefUnwindSafe,<br> 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<L, R> Send for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Send,<br> 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<L, R> Sync for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Sync,<br> 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<L, R> Unpin for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: Unpin,<br> 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<L, R> UnwindSafe for <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R><span class="where fmt-newline">where<br> L: UnwindSafe,<br> 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<T> Any for T<span class="where fmt-newline">where<br> 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>(&self) -> 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<T> Borrow<T> for T<span class="where fmt-newline">where<br> 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>(&self) -> &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<T> BorrowMut<T> for T<span class="where fmt-newline">where<br> 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>(&mut self) -> &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<T> From<T> 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) -> 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<T, U> Into<U> for T<span class="where fmt-newline">where<br> U: From<T>,</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) -> 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]<T> 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<F> IntoFuture for F<span class="where fmt-newline">where<br> 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> = <F as Future>::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) -> <F as IntoFuture>::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<I> IntoIterator for I<span class="where fmt-newline">where<br> 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> = <I as Iterator>::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) -> I</h4></section></summary><div class='docblock'>Creates an iterator from a value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Itertools-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3662">source</a><a href="#impl-Itertools-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<T> <a class="trait" href="trait.Itertools.html" title="trait itertools::Itertools">Itertools</a> for T<span class="where fmt-newline">where<br> T: Iterator + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.interleave" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#446-451">source</a><a href="#method.interleave" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.interleave" class="fnname">interleave</a><J>(self, other: J) -> <a class="struct" href="structs/struct.Interleave.html" title="struct itertools::structs::Interleave">Interleave</a><Self, J::IntoIter><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Interleave.html" title="struct itertools::structs::Interleave">Interleave</a><I, J></span><code class="content"><span class="where fmt-newline">impl<I, J> Iterator for <a class="struct" href="structs/struct.Interleave.html" title="struct itertools::structs::Interleave">Interleave</a><I, J><span class="where fmt-newline">where<br> I: Iterator,<br> J: Iterator<Item = I::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> J: IntoIterator<Item = Self::Item>,<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Alternate elements from two iterators until both have run out. <a href="trait.Itertools.html#method.interleave">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.interleave_shortest" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#464-469">source</a><a href="#method.interleave_shortest" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.interleave_shortest" class="fnname">interleave_shortest</a><J>(<br> self,<br> other: J<br>) -> <a class="struct" href="structs/struct.InterleaveShortest.html" title="struct itertools::structs::InterleaveShortest">InterleaveShortest</a><Self, J::IntoIter><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.InterleaveShortest.html" title="struct itertools::structs::InterleaveShortest">InterleaveShortest</a><I, J></span><code class="content"><span class="where fmt-newline">impl<I, J> Iterator for <a class="struct" href="structs/struct.InterleaveShortest.html" title="struct itertools::structs::InterleaveShortest">InterleaveShortest</a><I, J><span class="where fmt-newline">where<br> I: Iterator,<br> J: Iterator<Item = I::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> J: IntoIterator<Item = Self::Item>,<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Alternate elements from two iterators until at least one of them has run |
| out. <a href="trait.Itertools.html#method.interleave_shortest">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.intersperse" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#483-488">source</a><a href="#method.intersperse" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.intersperse" class="fnname">intersperse</a>(self, element: Self::Item) -> <a class="type" href="structs/type.Intersperse.html" title="type itertools::structs::Intersperse">Intersperse</a><Self><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Clone,</span></h4></section></summary><div class='docblock'>An iterator adaptor to insert a particular value |
| between each element of the adapted iterator. <a href="trait.Itertools.html#method.intersperse">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.intersperse_with-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#504-509">source</a><a href="#method.intersperse_with-1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.intersperse_with" class="fnname">intersperse_with</a><F>(self, element: F) -> <a class="struct" href="structs/struct.IntersperseWith.html" title="struct itertools::structs::IntersperseWith">IntersperseWith</a><Self, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.IntersperseWith.html" title="struct itertools::structs::IntersperseWith">IntersperseWith</a><I, ElemF></span><code class="content"><span class="where fmt-newline">impl<I, ElemF> Iterator for <a class="struct" href="structs/struct.IntersperseWith.html" title="struct itertools::structs::IntersperseWith">IntersperseWith</a><I, ElemF><span class="where fmt-newline">where<br> I: Iterator,<br> ElemF: IntersperseElement<I::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut() -> Self::Item,</span></h4></section></summary><div class='docblock'>An iterator adaptor to insert a particular value created by a function |
| between each element of the adapted iterator. <a href="trait.Itertools.html#method.intersperse_with">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.zip_longest" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#538-543">source</a><a href="#method.zip_longest" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.zip_longest" class="fnname">zip_longest</a><J>(self, other: J) -> <a class="struct" href="structs/struct.ZipLongest.html" title="struct itertools::structs::ZipLongest">ZipLongest</a><Self, J::IntoIter><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.ZipLongest.html" title="struct itertools::structs::ZipLongest">ZipLongest</a><T, U></span><code class="content"><span class="where fmt-newline">impl<T, U> Iterator for <a class="struct" href="structs/struct.ZipLongest.html" title="struct itertools::structs::ZipLongest">ZipLongest</a><T, U><span class="where fmt-newline">where<br> T: Iterator,<br> U: Iterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <a class="enum" href="enum.EitherOrBoth.html" title="enum itertools::EitherOrBoth">EitherOrBoth</a><T::Item, U::Item>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> J: IntoIterator,<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Create an iterator which iterates over both this and the specified |
| iterator simultaneously, yielding pairs of two optional elements. <a href="trait.Itertools.html#method.zip_longest">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.zip_eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#551-556">source</a><a href="#method.zip_eq" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.zip_eq" class="fnname">zip_eq</a><J>(self, other: J) -> <a class="struct" href="structs/struct.ZipEq.html" title="struct itertools::structs::ZipEq">ZipEq</a><Self, J::IntoIter><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.ZipEq.html" title="struct itertools::structs::ZipEq">ZipEq</a><I, J></span><code class="content"><span class="where fmt-newline">impl<I, J> Iterator for <a class="struct" href="structs/struct.ZipEq.html" title="struct itertools::structs::ZipEq">ZipEq</a><I, J><span class="where fmt-newline">where<br> I: Iterator,<br> J: Iterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = (I::Item, J::Item);</span></code></span></span></span></span><span class="where fmt-newline">where<br> J: IntoIterator,<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Create an iterator which iterates over both this and the specified |
| iterator simultaneously, yielding pairs of elements. <a href="trait.Itertools.html#method.zip_eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.batching" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#581-586">source</a><a href="#method.batching" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.batching" class="fnname">batching</a><B, F>(self, f: F) -> <a class="struct" href="structs/struct.Batching.html" title="struct itertools::structs::Batching">Batching</a><Self, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Batching.html" title="struct itertools::structs::Batching">Batching</a><I, F></span><code class="content"><span class="where fmt-newline">impl<B, F, I> Iterator for <a class="struct" href="structs/struct.Batching.html" title="struct itertools::structs::Batching">Batching</a><I, F><span class="where fmt-newline">where<br> I: Iterator,<br> F: FnMut(&mut I) -> Option<B>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = B;</span></code></span></span></span></span><span class="where fmt-newline">where<br> F: FnMut(&mut Self) -> Option<B>,<br> Self: Sized,</span></h4></section></summary><div class='docblock'>A “meta iterator adaptor”. Its closure receives a reference to the |
| iterator and may pick off as many elements as it likes, to produce the |
| next iterator element. <a href="trait.Itertools.html#method.batching">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.group_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#623-629">source</a><a href="#method.group_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.group_by" class="fnname">group_by</a><K, F>(self, key: F) -> <a class="struct" href="structs/struct.GroupBy.html" title="struct itertools::structs::GroupBy">GroupBy</a><K, Self, F><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item) -> K,<br> K: PartialEq,</span></h4></section></summary><div class='docblock'>Return an <em>iterable</em> that can group iterator elements. |
| Consecutive elements that map to the same key (“runs”), are assigned |
| to the same group. <a href="trait.Itertools.html#method.group_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.chunks" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#659-664">source</a><a href="#method.chunks" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.chunks" class="fnname">chunks</a>(self, size: usize) -> <a class="struct" href="structs/struct.IntoChunks.html" title="struct itertools::structs::IntoChunks">IntoChunks</a><Self><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Return an <em>iterable</em> that can chunk the iterator. <a href="trait.Itertools.html#method.chunks">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tuple_windows" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#699-705">source</a><a href="#method.tuple_windows" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tuple_windows" class="fnname">tuple_windows</a><T>(self) -> <a class="struct" href="structs/struct.TupleWindows.html" title="struct itertools::structs::TupleWindows">TupleWindows</a><Self, T><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.TupleWindows.html" title="struct itertools::structs::TupleWindows">TupleWindows</a><I, T></span><code class="content"><span class="where fmt-newline">impl<I, T> Iterator for <a class="struct" href="structs/struct.TupleWindows.html" title="struct itertools::structs::TupleWindows">TupleWindows</a><I, T><span class="where fmt-newline">where<br> I: Iterator<Item = T::Item>,<br> T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a> + Clone,<br> T::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = T;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized + Iterator<Item = T::Item>,<br> T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,<br> T::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator over all contiguous windows producing tuples of |
| a specific size (up to 12). <a href="trait.Itertools.html#method.tuple_windows">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.circular_tuple_windows" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#734-740">source</a><a href="#method.circular_tuple_windows" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.circular_tuple_windows" class="fnname">circular_tuple_windows</a><T>(self) -> <a class="struct" href="structs/struct.CircularTupleWindows.html" title="struct itertools::structs::CircularTupleWindows">CircularTupleWindows</a><Self, T><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.CircularTupleWindows.html" title="struct itertools::structs::CircularTupleWindows">CircularTupleWindows</a><I, T></span><code class="content"><span class="where fmt-newline">impl<I, T> Iterator for <a class="struct" href="structs/struct.CircularTupleWindows.html" title="struct itertools::structs::CircularTupleWindows">CircularTupleWindows</a><I, T><span class="where fmt-newline">where<br> I: Iterator<Item = T::Item> + Clone,<br> T: TupleCollect + Clone,<br> T::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = T;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized + Clone + Iterator<Item = T::Item> + ExactSizeIterator,<br> T: TupleCollect + Clone,<br> T::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator over all windows, wrapping back to the first |
| elements when the window would otherwise exceed the length of the |
| iterator, producing tuples of a specific size (up to 12). <a href="trait.Itertools.html#method.circular_tuple_windows">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tuples" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#772-777">source</a><a href="#method.tuples" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tuples" class="fnname">tuples</a><T>(self) -> <a class="struct" href="structs/struct.Tuples.html" title="struct itertools::structs::Tuples">Tuples</a><Self, T><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Tuples.html" title="struct itertools::structs::Tuples">Tuples</a><I, T></span><code class="content"><span class="where fmt-newline">impl<I, T> Iterator for <a class="struct" href="structs/struct.Tuples.html" title="struct itertools::structs::Tuples">Tuples</a><I, T><span class="where fmt-newline">where<br> I: Iterator<Item = T::Item>,<br> T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = T;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized + Iterator<Item = T::Item>,<br> T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,</span></h4></section></summary><div class='docblock'>Return an iterator that groups the items in tuples of a specific size |
| (up to 12). <a href="trait.Itertools.html#method.tuples">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tee" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#797-802">source</a><a href="#method.tee" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tee" class="fnname">tee</a>(self) -> (<a class="struct" href="structs/struct.Tee.html" title="struct itertools::structs::Tee">Tee</a><Self>, <a class="struct" href="structs/struct.Tee.html" title="struct itertools::structs::Tee">Tee</a><Self>)<span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Split into an iterator pair that both yield all elements from |
| the original iterator. <a href="trait.Itertools.html#method.tee">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.step" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#822-826">source</a><a href="#method.step" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.step" class="fnname">step</a>(self, n: usize) -> <a class="struct" href="structs/struct.Step.html" title="struct itertools::structs::Step">Step</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Step.html" title="struct itertools::structs::Step">Step</a><I></span><code class="content"><span class="where fmt-newline">impl<I> Iterator for <a class="struct" href="structs/struct.Step.html" title="struct itertools::structs::Step">Step</a><I><span class="where fmt-newline">where<br> I: Iterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.8.0: Use std .step_by() instead</span></div></span><div class='docblock'>Return an iterator adaptor that steps <code>n</code> elements in the base iterator |
| for each iteration. <a href="trait.Itertools.html#method.step">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#835-840">source</a><a href="#method.map_into" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.map_into" class="fnname">map_into</a><R>(self) -> <a class="type" href="structs/type.MapInto.html" title="type itertools::structs::MapInto">MapInto</a><Self, R><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Into<R>,</span></h4></section></summary><div class='docblock'>Convert each item of the iterator using the [<code>Into</code>] trait. <a href="trait.Itertools.html#method.map_into">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_results" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#844-849">source</a><a href="#method.map_results" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.map_results" class="fnname">map_results</a><F, T, U, E>(self, f: F) -> <a class="type" href="structs/type.MapOk.html" title="type itertools::structs::MapOk">MapOk</a><Self, F><span class="where fmt-newline">where<br> Self: Iterator<Item = Result<T, E>> + Sized,<br> F: FnMut(T) -> U,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.0: Use .map_ok() instead</span></div></span><div class='docblock'>See <a href="trait.Itertools.html#method.map_ok"><code>.map_ok()</code></a>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#862-867">source</a><a href="#method.map_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.map_ok" class="fnname">map_ok</a><F, T, U, E>(self, f: F) -> <a class="type" href="structs/type.MapOk.html" title="type itertools::structs::MapOk">MapOk</a><Self, F><span class="where fmt-newline">where<br> Self: Iterator<Item = Result<T, E>> + Sized,<br> F: FnMut(T) -> U,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that applies the provided closure |
| to every <code>Result::Ok</code> value. <code>Result::Err</code> values are |
| unchanged. <a href="trait.Itertools.html#method.map_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#880-885">source</a><a href="#method.filter_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.filter_ok" class="fnname">filter_ok</a><F, T, E>(self, f: F) -> <a class="struct" href="structs/struct.FilterOk.html" title="struct itertools::structs::FilterOk">FilterOk</a><Self, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.FilterOk.html" title="struct itertools::structs::FilterOk">FilterOk</a><I, F></span><code class="content"><span class="where fmt-newline">impl<I, F, T, E> Iterator for <a class="struct" href="structs/struct.FilterOk.html" title="struct itertools::structs::FilterOk">FilterOk</a><I, F><span class="where fmt-newline">where<br> I: Iterator<Item = Result<T, E>>,<br> F: FnMut(&T) -> bool,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Result<T, E>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Iterator<Item = Result<T, E>> + Sized,<br> F: FnMut(&T) -> bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters every <code>Result::Ok</code> |
| value with the provided closure. <code>Result::Err</code> values are |
| unchanged. <a href="trait.Itertools.html#method.filter_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.filter_map_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#898-903">source</a><a href="#method.filter_map_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.filter_map_ok" class="fnname">filter_map_ok</a><F, T, U, E>(self, f: F) -> <a class="struct" href="structs/struct.FilterMapOk.html" title="struct itertools::structs::FilterMapOk">FilterMapOk</a><Self, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.FilterMapOk.html" title="struct itertools::structs::FilterMapOk">FilterMapOk</a><I, F></span><code class="content"><span class="where fmt-newline">impl<I, F, T, U, E> Iterator for <a class="struct" href="structs/struct.FilterMapOk.html" title="struct itertools::structs::FilterMapOk">FilterMapOk</a><I, F><span class="where fmt-newline">where<br> I: Iterator<Item = Result<T, E>>,<br> F: FnMut(T) -> Option<U>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Result<U, E>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Iterator<Item = Result<T, E>> + Sized,<br> F: FnMut(T) -> Option<U>,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters and transforms every |
| <code>Result::Ok</code> value with the provided closure. <code>Result::Err</code> |
| values are unchanged. <a href="trait.Itertools.html#method.filter_map_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.flatten_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#922-927">source</a><a href="#method.flatten_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.flatten_ok" class="fnname">flatten_ok</a><T, E>(self) -> <a class="struct" href="structs/struct.FlattenOk.html" title="struct itertools::structs::FlattenOk">FlattenOk</a><Self, T, E><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.FlattenOk.html" title="struct itertools::structs::FlattenOk">FlattenOk</a><I, T, E></span><code class="content"><span class="where fmt-newline">impl<I, T, E> Iterator for <a class="struct" href="structs/struct.FlattenOk.html" title="struct itertools::structs::FlattenOk">FlattenOk</a><I, T, E><span class="where fmt-newline">where<br> I: Iterator<Item = Result<T, E>>,<br> T: IntoIterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Result<T::Item, E>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Iterator<Item = Result<T, E>> + Sized,<br> T: IntoIterator,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that flattens every <code>Result::Ok</code> value into |
| a series of <code>Result::Ok</code> values. <code>Result::Err</code> values are unchanged. <a href="trait.Itertools.html#method.flatten_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.merge" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#943-949">source</a><a href="#method.merge" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.merge" class="fnname">merge</a><J>(self, other: J) -> <a class="type" href="structs/type.Merge.html" title="type itertools::structs::Merge">Merge</a><Self, J::IntoIter><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: PartialOrd,<br> J: IntoIterator<Item = Self::Item>,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that merges the two base iterators in |
| ascending order. If both base iterators are sorted (ascending), the |
| result is sorted. <a href="trait.Itertools.html#method.merge">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.merge_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#967-973">source</a><a href="#method.merge_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.merge_by" class="fnname">merge_by</a><J, F>(self, other: J, is_first: F) -> <a class="struct" href="structs/struct.MergeBy.html" title="struct itertools::structs::MergeBy">MergeBy</a><Self, J::IntoIter, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.MergeBy.html" title="struct itertools::structs::MergeBy">MergeBy</a><I, J, F></span><code class="content"><span class="where fmt-newline">impl<I, J, F> Iterator for <a class="struct" href="structs/struct.MergeBy.html" title="struct itertools::structs::MergeBy">MergeBy</a><I, J, F><span class="where fmt-newline">where<br> I: Iterator,<br> J: Iterator<Item = I::Item>,<br> F: MergePredicate<I::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> J: IntoIterator<Item = Self::Item>,<br> F: FnMut(&Self::Item, &Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that merges the two base iterators in order. |
| This is much like <a href="trait.Itertools.html#method.merge"><code>.merge()</code></a> but allows for a custom ordering. <a href="trait.Itertools.html#method.merge_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.merge_join_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1003-1009">source</a><a href="#method.merge_join_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.merge_join_by" class="fnname">merge_join_by</a><J, F>(<br> self,<br> other: J,<br> cmp_fn: F<br>) -> <a class="struct" href="structs/struct.MergeJoinBy.html" title="struct itertools::structs::MergeJoinBy">MergeJoinBy</a><Self, J::IntoIter, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.MergeJoinBy.html" title="struct itertools::structs::MergeJoinBy">MergeJoinBy</a><I, J, F></span><code class="content"><span class="where fmt-newline">impl<I, J, F> Iterator for <a class="struct" href="structs/struct.MergeJoinBy.html" title="struct itertools::structs::MergeJoinBy">MergeJoinBy</a><I, J, F><span class="where fmt-newline">where<br> I: Iterator,<br> J: Iterator,<br> F: FnMut(&I::Item, &J::Item) -> Ordering,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <a class="enum" href="enum.EitherOrBoth.html" title="enum itertools::EitherOrBoth">EitherOrBoth</a><I::Item, J::Item>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> J: IntoIterator,<br> F: FnMut(&Self::Item, &J::Item) -> Ordering,<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Create an iterator that merges items from both this and the specified |
| iterator in ascending order. <a href="trait.Itertools.html#method.merge_join_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.kmerge" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1028-1034">source</a><a href="#method.kmerge" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.kmerge" class="fnname">kmerge</a>(self) -> <a class="type" href="structs/type.KMerge.html" title="type itertools::structs::KMerge">KMerge</a><<Self::Item as IntoIterator>::IntoIter><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: IntoIterator,<br> <Self::Item as IntoIterator>::Item: PartialOrd,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that flattens an iterator of iterators by |
| merging them in ascending order. <a href="trait.Itertools.html#method.kmerge">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.kmerge_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1057-1065">source</a><a href="#method.kmerge_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.kmerge_by" class="fnname">kmerge_by</a><F>(<br> self,<br> first: F<br>) -> <a class="struct" href="structs/struct.KMergeBy.html" title="struct itertools::structs::KMergeBy">KMergeBy</a><<Self::Item as IntoIterator>::IntoIter, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.KMergeBy.html" title="struct itertools::structs::KMergeBy">KMergeBy</a><I, F></span><code class="content"><span class="where fmt-newline">impl<I, F> Iterator for <a class="struct" href="structs/struct.KMergeBy.html" title="struct itertools::structs::KMergeBy">KMergeBy</a><I, F><span class="where fmt-newline">where<br> I: Iterator,<br> F: KMergePredicate<I::Item>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: IntoIterator,<br> F: FnMut(&<Self::Item as IntoIterator>::Item, &<Self::Item as IntoIterator>::Item) -> bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that flattens an iterator of iterators by |
| merging them according to the given closure. <a href="trait.Itertools.html#method.kmerge_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.cartesian_product" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1078-1085">source</a><a href="#method.cartesian_product" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.cartesian_product" class="fnname">cartesian_product</a><J>(self, other: J) -> <a class="struct" href="structs/struct.Product.html" title="struct itertools::structs::Product">Product</a><Self, J::IntoIter><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Product.html" title="struct itertools::structs::Product">Product</a><I, J></span><code class="content"><span class="where fmt-newline">impl<I, J> Iterator for <a class="struct" href="structs/struct.Product.html" title="struct itertools::structs::Product">Product</a><I, J><span class="where fmt-newline">where<br> I: Iterator,<br> J: Clone + Iterator,<br> I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = (I::Item, J::Item);</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Clone,<br> J: IntoIterator,<br> J::IntoIter: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over the cartesian product of |
| the element sets of two iterators <code>self</code> and <code>J</code>. <a href="trait.Itertools.html#method.cartesian_product">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.multi_cartesian_product" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1113-1120">source</a><a href="#method.multi_cartesian_product" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.multi_cartesian_product" class="fnname">multi_cartesian_product</a>(<br> self<br>) -> <a class="struct" href="structs/struct.MultiProduct.html" title="struct itertools::structs::MultiProduct">MultiProduct</a><<Self::Item as IntoIterator>::IntoIter><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.MultiProduct.html" title="struct itertools::structs::MultiProduct">MultiProduct</a><I></span><code class="content"><span class="where fmt-newline">impl<I> Iterator for <a class="struct" href="structs/struct.MultiProduct.html" title="struct itertools::structs::MultiProduct">MultiProduct</a><I><span class="where fmt-newline">where<br> I: Iterator + Clone,<br> I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec<I::Item>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: IntoIterator,<br> <Self::Item as IntoIterator>::IntoIter: Clone,<br> <Self::Item as IntoIterator>::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over the cartesian product of |
| all subiterators returned by meta-iterator <code>self</code>. <a href="trait.Itertools.html#method.multi_cartesian_product">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coalesce" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1150-1156">source</a><a href="#method.coalesce" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.coalesce" class="fnname">coalesce</a><F>(self, f: F) -> <a class="type" href="structs/type.Coalesce.html" title="type itertools::structs::Coalesce">Coalesce</a><Self, F><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(Self::Item, Self::Item) -> Result<Self::Item, (Self::Item, Self::Item)>,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that uses the passed-in closure to |
| optionally merge together consecutive elements. <a href="trait.Itertools.html#method.coalesce">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dedup" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1172-1177">source</a><a href="#method.dedup" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dedup" class="fnname">dedup</a>(self) -> <a class="type" href="structs/type.Dedup.html" title="type itertools::structs::Dedup">Dedup</a><Self><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: PartialEq,</span></h4></section></summary><div class='docblock'>Remove duplicates from sections of consecutive identical elements. |
| If the iterator is sorted, all elements will be unique. <a href="trait.Itertools.html#method.dedup">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dedup_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1194-1199">source</a><a href="#method.dedup_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dedup_by" class="fnname">dedup_by</a><Cmp>(self, cmp: Cmp) -> <a class="type" href="structs/type.DedupBy.html" title="type itertools::structs::DedupBy">DedupBy</a><Self, Cmp><span class="where fmt-newline">where<br> Self: Sized,<br> Cmp: FnMut(&Self::Item, &Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Remove duplicates from sections of consecutive identical elements, |
| determining equality using a comparison function. |
| If the iterator is sorted, all elements will be unique. <a href="trait.Itertools.html#method.dedup_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dedup_with_count" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1216-1221">source</a><a href="#method.dedup_with_count" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dedup_with_count" class="fnname">dedup_with_count</a>(self) -> <a class="type" href="structs/type.DedupWithCount.html" title="type itertools::structs::DedupWithCount">DedupWithCount</a><Self><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Remove duplicates from sections of consecutive identical elements, while keeping a count of |
| how many repeated elements were present. |
| If the iterator is sorted, all elements will be unique. <a href="trait.Itertools.html#method.dedup_with_count">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dedup_by_with_count" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1239-1245">source</a><a href="#method.dedup_by_with_count" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dedup_by_with_count" class="fnname">dedup_by_with_count</a><Cmp>(self, cmp: Cmp) -> <a class="type" href="structs/type.DedupByWithCount.html" title="type itertools::structs::DedupByWithCount">DedupByWithCount</a><Self, Cmp><span class="where fmt-newline">where<br> Self: Sized,<br> Cmp: FnMut(&Self::Item, &Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Remove duplicates from sections of consecutive identical elements, while keeping a count of |
| how many repeated elements were present. |
| This will determine equality using a comparison function. |
| If the iterator is sorted, all elements will be unique. <a href="trait.Itertools.html#method.dedup_by_with_count">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.duplicates" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1262-1267">source</a><a href="#method.duplicates" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.duplicates" class="fnname">duplicates</a>(self) -> <a class="type" href="structs/type.Duplicates.html" title="type itertools::structs::Duplicates">Duplicates</a><Self><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Eq + Hash,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that produces elements that appear more than once during the |
| iteration. Duplicates are detected using hash and equality. <a href="trait.Itertools.html#method.duplicates">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.duplicates_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1287-1293">source</a><a href="#method.duplicates_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.duplicates_by" class="fnname">duplicates_by</a><V, F>(self, f: F) -> <a class="type" href="structs/type.DuplicatesBy.html" title="type itertools::structs::DuplicatesBy">DuplicatesBy</a><Self, V, F><span class="where fmt-newline">where<br> Self: Sized,<br> V: Eq + Hash,<br> F: FnMut(&Self::Item) -> V,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that produces elements that appear more than once during the |
| iteration. Duplicates are detected using hash and equality. <a href="trait.Itertools.html#method.duplicates_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unique" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1314-1319">source</a><a href="#method.unique" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.unique" class="fnname">unique</a>(self) -> <a class="struct" href="structs/struct.Unique.html" title="struct itertools::structs::Unique">Unique</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Unique.html" title="struct itertools::structs::Unique">Unique</a><I></span><code class="content"><span class="where fmt-newline">impl<I> Iterator for <a class="struct" href="structs/struct.Unique.html" title="struct itertools::structs::Unique">Unique</a><I><span class="where fmt-newline">where<br> I: Iterator,<br> I::Item: Eq + Hash + Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Clone + Eq + Hash,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters out elements that have |
| already been produced once during the iteration. Duplicates |
| are detected using hash and equality. <a href="trait.Itertools.html#method.unique">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.unique_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1340-1346">source</a><a href="#method.unique_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.unique_by" class="fnname">unique_by</a><V, F>(self, f: F) -> <a class="struct" href="structs/struct.UniqueBy.html" title="struct itertools::structs::UniqueBy">UniqueBy</a><Self, V, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.UniqueBy.html" title="struct itertools::structs::UniqueBy">UniqueBy</a><I, V, F></span><code class="content"><span class="where fmt-newline">impl<I, V, F> Iterator for <a class="struct" href="structs/struct.UniqueBy.html" title="struct itertools::structs::UniqueBy">UniqueBy</a><I, V, F><span class="where fmt-newline">where<br> I: Iterator,<br> V: Eq + Hash,<br> F: FnMut(&I::Item) -> V,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> V: Eq + Hash,<br> F: FnMut(&Self::Item) -> V,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters out elements that have |
| already been produced once during the iteration. <a href="trait.Itertools.html#method.unique_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.peeking_take_while" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1360-1365">source</a><a href="#method.peeking_take_while" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.peeking_take_while" class="fnname">peeking_take_while</a><F>(&mut self, accept: F) -> <a class="struct" href="structs/struct.PeekingTakeWhile.html" title="struct itertools::structs::PeekingTakeWhile">PeekingTakeWhile</a><'_, Self, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.PeekingTakeWhile.html" title="struct itertools::structs::PeekingTakeWhile">PeekingTakeWhile</a><'a, I, F></span><code class="content"><span class="where fmt-newline">impl<'a, I, F> Iterator for <a class="struct" href="structs/struct.PeekingTakeWhile.html" title="struct itertools::structs::PeekingTakeWhile">PeekingTakeWhile</a><'a, I, F><span class="where fmt-newline">where<br> I: <a class="trait" href="trait.PeekingNext.html" title="trait itertools::PeekingNext">PeekingNext</a>,<br> F: FnMut(&I::Item) -> bool,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized + <a class="trait" href="trait.PeekingNext.html" title="trait itertools::PeekingNext">PeekingNext</a>,<br> F: FnMut(&Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that borrows from this iterator and |
| takes items while the closure <code>accept</code> returns <code>true</code>. <a href="trait.Itertools.html#method.peeking_take_while">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take_while_ref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1385-1390">source</a><a href="#method.take_while_ref" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.take_while_ref" class="fnname">take_while_ref</a><F>(&mut self, accept: F) -> <a class="struct" href="structs/struct.TakeWhileRef.html" title="struct itertools::structs::TakeWhileRef">TakeWhileRef</a><'_, Self, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.TakeWhileRef.html" title="struct itertools::structs::TakeWhileRef">TakeWhileRef</a><'a, I, F></span><code class="content"><span class="where fmt-newline">impl<'a, I, F> Iterator for <a class="struct" href="structs/struct.TakeWhileRef.html" title="struct itertools::structs::TakeWhileRef">TakeWhileRef</a><'a, I, F><span class="where fmt-newline">where<br> I: Iterator + Clone,<br> F: FnMut(&I::Item) -> bool,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Clone,<br> F: FnMut(&Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that borrows from a <code>Clone</code>-able iterator |
| to only pick off elements while the predicate <code>accept</code> returns <code>true</code>. <a href="trait.Itertools.html#method.take_while_ref">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.while_some" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1406-1410">source</a><a href="#method.while_some" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.while_some" class="fnname">while_some</a><A>(self) -> <a class="struct" href="structs/struct.WhileSome.html" title="struct itertools::structs::WhileSome">WhileSome</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.WhileSome.html" title="struct itertools::structs::WhileSome">WhileSome</a><I></span><code class="content"><span class="where fmt-newline">impl<I, A> Iterator for <a class="struct" href="structs/struct.WhileSome.html" title="struct itertools::structs::WhileSome">WhileSome</a><I><span class="where fmt-newline">where<br> I: Iterator<Item = Option<A>>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = A;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized + Iterator<Item = Option<A>>,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that filters <code>Option<A></code> iterator elements |
| and produces <code>A</code>. Stops on the first <code>None</code> encountered. <a href="trait.Itertools.html#method.while_some">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tuple_combinations" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1445-1451">source</a><a href="#method.tuple_combinations" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tuple_combinations" class="fnname">tuple_combinations</a><T>(self) -> <a class="struct" href="structs/struct.TupleCombinations.html" title="struct itertools::structs::TupleCombinations">TupleCombinations</a><Self, T><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.TupleCombinations.html" title="struct itertools::structs::TupleCombinations">TupleCombinations</a><I, T></span><code class="content"><span class="where fmt-newline">impl<I, T> Iterator for <a class="struct" href="structs/struct.TupleCombinations.html" title="struct itertools::structs::TupleCombinations">TupleCombinations</a><I, T><span class="where fmt-newline">where<br> I: Iterator,<br> T: HasCombination<I>,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = T;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized + Clone,<br> Self::Item: Clone,<br> T: HasCombination<Self>,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over the combinations of the |
| elements from an iterator. <a href="trait.Itertools.html#method.tuple_combinations">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.combinations" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1483-1488">source</a><a href="#method.combinations" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.combinations" class="fnname">combinations</a>(self, k: usize) -> <a class="struct" href="structs/struct.Combinations.html" title="struct itertools::structs::Combinations">Combinations</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Combinations.html" title="struct itertools::structs::Combinations">Combinations</a><I></span><code class="content"><span class="where fmt-newline">impl<I> Iterator for <a class="struct" href="structs/struct.Combinations.html" title="struct itertools::structs::Combinations">Combinations</a><I><span class="where fmt-newline">where<br> I: Iterator,<br> I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec<I::Item>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over the <code>k</code>-length combinations of |
| the elements from an iterator. <a href="trait.Itertools.html#method.combinations">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.combinations_with_replacement" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1510-1516">source</a><a href="#method.combinations_with_replacement" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.combinations_with_replacement" class="fnname">combinations_with_replacement</a>(<br> self,<br> k: usize<br>) -> <a class="struct" href="structs/struct.CombinationsWithReplacement.html" title="struct itertools::structs::CombinationsWithReplacement">CombinationsWithReplacement</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.CombinationsWithReplacement.html" title="struct itertools::structs::CombinationsWithReplacement">CombinationsWithReplacement</a><I></span><code class="content"><span class="where fmt-newline">impl<I> Iterator for <a class="struct" href="structs/struct.CombinationsWithReplacement.html" title="struct itertools::structs::CombinationsWithReplacement">CombinationsWithReplacement</a><I><span class="where fmt-newline">where<br> I: Iterator,<br> I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec<I::Item>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator that iterates over the <code>k</code>-length combinations of |
| the elements from an iterator, with replacement. <a href="trait.Itertools.html#method.combinations_with_replacement">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permutations" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1556-1561">source</a><a href="#method.permutations" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.permutations" class="fnname">permutations</a>(self, k: usize) -> <a class="struct" href="structs/struct.Permutations.html" title="struct itertools::structs::Permutations">Permutations</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Permutations.html" title="struct itertools::structs::Permutations">Permutations</a><I></span><code class="content"><span class="where fmt-newline">impl<I> Iterator for <a class="struct" href="structs/struct.Permutations.html" title="struct itertools::structs::Permutations">Permutations</a><I><span class="where fmt-newline">where<br> I: Iterator,<br> I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec<I::Item>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that iterates over all k-permutations of the |
| elements from an iterator. <a href="trait.Itertools.html#method.permutations">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.powerset" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1592-1597">source</a><a href="#method.powerset" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.powerset" class="fnname">powerset</a>(self) -> <a class="struct" href="structs/struct.Powerset.html" title="struct itertools::structs::Powerset">Powerset</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Powerset.html" title="struct itertools::structs::Powerset">Powerset</a><I></span><code class="content"><span class="where fmt-newline">impl<I> Iterator for <a class="struct" href="structs/struct.Powerset.html" title="struct itertools::structs::Powerset">Powerset</a><I><span class="where fmt-newline">where<br> I: Iterator,<br> I::Item: Clone,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = Vec<I::Item>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Clone,</span></h4></section></summary><div class='docblock'>Return an iterator that iterates through the powerset of the elements from an |
| iterator. <a href="trait.Itertools.html#method.powerset">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pad_using" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1616-1621">source</a><a href="#method.pad_using" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.pad_using" class="fnname">pad_using</a><F>(self, min: usize, f: F) -> <a class="struct" href="structs/struct.PadUsing.html" title="struct itertools::structs::PadUsing">PadUsing</a><Self, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.PadUsing.html" title="struct itertools::structs::PadUsing">PadUsing</a><I, F></span><code class="content"><span class="where fmt-newline">impl<I, F> Iterator for <a class="struct" href="structs/struct.PadUsing.html" title="struct itertools::structs::PadUsing">PadUsing</a><I, F><span class="where fmt-newline">where<br> I: Iterator,<br> F: FnMut(usize) -> I::Item,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(usize) -> Self::Item,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that pads the sequence to a minimum length of |
| <code>min</code> by filling missing elements using a closure <code>f</code>. <a href="trait.Itertools.html#method.pad_using">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_position" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1642-1646">source</a><a href="#method.with_position" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.with_position" class="fnname">with_position</a>(self) -> <a class="struct" href="structs/struct.WithPosition.html" title="struct itertools::structs::WithPosition">WithPosition</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.WithPosition.html" title="struct itertools::structs::WithPosition">WithPosition</a><I></span><code class="content"><span class="where fmt-newline">impl<I: Iterator> Iterator for <a class="struct" href="structs/struct.WithPosition.html" title="struct itertools::structs::WithPosition">WithPosition</a><I></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <a class="enum" href="enum.Position.html" title="enum itertools::Position">Position</a><I::Item>;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that wraps each element in a <code>Position</code> to |
| ease special-case handling of the first or last elements. <a href="trait.Itertools.html#method.with_position">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.positions" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1661-1666">source</a><a href="#method.positions" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.positions" class="fnname">positions</a><P>(self, predicate: P) -> <a class="struct" href="structs/struct.Positions.html" title="struct itertools::structs::Positions">Positions</a><Self, P><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Positions.html" title="struct itertools::structs::Positions">Positions</a><I, F></span><code class="content"><span class="where fmt-newline">impl<I, F> Iterator for <a class="struct" href="structs/struct.Positions.html" title="struct itertools::structs::Positions">Positions</a><I, F><span class="where fmt-newline">where<br> I: Iterator,<br> F: FnMut(I::Item) -> bool,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = usize;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> P: FnMut(Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that yields the indices of all elements |
| satisfying a predicate, counted from the start of the iterator. <a href="trait.Itertools.html#method.positions">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.update" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1678-1683">source</a><a href="#method.update" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.update" class="fnname">update</a><F>(self, updater: F) -> <a class="struct" href="structs/struct.Update.html" title="struct itertools::structs::Update">Update</a><Self, F><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.Update.html" title="struct itertools::structs::Update">Update</a><I, F></span><code class="content"><span class="where fmt-newline">impl<I, F> Iterator for <a class="struct" href="structs/struct.Update.html" title="struct itertools::structs::Update">Update</a><I, F><span class="where fmt-newline">where<br> I: Iterator,<br> F: FnMut(&mut I::Item),</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&mut Self::Item),</span></h4></section></summary><div class='docblock'>Return an iterator adaptor that applies a mutating function |
| to each element before yielding it. <a href="trait.Itertools.html#method.update">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.next_tuple" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1699-1704">source</a><a href="#method.next_tuple" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.next_tuple" class="fnname">next_tuple</a><T>(&mut self) -> Option<T><span class="where fmt-newline">where<br> Self: Sized + Iterator<Item = T::Item>,<br> T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,</span></h4></section></summary><div class='docblock'>Advances the iterator and returns the next items grouped in a tuple of |
| a specific size (up to 12). <a href="trait.Itertools.html#method.next_tuple">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.collect_tuple" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1724-1735">source</a><a href="#method.collect_tuple" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.collect_tuple" class="fnname">collect_tuple</a><T>(self) -> Option<T><span class="where fmt-newline">where<br> Self: Sized + Iterator<Item = T::Item>,<br> T: <a class="trait" href="traits/trait.HomogeneousTuple.html" title="trait itertools::traits::HomogeneousTuple">HomogeneousTuple</a>,</span></h4></section></summary><div class='docblock'>Collects all items from the iterator into a tuple of a specific size |
| (up to 12). <a href="trait.Itertools.html#method.collect_tuple">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_position" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1748-1757">source</a><a href="#method.find_position" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.find_position" class="fnname">find_position</a><P>(&mut self, pred: P) -> Option<(usize, Self::Item)><span class="where fmt-newline">where<br> P: FnMut(&Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Find the position and value of the first element satisfying a predicate. <a href="trait.Itertools.html#method.find_position">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_or_last" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1770-1777">source</a><a href="#method.find_or_last" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.find_or_last" class="fnname">find_or_last</a><P>(self, predicate: P) -> Option<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> P: FnMut(&Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Find the value of the first element satisfying a predicate or return the last element, if any. <a href="trait.Itertools.html#method.find_or_last">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.find_or_first" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1790-1800">source</a><a href="#method.find_or_first" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.find_or_first" class="fnname">find_or_first</a><P>(self, predicate: P) -> Option<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> P: FnMut(&Self::Item) -> bool,</span></h4></section></summary><div class='docblock'>Find the value of the first element satisfying a predicate or return the first element, if any. <a href="trait.Itertools.html#method.find_or_first">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.contains" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1826-1833">source</a><a href="#method.contains" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.contains" class="fnname">contains</a><Q>(&mut self, query: &Q) -> bool<span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Borrow<Q>,<br> Q: PartialEq,</span></h4></section></summary><div class='docblock'>Returns <code>true</code> if the given item is present in this iterator. <a href="trait.Itertools.html#method.contains">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.all_equal" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1851-1859">source</a><a href="#method.all_equal" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.all_equal" class="fnname">all_equal</a>(&mut self) -> bool<span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: PartialEq,</span></h4></section></summary><div class='docblock'>Check whether all elements compare equal. <a href="trait.Itertools.html#method.all_equal">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.all_unique" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1877-1883">source</a><a href="#method.all_unique" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.all_unique" class="fnname">all_unique</a>(&mut self) -> bool<span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Eq + Hash,</span></h4></section></summary><div class='docblock'>Check whether all elements are unique (non equal). <a href="trait.Itertools.html#method.all_unique">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dropping" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1900-1907">source</a><a href="#method.dropping" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dropping" class="fnname">dropping</a>(self, n: usize) -> Self<span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Consume the first <code>n</code> elements from the iterator eagerly, |
| and return the same iterator again. <a href="trait.Itertools.html#method.dropping">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.dropping_back" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1924-1932">source</a><a href="#method.dropping_back" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.dropping_back" class="fnname">dropping_back</a>(self, n: usize) -> Self<span class="where fmt-newline">where<br> Self: Sized,<br> Self: DoubleEndedIterator,</span></h4></section></summary><div class='docblock'>Consume the last <code>n</code> elements from the iterator eagerly, |
| and return the same iterator again. <a href="trait.Itertools.html#method.dropping_back">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.foreach" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1952-1957">source</a><a href="#method.foreach" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.foreach" class="fnname">foreach</a><F>(self, f: F)<span class="where fmt-newline">where<br> F: FnMut(Self::Item),<br> Self: Sized,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.8.0: Use .for_each() instead</span></div></span><div class='docblock'>Run the closure <code>f</code> eagerly on each element of the iterator. <a href="trait.Itertools.html#method.foreach">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.concat" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1972-1977">source</a><a href="#method.concat" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.concat" class="fnname">concat</a>(self) -> Self::Item<span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Extend<<<Self as Iterator>::Item as IntoIterator>::Item> + IntoIterator + Default,</span></h4></section></summary><div class='docblock'>Combine all an iterator’s elements into one element by using [<code>Extend</code>]. <a href="trait.Itertools.html#method.concat">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.collect_vec" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#1982-1986">source</a><a href="#method.collect_vec" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.collect_vec" class="fnname">collect_vec</a>(self) -> Vec<Self::Item><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'><code>.collect_vec()</code> is simply a type specialization of [<code>Iterator::collect</code>], |
| for convenience. <a href="trait.Itertools.html#method.collect_vec">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_collect" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2009-2015">source</a><a href="#method.try_collect" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.try_collect" class="fnname">try_collect</a><T, U, E>(self) -> Result<U, E><span class="where fmt-newline">where<br> Self: Sized + Iterator<Item = Result<T, E>>,<br> Result<U, E>: FromIterator<Result<T, E>>,</span></h4></section></summary><div class='docblock'><code>.try_collect()</code> is more convenient way of writing |
| <code>.collect::<Result<_, _>>()</code> <a href="trait.Itertools.html#method.try_collect">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2033-2046">source</a><a href="#method.set_from" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.set_from" class="fnname">set_from</a><'a, A: 'a, J>(&mut self, from: J) -> usize<span class="where fmt-newline">where<br> Self: Iterator<Item = &'a mut A>,<br> J: IntoIterator<Item = A>,</span></h4></section></summary><div class='docblock'>Assign to each reference in <code>self</code> from the <code>from</code> iterator, |
| stopping at the shortest of the two iterators. <a href="trait.Itertools.html#method.set_from">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.join" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2059-2076">source</a><a href="#method.join" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.join" class="fnname">join</a>(&mut self, sep: &str) -> String<span class="where fmt-newline">where<br> Self::Item: Display,</span></h4></section></summary><div class='docblock'>Combine all iterator elements into one String, separated by <code>sep</code>. <a href="trait.Itertools.html#method.join">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2093-2097">source</a><a href="#method.format" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.format" class="fnname">format</a>(self, sep: &str) -> <a class="struct" href="structs/struct.Format.html" title="struct itertools::structs::Format">Format</a><'_, Self><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Format all iterator elements, separated by <code>sep</code>. <a href="trait.Itertools.html#method.format">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.format_with" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2131-2136">source</a><a href="#method.format_with" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.format_with" class="fnname">format_with</a><F>(self, sep: &str, format: F) -> <a class="struct" href="structs/struct.FormatWith.html" title="struct itertools::structs::FormatWith">FormatWith</a><'_, Self, F><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(Self::Item, &mut dyn FnMut(&dyn Display) -> Result) -> Result,</span></h4></section></summary><div class='docblock'>Format all iterator elements, separated by <code>sep</code>. <a href="trait.Itertools.html#method.format_with">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold_results" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2140-2145">source</a><a href="#method.fold_results" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold_results" class="fnname">fold_results</a><A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E><span class="where fmt-newline">where<br> Self: Iterator<Item = Result<A, E>>,<br> F: FnMut(B, A) -> B,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.0: Use .fold_ok() instead</span></div></span><div class='docblock'>See <a href="trait.Itertools.html#method.fold_ok"><code>.fold_ok()</code></a>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold_ok" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2189-2200">source</a><a href="#method.fold_ok" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold_ok" class="fnname">fold_ok</a><A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E><span class="where fmt-newline">where<br> Self: Iterator<Item = Result<A, E>>,<br> F: FnMut(B, A) -> B,</span></h4></section></summary><div class='docblock'>Fold <code>Result</code> values from an iterator. <a href="trait.Itertools.html#method.fold_ok">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold_options" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2221-2232">source</a><a href="#method.fold_options" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold_options" class="fnname">fold_options</a><A, B, F>(&mut self, start: B, f: F) -> Option<B><span class="where fmt-newline">where<br> Self: Iterator<Item = Option<A>>,<br> F: FnMut(B, A) -> B,</span></h4></section></summary><div class='docblock'>Fold <code>Option</code> values from an iterator. <a href="trait.Itertools.html#method.fold_options">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2247-2252">source</a><a href="#method.fold1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold1" class="fnname">fold1</a><F>(self, f: F) -> Option<Self::Item><span class="where fmt-newline">where<br> F: FnMut(Self::Item, Self::Item) -> Self::Item,<br> Self: Sized,</span></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.2: Use <code>Iterator::reduce</code> instead</span></div></span><div class='docblock'>Accumulator of the elements in the iterator. <a href="trait.Itertools.html#method.fold1">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tree_fold1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2302-2359">source</a><a href="#method.tree_fold1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.tree_fold1" class="fnname">tree_fold1</a><F>(self, f: F) -> Option<Self::Item><span class="where fmt-newline">where<br> F: FnMut(Self::Item, Self::Item) -> Self::Item,<br> Self: Sized,</span></h4></section></summary><div class='docblock'>Accumulate the elements in the iterator in a tree-like manner. <a href="trait.Itertools.html#method.tree_fold1">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fold_while" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2400-2420">source</a><a href="#method.fold_while" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.fold_while" class="fnname">fold_while</a><B, F>(&mut self, init: B, f: F) -> <a class="enum" href="enum.FoldWhile.html" title="enum itertools::FoldWhile">FoldWhile</a><B><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(B, Self::Item) -> <a class="enum" href="enum.FoldWhile.html" title="enum itertools::FoldWhile">FoldWhile</a><B>,</span></h4></section></summary><div class='docblock'>An iterator method that applies a function, producing a single, final value. <a href="trait.Itertools.html#method.fold_while">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sum1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2443-2449">source</a><a href="#method.sum1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sum1" class="fnname">sum1</a><S>(self) -> Option<S><span class="where fmt-newline">where<br> Self: Sized,<br> S: Sum<Self::Item>,</span></h4></section></summary><div class='docblock'>Iterate over the entire iterator and add all the elements. <a href="trait.Itertools.html#method.sum1">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.product1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2471-2477">source</a><a href="#method.product1" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.product1" class="fnname">product1</a><P>(self) -> Option<P><span class="where fmt-newline">where<br> Self: Sized,<br> P: Product<Self::Item>,</span></h4></section></summary><div class='docblock'>Iterate over the entire iterator and multiply all the elements. <a href="trait.Itertools.html#method.product1">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_unstable" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2497-2506">source</a><a href="#method.sorted_unstable" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_unstable" class="fnname">sorted_unstable</a>(self) -> IntoIter<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_unstable">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_unstable_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2532-2539">source</a><a href="#method.sorted_unstable_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_unstable_by" class="fnname">sorted_unstable_by</a><F>(self, cmp: F) -> IntoIter<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item, &Self::Item) -> Ordering,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_unstable_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_unstable_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2565-2573">source</a><a href="#method.sorted_unstable_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_unstable_by_key" class="fnname">sorted_unstable_by_key</a><K, F>(self, f: F) -> IntoIter<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> K: Ord,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_unstable_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2593-2602">source</a><a href="#method.sorted" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted" class="fnname">sorted</a>(self) -> IntoIter<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2628-2635">source</a><a href="#method.sorted_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_by" class="fnname">sorted_by</a><F>(self, cmp: F) -> IntoIter<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item, &Self::Item) -> Ordering,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2661-2669">source</a><a href="#method.sorted_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_by_key" class="fnname">sorted_by_key</a><K, F>(self, f: F) -> IntoIter<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> K: Ord,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. <a href="trait.Itertools.html#method.sorted_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sorted_by_cached_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2696-2705">source</a><a href="#method.sorted_by_cached_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.sorted_by_cached_key" class="fnname">sorted_by_cached_key</a><K, F>(self, f: F) -> IntoIter<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> K: Ord,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Sort all iterator elements into a new iterator in ascending order. The key function is |
| called exactly once per key. <a href="trait.Itertools.html#method.sorted_by_cached_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.k_smallest" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2735-2742">source</a><a href="#method.k_smallest" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.k_smallest" class="fnname">k_smallest</a>(self, k: usize) -> IntoIter<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Sort the k smallest elements into a new iterator, in ascending order. <a href="trait.Itertools.html#method.k_smallest">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partition_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2765-2780">source</a><a href="#method.partition_map" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.partition_map" class="fnname">partition_map</a><A, B, F, L, R>(self, predicate: F) -> (A, B)<span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(Self::Item) -> <a class="enum" href="enum.Either.html" title="enum itertools::Either">Either</a><L, R>,<br> A: Default + Extend<L>,<br> B: Default + Extend<R>,</span></h4></section></summary><div class='docblock'>Collect all iterator elements into one of two |
| partitions. Unlike [<code>Iterator::partition</code>], each partition may |
| have a distinct type. <a href="trait.Itertools.html#method.partition_map">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.partition_result" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2797-2807">source</a><a href="#method.partition_result" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.partition_result" class="fnname">partition_result</a><A, B, T, E>(self) -> (A, B)<span class="where fmt-newline">where<br> Self: Iterator<Item = Result<T, E>> + Sized,<br> A: Default + Extend<T>,<br> B: Default + Extend<E>,</span></h4></section></summary><div class='docblock'>Partition a sequence of <code>Result</code>s into one list of all the <code>Ok</code> elements |
| and another list of all the <code>Err</code> elements. <a href="trait.Itertools.html#method.partition_result">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_group_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2826-2831">source</a><a href="#method.into_group_map" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.into_group_map" class="fnname">into_group_map</a><K, V>(self) -> HashMap<K, Vec<V>><span class="where fmt-newline">where<br> Self: Iterator<Item = (K, V)> + Sized,<br> K: Hash + Eq,</span></h4></section></summary><div class='docblock'>Return a <code>HashMap</code> of keys mapped to <code>Vec</code>s of values. Keys and values |
| are taken from <code>(Key, Value)</code> tuple pairs yielded by the input iterator. <a href="trait.Itertools.html#method.into_group_map">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_group_map_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2861-2868">source</a><a href="#method.into_group_map_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.into_group_map_by" class="fnname">into_group_map_by</a><K, V, F>(self, f: F) -> HashMap<K, Vec<V>><span class="where fmt-newline">where<br> Self: Iterator<Item = V> + Sized,<br> K: Hash + Eq,<br> F: Fn(&V) -> K,</span></h4></section></summary><div class='docblock'>Return an <code>Iterator</code> on a <code>HashMap</code>. Keys mapped to <code>Vec</code>s of values. The key is specified |
| in the closure. <a href="trait.Itertools.html#method.into_group_map_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_grouping_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2880-2885">source</a><a href="#method.into_grouping_map" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.into_grouping_map" class="fnname">into_grouping_map</a><K, V>(self) -> <a class="struct" href="structs/struct.GroupingMap.html" title="struct itertools::structs::GroupingMap">GroupingMap</a><Self><span class="where fmt-newline">where<br> Self: Iterator<Item = (K, V)> + Sized,<br> K: Hash + Eq,</span></h4></section></summary><div class='docblock'>Constructs a <code>GroupingMap</code> to be used later with one of the efficient |
| group-and-fold operations it allows to perform. <a href="trait.Itertools.html#method.into_grouping_map">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_grouping_map_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2896-2902">source</a><a href="#method.into_grouping_map_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.into_grouping_map_by" class="fnname">into_grouping_map_by</a><K, V, F>(self, key_mapper: F) -> <a class="type" href="structs/type.GroupingMapBy.html" title="type itertools::structs::GroupingMapBy">GroupingMapBy</a><Self, F><span class="where fmt-newline">where<br> Self: Iterator<Item = V> + Sized,<br> K: Hash + Eq,<br> F: FnMut(&V) -> K,</span></h4></section></summary><div class='docblock'>Constructs a <code>GroupingMap</code> to be used later with one of the efficient |
| group-and-fold operations it allows to perform. <a href="trait.Itertools.html#method.into_grouping_map_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min_set" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2927-2931">source</a><a href="#method.min_set" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.min_set" class="fnname">min_set</a>(self) -> Vec<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Return all minimum elements of an iterator. <a href="trait.Itertools.html#method.min_set">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min_set_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2958-2966">source</a><a href="#method.min_set_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.min_set_by" class="fnname">min_set_by</a><F>(self, compare: F) -> Vec<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item, &Self::Item) -> Ordering,</span></h4></section></summary><div class='docblock'>Return all minimum elements of an iterator, as determined by |
| the specified function. <a href="trait.Itertools.html#method.min_set_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.min_set_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#2992-2996">source</a><a href="#method.min_set_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.min_set_by_key" class="fnname">min_set_by_key</a><K, F>(self, key: F) -> Vec<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> K: Ord,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Return all minimum elements of an iterator, as determined by |
| the specified function. <a href="trait.Itertools.html#method.min_set_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_set" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3021-3025">source</a><a href="#method.max_set" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.max_set" class="fnname">max_set</a>(self) -> Vec<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Return all maximum elements of an iterator. <a href="trait.Itertools.html#method.max_set">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_set_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3052-3060">source</a><a href="#method.max_set_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.max_set_by" class="fnname">max_set_by</a><F>(self, compare: F) -> Vec<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item, &Self::Item) -> Ordering,</span></h4></section></summary><div class='docblock'>Return all maximum elements of an iterator, as determined by |
| the specified function. <a href="trait.Itertools.html#method.max_set_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_set_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3086-3090">source</a><a href="#method.max_set_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.max_set_by_key" class="fnname">max_set_by_key</a><K, F>(self, key: F) -> Vec<Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> K: Ord,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Return all minimum elements of an iterator, as determined by |
| the specified function. <a href="trait.Itertools.html#method.max_set_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.minmax" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3127-3131">source</a><a href="#method.minmax" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.minmax" class="fnname">minmax</a>(self) -> <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a><Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: PartialOrd,</span></h4></section></summary><div class='docblock'>Return the minimum and maximum elements in the iterator. <a href="trait.Itertools.html#method.minmax">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.minmax_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3144-3148">source</a><a href="#method.minmax_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.minmax_by_key" class="fnname">minmax_by_key</a><K, F>(self, key: F) -> <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a><Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> K: PartialOrd,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Return the minimum and maximum element of an iterator, as determined by |
| the specified function. <a href="trait.Itertools.html#method.minmax_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.minmax_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3158-3166">source</a><a href="#method.minmax_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.minmax_by" class="fnname">minmax_by</a><F>(self, compare: F) -> <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a><Self::Item><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item, &Self::Item) -> Ordering,</span></h4></section></summary><div class='docblock'>Return the minimum and maximum element of an iterator, as determined by |
| the specified comparison function. <a href="trait.Itertools.html#method.minmax_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_max" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3187-3193">source</a><a href="#method.position_max" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_max" class="fnname">position_max</a>(self) -> Option<usize><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Return the position of the maximum element in the iterator. <a href="trait.Itertools.html#method.position_max">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_max_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3215-3221">source</a><a href="#method.position_max_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_max_by_key" class="fnname">position_max_by_key</a><K, F>(self, key: F) -> Option<usize><span class="where fmt-newline">where<br> Self: Sized,<br> K: Ord,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Return the position of the maximum element in the iterator, as |
| determined by the specified function. <a href="trait.Itertools.html#method.position_max_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_max_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3243-3249">source</a><a href="#method.position_max_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_max_by" class="fnname">position_max_by</a><F>(self, compare: F) -> Option<usize><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item, &Self::Item) -> Ordering,</span></h4></section></summary><div class='docblock'>Return the position of the maximum element in the iterator, as |
| determined by the specified comparison function. <a href="trait.Itertools.html#method.position_max_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_min" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3270-3276">source</a><a href="#method.position_min" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_min" class="fnname">position_min</a>(self) -> Option<usize><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Ord,</span></h4></section></summary><div class='docblock'>Return the position of the minimum element in the iterator. <a href="trait.Itertools.html#method.position_min">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_min_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3298-3304">source</a><a href="#method.position_min_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_min_by_key" class="fnname">position_min_by_key</a><K, F>(self, key: F) -> Option<usize><span class="where fmt-newline">where<br> Self: Sized,<br> K: Ord,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Return the position of the minimum element in the iterator, as |
| determined by the specified function. <a href="trait.Itertools.html#method.position_min_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_min_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3326-3332">source</a><a href="#method.position_min_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_min_by" class="fnname">position_min_by</a><F>(self, compare: F) -> Option<usize><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item, &Self::Item) -> Ordering,</span></h4></section></summary><div class='docblock'>Return the position of the minimum element in the iterator, as |
| determined by the specified comparison function. <a href="trait.Itertools.html#method.position_min_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_minmax" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3376-3385">source</a><a href="#method.position_minmax" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_minmax" class="fnname">position_minmax</a>(self) -> <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a><usize><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: PartialOrd,</span></h4></section></summary><div class='docblock'>Return the positions of the minimum and maximum elements in |
| the iterator. <a href="trait.Itertools.html#method.position_minmax">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_minmax_by_key" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3421-3430">source</a><a href="#method.position_minmax_by_key" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_minmax_by_key" class="fnname">position_minmax_by_key</a><K, F>(self, key: F) -> <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a><usize><span class="where fmt-newline">where<br> Self: Sized,<br> K: PartialOrd,<br> F: FnMut(&Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Return the postions of the minimum and maximum elements of an |
| iterator, as determined by the specified function. <a href="trait.Itertools.html#method.position_minmax_by_key">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.position_minmax_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3463-3472">source</a><a href="#method.position_minmax_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.position_minmax_by" class="fnname">position_minmax_by</a><F>(self, compare: F) -> <a class="enum" href="enum.MinMaxResult.html" title="enum itertools::MinMaxResult">MinMaxResult</a><usize><span class="where fmt-newline">where<br> Self: Sized,<br> F: FnMut(&Self::Item, &Self::Item) -> Ordering,</span></h4></section></summary><div class='docblock'>Return the postions of the minimum and maximum elements of an |
| iterator, as determined by the specified comparison function. <a href="trait.Itertools.html#method.position_minmax_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.exactly_one" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3491-3508">source</a><a href="#method.exactly_one" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.exactly_one" class="fnname">exactly_one</a>(self) -> Result<Self::Item, <a class="struct" href="structs/struct.ExactlyOneError.html" title="struct itertools::structs::ExactlyOneError">ExactlyOneError</a><Self>><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'>If the iterator yields exactly one element, that element will be returned, otherwise |
| an error will be returned containing an iterator that has the same output as the input |
| iterator. <a href="trait.Itertools.html#method.exactly_one">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.at_most_one" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3527-3544">source</a><a href="#method.at_most_one" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.at_most_one" class="fnname">at_most_one</a>(self) -> Result<Option<Self::Item>, <a class="struct" href="structs/struct.ExactlyOneError.html" title="struct itertools::structs::ExactlyOneError">ExactlyOneError</a><Self>><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'>If the iterator yields no elements, Ok(None) will be returned. If the iterator yields |
| exactly one element, that element will be returned, otherwise an error will be returned |
| containing an iterator that has the same output as the input iterator. <a href="trait.Itertools.html#method.at_most_one">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.multipeek" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3561-3566">source</a><a href="#method.multipeek" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.multipeek" class="fnname">multipeek</a>(self) -> <a class="struct" href="structs/struct.MultiPeek.html" title="struct itertools::structs::MultiPeek">MultiPeek</a><Self><span class="notable-traits"><span class="notable-traits-tooltip">ⓘ<span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="structs/struct.MultiPeek.html" title="struct itertools::structs::MultiPeek">MultiPeek</a><I></span><code class="content"><span class="where fmt-newline">impl<I> Iterator for <a class="struct" href="structs/struct.MultiPeek.html" title="struct itertools::structs::MultiPeek">MultiPeek</a><I><span class="where fmt-newline">where<br> I: Iterator,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = I::Item;</span></code></span></span></span></span><span class="where fmt-newline">where<br> Self: Sized,</span></h4></section></summary><div class='docblock'>An iterator adaptor that allows the user to peek at multiple <code>.next()</code> |
| values without advancing the base iterator. <a href="trait.Itertools.html#method.multipeek">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.counts" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3582-3590">source</a><a href="#method.counts" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.counts" class="fnname">counts</a>(self) -> HashMap<Self::Item, usize><span class="where fmt-newline">where<br> Self: Sized,<br> Self::Item: Eq + Hash,</span></h4></section></summary><div class='docblock'>Collect the items in this iterator and return a <code>HashMap</code> which |
| contains each item that appears in the iterator and the number |
| of times it appears. <a href="trait.Itertools.html#method.counts">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.counts_by" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3625-3632">source</a><a href="#method.counts_by" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.counts_by" class="fnname">counts_by</a><K, F>(self, f: F) -> HashMap<K, usize><span class="where fmt-newline">where<br> Self: Sized,<br> K: Eq + Hash,<br> F: FnMut(Self::Item) -> K,</span></h4></section></summary><div class='docblock'>Collect the items in this iterator and return a <code>HashMap</code> which |
| contains each item that appears in the iterator and the number |
| of times it appears, |
| determining identity using a keying function. <a href="trait.Itertools.html#method.counts_by">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.multiunzip" class="method trait-impl has-srclink"><a class="srclink rightside" href="../src/itertools/lib.rs.html#3654-3659">source</a><a href="#method.multiunzip" class="anchor"></a><h4 class="code-header">fn <a href="trait.Itertools.html#method.multiunzip" class="fnname">multiunzip</a><FromI>(self) -> FromI<span class="where fmt-newline">where<br> Self: Sized + <a class="trait" href="trait.MultiUnzip.html" title="trait itertools::MultiUnzip">MultiUnzip</a><FromI>,</span></h4></section></summary><div class='docblock'>Converts an iterator of tuples into a tuple of containers. <a href="trait.Itertools.html#method.multiunzip">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Provider-for-Either%3CL%2C%20R%3E" class="impl has-srclink"><a href="#impl-Provider-for-Either%3CL%2C%20R%3E" class="anchor"></a><h3 class="code-header">impl<E> Provider for E<span class="where fmt-newline">where<br> 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>(&'a self, demand: &mut Demand<'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>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<T> ToOwned for T<span class="where fmt-newline">where<br> 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>(&self) -> 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>(&self, target: &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<T> ToString for T<span class="where fmt-newline">where<br> 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>(&self) -> 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<T, U> TryFrom<U> for T<span class="where fmt-newline">where<br> U: Into<T>,</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) -> Result<T, <T as TryFrom<U>>::Error></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<T, U> TryInto<U> for T<span class="where fmt-newline">where<br> U: TryFrom<T>,</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> = <U as TryFrom<T>>::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) -> Result<U, <U as TryFrom<T>>::Error></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="itertools" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html> |