1571 lines
442 KiB
HTML
1571 lines
442 KiB
HTML
<!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="Parallel version of the standard iterator trait."><title>ParallelIterator in rayon::iter - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="rayon" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">ParallelIterator</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../rayon/index.html">rayon</a><span class="version">1.11.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Parallel<wbr>Iterator</a></h2><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.Item" title="Item">Item</a></li></ul><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.drive_unindexed" title="drive_unindexed">drive_unindexed</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.all" title="all">all</a></li><li><a href="#method.any" title="any">any</a></li><li><a href="#method.chain" title="chain">chain</a></li><li><a href="#method.cloned" title="cloned">cloned</a></li><li><a href="#method.collect" title="collect">collect</a></li><li><a href="#method.collect_vec_list" title="collect_vec_list">collect_vec_list</a></li><li><a href="#method.copied" title="copied">copied</a></li><li><a href="#method.count" title="count">count</a></li><li><a href="#method.filter" title="filter">filter</a></li><li><a href="#method.filter_map" title="filter_map">filter_map</a></li><li><a href="#method.find_any" title="find_any">find_any</a></li><li><a href="#method.find_first" title="find_first">find_first</a></li><li><a href="#method.find_last" title="find_last">find_last</a></li><li><a href="#method.find_map_any" title="find_map_any">find_map_any</a></li><li><a href="#method.find_map_first" title="find_map_first">find_map_first</a></li><li><a href="#method.find_map_last" title="find_map_last">find_map_last</a></li><li><a href="#method.flat_map" title="flat_map">flat_map</a></li><li><a href="#method.flat_map_iter" title="flat_map_iter">flat_map_iter</a></li><li><a href="#method.flatten" title="flatten">flatten</a></li><li><a href="#method.flatten_iter" title="flatten_iter">flatten_iter</a></li><li><a href="#method.fold" title="fold">fold</a></li><li><a href="#method.fold_with" title="fold_with">fold_with</a></li><li><a href="#method.for_each" title="for_each">for_each</a></li><li><a href="#method.for_each_init" title="for_each_init">for_each_init</a></li><li><a href="#method.for_each_with" title="for_each_with">for_each_with</a></li><li><a href="#method.inspect" title="inspect">inspect</a></li><li><a href="#method.intersperse" title="intersperse">intersperse</a></li><li><a href="#method.map" title="map">map</a></li><li><a href="#method.map_init" title="map_init">map_init</a></li><li><a href="#method.map_with" title="map_with">map_with</a></li><li><a href="#method.max" title="max">max</a></li><li><a href="#method.max_by" title="max_by">max_by</a></li><li><a href="#method.max_by_key" title="max_by_key">max_by_key</a></li><li><a href="#method.min" title="min">min</a></li><li><a href="#method.min_by" title="min_by">min_by</a></li><li><a href="#method.min_by_key" title="min_by_key">min_by_key</a></li><li><a href="#method.opt_len" title="opt_len">opt_len</a></li><li><a href="#method.panic_fuse" title="panic_fuse">panic_fuse</a></li><li><a href="#method.partition" title="partition">partition</a></li><li><a href="#method.partition_map" title="partition_map">partition_map</a></li><li><a href="#method.product" title="product">product</a></li><li><a href="#method.reduce" title="reduce">reduce</a></li><li><a href="#method.reduce_with" title="reduce_with">reduce_with</a></li><li><a href="#method.skip_any" title="skip_any">skip_any</a></li><li><a href="#method.skip_any_while" title="skip_any_while">skip_any_while</a></li><li><a href="#method.sum" title="sum">sum</a></li><li><a href="#method.take_any" title="take_any">take_any</a></li><li><a href="#method.take_any_while" title="take_any_while">take_any_while</a></li><li><a href="#method.try_fold" title="try_fold">try_fold</a></li><li><a href="#method.try_fold_with" title="try_fold_with">try_fold_with</a></li><li><a href="#method.try_for_each" title="try_for_each">try_for_each</a></li><li><a href="#method.try_for_each_init" title="try_for_each_init">try_for_each_init</a></li><li><a href="#method.try_for_each_with" title="try_for_each_with">try_for_each_with</a></li><li><a href="#method.try_reduce" title="try_reduce">try_reduce</a></li><li><a href="#method.try_reduce_with" title="try_reduce_with">try_reduce_with</a></li><li><a href="#method.unzip" title="unzip">unzip</a></li><li><a href="#method.update" title="update">update</a></li><li><a href="#method.while_some" title="while_some">while_some</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In rayon::<wbr>iter</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">rayon</a>::<wbr><a href="index.html">iter</a></div><h1>Trait <span class="trait">Parallel<wbr>Iterator</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/rayon/iter/mod.rs.html#356-2421">Source</a> </span></div><pre class="rust item-decl"><code>pub trait ParallelIterator: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> {
|
||
type <a href="#associatedtype.Item" class="associatedtype">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>;
|
||
|
||
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 59 methods</span></summary> // Required method
|
||
fn <a href="#tymethod.drive_unindexed" class="fn">drive_unindexed</a><C>(self, consumer: C) -> C::<a class="associatedtype" href="plumbing/trait.Consumer.html#associatedtype.Result" title="type rayon::iter::plumbing::Consumer::Result">Result</a>
|
||
<span class="where">where C: <a class="trait" href="plumbing/trait.UnindexedConsumer.html" title="trait rayon::iter::plumbing::UnindexedConsumer">UnindexedConsumer</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>></span>;
|
||
|
||
// Provided methods
|
||
fn <a href="#method.for_each" class="fn">for_each</a><OP>(self, op: OP)
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.for_each_with" class="fn">for_each_with</a><OP, T>(self, init: T, op: OP)
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.for_each_init" class="fn">for_each_init</a><OP, INIT, T>(self, init: INIT, op: OP)
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
INIT: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.try_for_each" class="fn">try_for_each</a><OP, R>(self, op: OP) -> R
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: Try<Output = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.try_for_each_with" class="fn">try_for_each_with</a><OP, T, R>(self, init: T, op: OP) -> R
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,
|
||
R: Try<Output = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.try_for_each_init" class="fn">try_for_each_init</a><OP, INIT, T, R>(self, init: INIT, op: OP) -> R
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
INIT: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: Try<Output = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.count" class="fn">count</a>(self) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.map" class="fn">map</a><F, R>(self, map_op: F) -> <a class="struct" href="struct.Map.html" title="struct rayon::iter::Map">Map</a><Self, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.map_with" class="fn">map_with</a><F, T, R>(self, init: T, map_op: F) -> <a class="struct" href="struct.MapWith.html" title="struct rayon::iter::MapWith">MapWith</a><Self, T, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.map_init" class="fn">map_init</a><F, INIT, T, R>(
|
||
self,
|
||
init: INIT,
|
||
map_op: F,
|
||
) -> <a class="struct" href="struct.MapInit.html" title="struct rayon::iter::MapInit">MapInit</a><Self, INIT, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
INIT: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.cloned" class="fn">cloned</a><'a, T>(self) -> <a class="struct" href="struct.Cloned.html" title="struct rayon::iter::Cloned">Cloned</a><Self>
|
||
<span class="where">where T: 'a + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
Self: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a>></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.copied" class="fn">copied</a><'a, T>(self) -> <a class="struct" href="struct.Copied.html" title="struct rayon::iter::Copied">Copied</a><Self>
|
||
<span class="where">where T: 'a + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
Self: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a>></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.inspect" class="fn">inspect</a><OP>(self, inspect_op: OP) -> <a class="struct" href="struct.Inspect.html" title="struct rayon::iter::Inspect">Inspect</a><Self, OP>
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.update" class="fn">update</a><F>(self, update_op: F) -> <a class="struct" href="struct.Update.html" title="struct rayon::iter::Update">Update</a><Self, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&mut Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.filter" class="fn">filter</a><P>(self, filter_op: P) -> <a class="struct" href="struct.Filter.html" title="struct rayon::iter::Filter">Filter</a><Self, P>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.filter_map" class="fn">filter_map</a><P, R>(self, filter_op: P) -> <a class="struct" href="struct.FilterMap.html" title="struct rayon::iter::FilterMap">FilterMap</a><Self, P>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.flat_map" class="fn">flat_map</a><F, PI>(self, map_op: F) -> <a class="struct" href="struct.FlatMap.html" title="struct rayon::iter::FlatMap">FlatMap</a><Self, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> PI + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
PI: <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.flat_map_iter" class="fn">flat_map_iter</a><F, SI>(self, map_op: F) -> <a class="struct" href="struct.FlatMapIter.html" title="struct rayon::iter::FlatMapIter">FlatMapIter</a><Self, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> SI + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
SI: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.flatten" class="fn">flatten</a>(self) -> <a class="struct" href="struct.Flatten.html" title="struct rayon::iter::Flatten">Flatten</a><Self>
|
||
<span class="where">where Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.flatten_iter" class="fn">flatten_iter</a>(self) -> <a class="struct" href="struct.FlattenIter.html" title="struct rayon::iter::FlattenIter">FlattenIter</a><Self>
|
||
<span class="where">where Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.reduce" class="fn">reduce</a><OP, ID>(self, identity: ID, op: OP) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.reduce_with" class="fn">reduce_with</a><OP>(self, op: OP) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.try_reduce" class="fn">try_reduce</a><T, OP, ID>(self, identity: ID, op: OP) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, T) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: Try<Output = T></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.try_reduce_with" class="fn">try_reduce_with</a><T, OP>(self, op: OP) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, T) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: Try<Output = T></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.fold" class="fn">fold</a><T, ID, F>(self, identity: ID, fold_op: F) -> <a class="struct" href="struct.Fold.html" title="struct rayon::iter::Fold">Fold</a><Self, ID, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.fold_with" class="fn">fold_with</a><F, T>(self, init: T, fold_op: F) -> <a class="struct" href="struct.FoldWith.html" title="struct rayon::iter::FoldWith">FoldWith</a><Self, T, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.try_fold" class="fn">try_fold</a><T, R, ID, F>(
|
||
self,
|
||
identity: ID,
|
||
fold_op: F,
|
||
) -> <a class="struct" href="struct.TryFold.html" title="struct rayon::iter::TryFold">TryFold</a><Self, R, ID, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: Try<Output = T> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.try_fold_with" class="fn">try_fold_with</a><F, T, R>(
|
||
self,
|
||
init: T,
|
||
fold_op: F,
|
||
) -> <a class="struct" href="struct.TryFoldWith.html" title="struct rayon::iter::TryFoldWith">TryFoldWith</a><Self, R, F>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: Try<Output = T> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.sum" class="fn">sum</a><S>(self) -> S
|
||
<span class="where">where S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/accum/trait.Sum.html" title="trait core::iter::traits::accum::Sum">Sum</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/accum/trait.Sum.html" title="trait core::iter::traits::accum::Sum">Sum</a><S></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.product" class="fn">product</a><P>(self) -> P
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/accum/trait.Product.html" title="trait core::iter::traits::accum::Product">Product</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/accum/trait.Product.html" title="trait core::iter::traits::accum::Product">Product</a><P></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.min" class="fn">min</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.min_by" class="fn">min_by</a><F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, &Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.min_by_key" class="fn">min_by_key</a><K, F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> K</span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.max" class="fn">max</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.max_by" class="fn">max_by</a><F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, &Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.max_by_key" class="fn">max_by_key</a><K, F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> K</span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.chain" class="fn">chain</a><C>(self, chain: C) -> <a class="struct" href="struct.Chain.html" title="struct rayon::iter::Chain">Chain</a><Self, C::<a class="associatedtype" href="trait.IntoParallelIterator.html#associatedtype.Iter" title="type rayon::iter::IntoParallelIterator::Iter">Iter</a>>
|
||
<span class="where">where C: <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a><Item = Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.find_any" class="fn">find_any</a><P>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.find_first" class="fn">find_first</a><P>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.find_last" class="fn">find_last</a><P>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.find_map_any" class="fn">find_map_any</a><P, R>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.find_map_first" class="fn">find_map_first</a><P, R>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.find_map_last" class="fn">find_map_last</a><P, R>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.any" class="fn">any</a><P>(self, predicate: P) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.all" class="fn">all</a><P>(self, predicate: P) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.while_some" class="fn">while_some</a><T>(self) -> <a class="struct" href="struct.WhileSome.html" title="struct rayon::iter::WhileSome">WhileSome</a><Self>
|
||
<span class="where">where Self: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T>>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.panic_fuse" class="fn">panic_fuse</a>(self) -> <a class="struct" href="struct.PanicFuse.html" title="struct rayon::iter::PanicFuse">PanicFuse</a><Self> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.collect" class="fn">collect</a><C>(self) -> C
|
||
<span class="where">where C: <a class="trait" href="trait.FromParallelIterator.html" title="trait rayon::iter::FromParallelIterator">FromParallelIterator</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.unzip" class="fn">unzip</a><A, B, FromA, FromB>(self) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(FromA, FromB)</a>
|
||
<span class="where">where Self: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B)</a>>,
|
||
FromA: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><A>,
|
||
FromB: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><B>,
|
||
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.partition" class="fn">partition</a><A, B, P>(self, predicate: P) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B)</a>
|
||
<span class="where">where A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.partition_map" class="fn">partition_map</a><A, B, P, L, R>(self, predicate: P) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B)</a>
|
||
<span class="where">where A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><L>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><R>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="enum.Either.html" title="enum rayon::iter::Either">Either</a><L, R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
L: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.intersperse" class="fn">intersperse</a>(self, element: Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="struct" href="struct.Intersperse.html" title="struct rayon::iter::Intersperse">Intersperse</a><Self>
|
||
<span class="where">where Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.take_any" class="fn">take_any</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>) -> <a class="struct" href="struct.TakeAny.html" title="struct rayon::iter::TakeAny">TakeAny</a><Self> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.skip_any" class="fn">skip_any</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>) -> <a class="struct" href="struct.SkipAny.html" title="struct rayon::iter::SkipAny">SkipAny</a><Self> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.take_any_while" class="fn">take_any_while</a><P>(self, predicate: P) -> <a class="struct" href="struct.TakeAnyWhile.html" title="struct rayon::iter::TakeAnyWhile">TakeAnyWhile</a><Self, P>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.skip_any_while" class="fn">skip_any_while</a><P>(self, predicate: P) -> <a class="struct" href="struct.SkipAnyWhile.html" title="struct rayon::iter::SkipAnyWhile">SkipAnyWhile</a><Self, P>
|
||
<span class="where">where P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></span> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.collect_vec_list" class="fn">collect_vec_list</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/collections/linked_list/struct.LinkedList.html" title="struct alloc::collections::linked_list::LinkedList">LinkedList</a><<a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>> { ... }
|
||
<span class="item-spacer"></span> fn <a href="#method.opt_len" class="fn">opt_len</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>> { ... }
|
||
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Parallel version of the standard iterator trait.</p>
|
||
<p>The combinators on this trait are available on <strong>all</strong> parallel
|
||
iterators. Additional methods can be found on the
|
||
<a href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator"><code>IndexedParallelIterator</code></a> trait: those methods are only
|
||
available for parallel iterators where the number of items is
|
||
known in advance (so, e.g., after invoking <code>filter</code>, those methods
|
||
become unavailable).</p>
|
||
<p>For examples of using parallel iterators, see <a href="index.html" title="mod rayon::iter">the docs on the
|
||
<code>iter</code> module</a>.</p>
|
||
</div></details><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.Item" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#362">Source</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a></h4></section></summary><div class="docblock"><p>The type of item that this parallel iterator produces.
|
||
For example, if you use the <a href="#method.for_each"><code>for_each</code></a> method, this is the type of
|
||
item that your closure will be invoked with.</p>
|
||
</div></details></div><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.drive_unindexed" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2400-2402">Source</a><h4 class="code-header">fn <a href="#tymethod.drive_unindexed" class="fn">drive_unindexed</a><C>(self, consumer: C) -> C::<a class="associatedtype" href="plumbing/trait.Consumer.html#associatedtype.Result" title="type rayon::iter::plumbing::Consumer::Result">Result</a><div class="where">where
|
||
C: <a class="trait" href="plumbing/trait.UnindexedConsumer.html" title="trait rayon::iter::plumbing::UnindexedConsumer">UnindexedConsumer</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,</div></h4></section></summary><div class="docblock"><p>Internal method used to define the behavior of this parallel
|
||
iterator. You should not need to call this directly.</p>
|
||
<p>This method causes the iterator <code>self</code> to start producing
|
||
items and to feed them to the consumer <code>consumer</code> one by one.
|
||
It may split the consumer before doing so to create the
|
||
opportunity to produce in parallel.</p>
|
||
<p>See the <a href="https://github.com/rayon-rs/rayon/blob/main/src/iter/plumbing/README.md">README</a> for more details on the internals of parallel
|
||
iterators.</p>
|
||
</div></details></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.for_each" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#373-378">Source</a><h4 class="code-header">fn <a href="#method.for_each" class="fn">for_each</a><OP>(self, op: OP)<div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Executes <code>OP</code> on each item produced by the iterator, in parallel.</p>
|
||
<h5 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
(<span class="number">0</span>..<span class="number">100</span>).into_par_iter().for_each(|x| <span class="macro">println!</span>(<span class="string">"{:?}"</span>, x));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each_with" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#403-409">Source</a><h4 class="code-header">fn <a href="#method.for_each_with" class="fn">for_each_with</a><OP, T>(self, init: T, op: OP)<div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h4></section></summary><div class="docblock"><p>Executes <code>OP</code> on the given <code>init</code> value with each item produced by
|
||
the iterator, in parallel.</p>
|
||
<p>The <code>init</code> value will be cloned only as needed to be paired with
|
||
the group of items in each rayon job. It does not require the type
|
||
to be <code>Sync</code>.</p>
|
||
<h5 id="examples-1"><a class="doc-anchor" href="#examples-1">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::sync::mpsc::channel;
|
||
<span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>(sender, receiver) = channel();
|
||
|
||
(<span class="number">0</span>..<span class="number">5</span>).into_par_iter().for_each_with(sender, |s, x| s.send(x).unwrap());
|
||
|
||
<span class="kw">let </span><span class="kw-2">mut </span>res: Vec<<span class="kw">_</span>> = receiver.iter().collect();
|
||
|
||
res.sort();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>res[..], <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>])</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each_init" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#437-443">Source</a><h4 class="code-header">fn <a href="#method.for_each_init" class="fn">for_each_init</a><OP, INIT, T>(self, init: INIT, op: OP)<div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
INIT: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Executes <code>OP</code> on a value returned by <code>init</code> with each item produced by
|
||
the iterator, in parallel.</p>
|
||
<p>The <code>init</code> function will be called only as needed for a value to be
|
||
paired with the group of items in each rayon job. There is no
|
||
constraint on that returned type at all!</p>
|
||
<h5 id="examples-2"><a class="doc-anchor" href="#examples-2">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rand::Rng;
|
||
<span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span><span class="kw-2">mut </span>v = <span class="macro">vec!</span>[<span class="number">0u8</span>; <span class="number">1_000_000</span>];
|
||
|
||
v.par_chunks_mut(<span class="number">1000</span>)
|
||
.for_each_init(
|
||
|| rand::rng(),
|
||
|rng, chunk| rng.fill(chunk),
|
||
);
|
||
|
||
<span class="comment">// There's a remote chance that this will fail...
|
||
</span><span class="kw">for </span>i <span class="kw">in </span><span class="number">0u8</span>..=<span class="number">255 </span>{
|
||
<span class="macro">assert!</span>(v.contains(<span class="kw-2">&</span>i));
|
||
}</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#465-475">Source</a><h4 class="code-header">fn <a href="#method.try_for_each" class="fn">try_for_each</a><OP, R>(self, op: OP) -> R<div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: Try<Output = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Executes a fallible <code>OP</code> on each item produced by the iterator, in parallel.</p>
|
||
<p>If the <code>OP</code> returns <code>Result::Err</code> or <code>Option::None</code>, we will attempt to
|
||
stop processing the rest of the items in the iterator as soon as
|
||
possible, and we will return that terminating value. Otherwise, we will
|
||
return an empty <code>Result::Ok(())</code> or <code>Option::Some(())</code>. If there are
|
||
multiple errors in parallel, it is not specified which will be returned.</p>
|
||
<h5 id="examples-3"><a class="doc-anchor" href="#examples-3">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>std::io::{<span class="self">self</span>, Write};
|
||
|
||
<span class="comment">// This will stop iteration early if there's any write error, like
|
||
// having piped output get closed on the other end.
|
||
</span>(<span class="number">0</span>..<span class="number">100</span>).into_par_iter()
|
||
.try_for_each(|x| <span class="macro">writeln!</span>(io::stdout(), <span class="string">"{:?}"</span>, x))
|
||
.expect(<span class="string">"expected no write errors"</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each_with" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#504-515">Source</a><h4 class="code-header">fn <a href="#method.try_for_each_with" class="fn">try_for_each_with</a><OP, T, R>(self, init: T, op: OP) -> R<div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,
|
||
R: Try<Output = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Executes a fallible <code>OP</code> on the given <code>init</code> value with each item
|
||
produced by the iterator, in parallel.</p>
|
||
<p>This combines the <code>init</code> semantics of <a href="#method.for_each_with"><code>for_each_with()</code></a> and the
|
||
failure semantics of <a href="#method.try_for_each"><code>try_for_each()</code></a>.</p>
|
||
<h5 id="examples-4"><a class="doc-anchor" href="#examples-4">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::sync::mpsc::channel;
|
||
<span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>(sender, receiver) = channel();
|
||
|
||
(<span class="number">0</span>..<span class="number">5</span>).into_par_iter()
|
||
.try_for_each_with(sender, |s, x| s.send(x))
|
||
.expect(<span class="string">"expected no send errors"</span>);
|
||
|
||
<span class="kw">let </span><span class="kw-2">mut </span>res: Vec<<span class="kw">_</span>> = receiver.iter().collect();
|
||
|
||
res.sort();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>res[..], <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>])</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.try_for_each_init" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#546-557">Source</a><h4 class="code-header">fn <a href="#method.try_for_each_init" class="fn">try_for_each_init</a><OP, INIT, T, R>(self, init: INIT, op: OP) -> R<div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
INIT: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: Try<Output = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.unit.html">()</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Executes a fallible <code>OP</code> on a value returned by <code>init</code> with each item
|
||
produced by the iterator, in parallel.</p>
|
||
<p>This combines the <code>init</code> semantics of <a href="#method.for_each_init"><code>for_each_init()</code></a> and the
|
||
failure semantics of <a href="#method.try_for_each"><code>try_for_each()</code></a>.</p>
|
||
<h5 id="examples-5"><a class="doc-anchor" href="#examples-5">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rand::{Rng, TryRngCore};
|
||
<span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span><span class="kw-2">mut </span>v = <span class="macro">vec!</span>[<span class="number">0u8</span>; <span class="number">1_000_000</span>];
|
||
|
||
v.par_chunks_mut(<span class="number">1000</span>)
|
||
.try_for_each_init(
|
||
|| rand::rng(),
|
||
|rng, chunk| rng.try_fill_bytes(chunk),
|
||
)
|
||
.expect(<span class="string">"expected no rand errors"</span>);
|
||
|
||
<span class="comment">// There's a remote chance that this will fail...
|
||
</span><span class="kw">for </span>i <span class="kw">in </span><span class="number">0u8</span>..=<span class="number">255 </span>{
|
||
<span class="macro">assert!</span>(v.contains(<span class="kw-2">&</span>i));
|
||
}</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.count" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#570-576">Source</a><h4 class="code-header">fn <a href="#method.count" class="fn">count</a>(self) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Counts the number of items in this parallel iterator.</p>
|
||
<h5 id="examples-6"><a class="doc-anchor" href="#examples-6">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>count = (<span class="number">0</span>..<span class="number">100</span>).into_par_iter().count();
|
||
|
||
<span class="macro">assert_eq!</span>(count, <span class="number">100</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#592-598">Source</a><h4 class="code-header">fn <a href="#method.map" class="fn">map</a><F, R>(self, map_op: F) -> <a class="struct" href="struct.Map.html" title="struct rayon::iter::Map">Map</a><Self, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies <code>map_op</code> to each item of this iterator, producing a new
|
||
iterator with the results.</p>
|
||
<h5 id="examples-7"><a class="doc-anchor" href="#examples-7">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span><span class="kw-2">mut </span>par_iter = (<span class="number">0</span>..<span class="number">5</span>).into_par_iter().map(|x| x * <span class="number">2</span>);
|
||
|
||
<span class="kw">let </span>doubles: Vec<<span class="kw">_</span>> = par_iter.collect();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>doubles[..], <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">2</span>, <span class="number">4</span>, <span class="number">6</span>, <span class="number">8</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.map_with" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#629-636">Source</a><h4 class="code-header">fn <a href="#method.map_with" class="fn">map_with</a><F, T, R>(self, init: T, map_op: F) -> <a class="struct" href="struct.MapWith.html" title="struct rayon::iter::MapWith">MapWith</a><Self, T, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies <code>map_op</code> to the given <code>init</code> value with each item of this
|
||
iterator, producing a new iterator with the results.</p>
|
||
<p>The <code>init</code> value will be cloned only as needed to be paired with
|
||
the group of items in each rayon job. It does not require the type
|
||
to be <code>Sync</code>.</p>
|
||
<h5 id="examples-8"><a class="doc-anchor" href="#examples-8">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::sync::mpsc::channel;
|
||
<span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>(sender, receiver) = channel();
|
||
|
||
<span class="kw">let </span>a: Vec<<span class="kw">_</span>> = (<span class="number">0</span>..<span class="number">5</span>)
|
||
.into_par_iter() <span class="comment">// iterating over i32
|
||
</span>.map_with(sender, |s, x| {
|
||
s.send(x).unwrap(); <span class="comment">// sending i32 values through the channel
|
||
</span>x <span class="comment">// returning i32
|
||
</span>})
|
||
.collect(); <span class="comment">// collecting the returned values into a vector
|
||
|
||
</span><span class="kw">let </span><span class="kw-2">mut </span>b: Vec<<span class="kw">_</span>> = receiver.iter() <span class="comment">// iterating over the values in the channel
|
||
</span>.collect(); <span class="comment">// and collecting them
|
||
</span>b.sort();
|
||
|
||
<span class="macro">assert_eq!</span>(a, b);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.map_init" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#666-673">Source</a><h4 class="code-header">fn <a href="#method.map_init" class="fn">map_init</a><F, INIT, T, R>(
|
||
self,
|
||
init: INIT,
|
||
map_op: F,
|
||
) -> <a class="struct" href="struct.MapInit.html" title="struct rayon::iter::MapInit">MapInit</a><Self, INIT, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
INIT: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies <code>map_op</code> to a value returned by <code>init</code> with each item of this
|
||
iterator, producing a new iterator with the results.</p>
|
||
<p>The <code>init</code> function will be called only as needed for a value to be
|
||
paired with the group of items in each rayon job. There is no
|
||
constraint on that returned type at all!</p>
|
||
<h5 id="examples-9"><a class="doc-anchor" href="#examples-9">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rand::Rng;
|
||
<span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a: Vec<<span class="kw">_</span>> = (<span class="number">1i32</span>..<span class="number">1_000_000</span>)
|
||
.into_par_iter()
|
||
.map_init(
|
||
|| rand::rng(), <span class="comment">// get the thread-local RNG
|
||
</span>|rng, x| <span class="kw">if </span>rng.random() { <span class="comment">// randomly negate items
|
||
</span>-x
|
||
} <span class="kw">else </span>{
|
||
x
|
||
},
|
||
).collect();
|
||
|
||
<span class="comment">// There's a remote chance that this will fail...
|
||
</span><span class="macro">assert!</span>(a.iter().any(|<span class="kw-2">&</span>x| x < <span class="number">0</span>));
|
||
<span class="macro">assert!</span>(a.iter().any(|<span class="kw-2">&</span>x| x > <span class="number">0</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.cloned" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#696-702">Source</a><h4 class="code-header">fn <a href="#method.cloned" class="fn">cloned</a><'a, T>(self) -> <a class="struct" href="struct.Cloned.html" title="struct rayon::iter::Cloned">Cloned</a><Self><div class="where">where
|
||
T: 'a + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
Self: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a>>,</div></h4></section></summary><div class="docblock"><p>Creates an iterator which clones all of its elements. This may be
|
||
useful when you have an iterator over <code>&T</code>, but you need <code>T</code>, and
|
||
that type implements <code>Clone</code>. See also <a href="#method.copied"><code>copied()</code></a>.</p>
|
||
<h5 id="examples-10"><a class="doc-anchor" href="#examples-10">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
|
||
|
||
<span class="kw">let </span>v_cloned: Vec<<span class="kw">_</span>> = a.par_iter().cloned().collect();
|
||
|
||
<span class="comment">// cloned is the same as .map(|&x| x), for integers
|
||
</span><span class="kw">let </span>v_map: Vec<<span class="kw">_</span>> = a.par_iter().map(|<span class="kw-2">&</span>x| x).collect();
|
||
|
||
<span class="macro">assert_eq!</span>(v_cloned, <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);
|
||
<span class="macro">assert_eq!</span>(v_map, <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.copied" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#725-731">Source</a><h4 class="code-header">fn <a href="#method.copied" class="fn">copied</a><'a, T>(self) -> <a class="struct" href="struct.Copied.html" title="struct rayon::iter::Copied">Copied</a><Self><div class="where">where
|
||
T: 'a + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
Self: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a>>,</div></h4></section></summary><div class="docblock"><p>Creates an iterator which copies all of its elements. This may be
|
||
useful when you have an iterator over <code>&T</code>, but you need <code>T</code>, and
|
||
that type implements <code>Copy</code>. See also <a href="#method.cloned"><code>cloned()</code></a>.</p>
|
||
<h5 id="examples-11"><a class="doc-anchor" href="#examples-11">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
|
||
|
||
<span class="kw">let </span>v_copied: Vec<<span class="kw">_</span>> = a.par_iter().copied().collect();
|
||
|
||
<span class="comment">// copied is the same as .map(|&x| x), for integers
|
||
</span><span class="kw">let </span>v_map: Vec<<span class="kw">_</span>> = a.par_iter().map(|<span class="kw-2">&</span>x| x).collect();
|
||
|
||
<span class="macro">assert_eq!</span>(v_copied, <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);
|
||
<span class="macro">assert_eq!</span>(v_map, <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#762-767">Source</a><h4 class="code-header">fn <a href="#method.inspect" class="fn">inspect</a><OP>(self, inspect_op: OP) -> <a class="struct" href="struct.Inspect.html" title="struct rayon::iter::Inspect">Inspect</a><Self, OP><div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies <code>inspect_op</code> to a reference to each item of this iterator,
|
||
producing a new iterator passing through the original items. This is
|
||
often useful for debugging to see what’s happening in iterator stages.</p>
|
||
<h5 id="examples-12"><a class="doc-anchor" href="#examples-12">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">4</span>, <span class="number">2</span>, <span class="number">3</span>];
|
||
|
||
<span class="comment">// this iterator sequence is complex.
|
||
</span><span class="kw">let </span>sum = a.par_iter()
|
||
.cloned()
|
||
.filter(|<span class="kw-2">&</span>x| x % <span class="number">2 </span>== <span class="number">0</span>)
|
||
.reduce(|| <span class="number">0</span>, |sum, i| sum + i);
|
||
|
||
<span class="macro">println!</span>(<span class="string">"{}"</span>, sum);
|
||
|
||
<span class="comment">// let's add some inspect() calls to investigate what's happening
|
||
</span><span class="kw">let </span>sum = a.par_iter()
|
||
.cloned()
|
||
.inspect(|x| <span class="macro">println!</span>(<span class="string">"about to filter: {}"</span>, x))
|
||
.filter(|<span class="kw-2">&</span>x| x % <span class="number">2 </span>== <span class="number">0</span>)
|
||
.inspect(|x| <span class="macro">println!</span>(<span class="string">"made it through filter: {}"</span>, x))
|
||
.reduce(|| <span class="number">0</span>, |sum, i| sum + i);
|
||
|
||
<span class="macro">println!</span>(<span class="string">"{}"</span>, sum);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.update" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#782-787">Source</a><h4 class="code-header">fn <a href="#method.update" class="fn">update</a><F>(self, update_op: F) -> <a class="struct" href="struct.Update.html" title="struct rayon::iter::Update">Update</a><Self, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&mut Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Mutates each item of this iterator before yielding it.</p>
|
||
<h5 id="examples-13"><a class="doc-anchor" href="#examples-13">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>par_iter = (<span class="number">0</span>..<span class="number">5</span>).into_par_iter().update(|x| {<span class="kw-2">*</span>x <span class="kw-2">*</span>= <span class="number">2</span>;});
|
||
|
||
<span class="kw">let </span>doubles: Vec<<span class="kw">_</span>> = par_iter.collect();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>doubles[..], <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">2</span>, <span class="number">4</span>, <span class="number">6</span>, <span class="number">8</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.filter" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#803-808">Source</a><h4 class="code-header">fn <a href="#method.filter" class="fn">filter</a><P>(self, filter_op: P) -> <a class="struct" href="struct.Filter.html" title="struct rayon::iter::Filter">Filter</a><Self, P><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies <code>filter_op</code> to each item of this iterator, producing a new
|
||
iterator with only the items that gave <code>true</code> results.</p>
|
||
<h5 id="examples-14"><a class="doc-anchor" href="#examples-14">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span><span class="kw-2">mut </span>par_iter = (<span class="number">0</span>..<span class="number">10</span>).into_par_iter().filter(|x| x % <span class="number">2 </span>== <span class="number">0</span>);
|
||
|
||
<span class="kw">let </span>even_numbers: Vec<<span class="kw">_</span>> = par_iter.collect();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>even_numbers[..], <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">2</span>, <span class="number">4</span>, <span class="number">6</span>, <span class="number">8</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.filter_map" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#828-834">Source</a><h4 class="code-header">fn <a href="#method.filter_map" class="fn">filter_map</a><P, R>(self, filter_op: P) -> <a class="struct" href="struct.FilterMap.html" title="struct rayon::iter::FilterMap">FilterMap</a><Self, P><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies <code>filter_op</code> to each item of this iterator to get an <code>Option</code>,
|
||
producing a new iterator with only the items from <code>Some</code> results.</p>
|
||
<h5 id="examples-15"><a class="doc-anchor" href="#examples-15">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span><span class="kw-2">mut </span>par_iter = (<span class="number">0</span>..<span class="number">10</span>).into_par_iter()
|
||
.filter_map(|x| {
|
||
<span class="kw">if </span>x % <span class="number">2 </span>== <span class="number">0 </span>{ <span class="prelude-val">Some</span>(x * <span class="number">3</span>) }
|
||
<span class="kw">else </span>{ <span class="prelude-val">None </span>}
|
||
});
|
||
|
||
<span class="kw">let </span>even_numbers: Vec<<span class="kw">_</span>> = par_iter.collect();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>even_numbers[..], <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">6</span>, <span class="number">12</span>, <span class="number">18</span>, <span class="number">24</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#854-860">Source</a><h4 class="code-header">fn <a href="#method.flat_map" class="fn">flat_map</a><F, PI>(self, map_op: F) -> <a class="struct" href="struct.FlatMap.html" title="struct rayon::iter::FlatMap">FlatMap</a><Self, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> PI + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
PI: <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a>,</div></h4></section></summary><div class="docblock"><p>Applies <code>map_op</code> to each item of this iterator to get nested parallel iterators,
|
||
producing a new parallel iterator that flattens these back into one.</p>
|
||
<p>See also <a href="#method.flat_map_iter"><code>flat_map_iter</code></a>.</p>
|
||
<h5 id="examples-16"><a class="doc-anchor" href="#examples-16">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [[<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="number">6</span>], [<span class="number">7</span>, <span class="number">8</span>]];
|
||
|
||
<span class="kw">let </span>par_iter = a.par_iter().cloned().flat_map(|a| a.to_vec());
|
||
|
||
<span class="kw">let </span>vec: Vec<<span class="kw">_</span>> = par_iter.collect();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>vec[..], <span class="kw-2">&</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="number">6</span>, <span class="number">7</span>, <span class="number">8</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.flat_map_iter" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#900-906">Source</a><h4 class="code-header">fn <a href="#method.flat_map_iter" class="fn">flat_map_iter</a><F, SI>(self, map_op: F) -> <a class="struct" href="struct.FlatMapIter.html" title="struct rayon::iter::FlatMapIter">FlatMapIter</a><Self, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> SI + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
SI: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>,</div></h4></section></summary><div class="docblock"><p>Applies <code>map_op</code> to each item of this iterator to get nested serial iterators,
|
||
producing a new parallel iterator that flattens these back into one.</p>
|
||
<h5 id="flat_map_iter-versus-flat_map"><a class="doc-anchor" href="#flat_map_iter-versus-flat_map">§</a><code>flat_map_iter</code> versus <code>flat_map</code></h5>
|
||
<p>These two methods are similar but behave slightly differently. With <a href="#method.flat_map"><code>flat_map</code></a>,
|
||
each of the nested iterators must be a parallel iterator, and they will be further
|
||
split up with nested parallelism. With <code>flat_map_iter</code>, each nested iterator is a
|
||
sequential <code>Iterator</code>, and we only parallelize <em>between</em> them, while the items
|
||
produced by each nested iterator are processed sequentially.</p>
|
||
<p>When choosing between these methods, consider whether nested parallelism suits the
|
||
potential iterators at hand. If there’s little computation involved, or its length
|
||
is much less than the outer parallel iterator, then it may perform better to avoid
|
||
the overhead of parallelism, just flattening sequentially with <code>flat_map_iter</code>.
|
||
If there is a lot of computation, potentially outweighing the outer parallel
|
||
iterator, then the nested parallelism of <code>flat_map</code> may be worthwhile.</p>
|
||
<h5 id="examples-17"><a class="doc-anchor" href="#examples-17">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>std::cell::RefCell;
|
||
|
||
<span class="kw">let </span>a = [[<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="number">6</span>], [<span class="number">7</span>, <span class="number">8</span>]];
|
||
|
||
<span class="kw">let </span>par_iter = a.par_iter().flat_map_iter(|a| {
|
||
<span class="comment">// The serial iterator doesn't have to be thread-safe, just its items.
|
||
</span><span class="kw">let </span>cell_iter = RefCell::new(a.iter().cloned());
|
||
std::iter::from_fn(<span class="kw">move </span>|| cell_iter.borrow_mut().next())
|
||
});
|
||
|
||
<span class="kw">let </span>vec: Vec<<span class="kw">_</span>> = par_iter.collect();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>vec[..], <span class="kw-2">&</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="number">6</span>, <span class="number">7</span>, <span class="number">8</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.flatten" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#922-927">Source</a><h4 class="code-header">fn <a href="#method.flatten" class="fn">flatten</a>(self) -> <a class="struct" href="struct.Flatten.html" title="struct rayon::iter::Flatten">Flatten</a><Self><div class="where">where
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a>,</div></h4></section></summary><div class="docblock"><p>An adaptor that flattens parallel-iterable <code>Item</code>s into one large iterator.</p>
|
||
<p>See also <a href="#method.flatten_iter"><code>flatten_iter</code></a>.</p>
|
||
<h5 id="examples-18"><a class="doc-anchor" href="#examples-18">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>x: Vec<Vec<<span class="kw">_</span>>> = <span class="macro">vec!</span>[<span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>], <span class="macro">vec!</span>[<span class="number">3</span>, <span class="number">4</span>]];
|
||
<span class="kw">let </span>y: Vec<<span class="kw">_</span>> = x.into_par_iter().flatten().collect();
|
||
|
||
<span class="macro">assert_eq!</span>(y, <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>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.flatten_iter" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#945-950">Source</a><h4 class="code-header">fn <a href="#method.flatten_iter" class="fn">flatten_iter</a>(self) -> <a class="struct" href="struct.FlattenIter.html" title="struct rayon::iter::FlattenIter">FlattenIter</a><Self><div class="where">where
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>,</div></h4></section></summary><div class="docblock"><p>An adaptor that flattens serial-iterable <code>Item</code>s into one large iterator.</p>
|
||
<p>See also <a href="#method.flatten"><code>flatten</code></a> and the analogous comparison of
|
||
<a href="#flat_map_iter-versus-flat_map"><code>flat_map_iter</code> versus <code>flat_map</code></a>.</p>
|
||
<h5 id="examples-19"><a class="doc-anchor" href="#examples-19">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>x: Vec<Vec<<span class="kw">_</span>>> = <span class="macro">vec!</span>[<span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>], <span class="macro">vec!</span>[<span class="number">3</span>, <span class="number">4</span>]];
|
||
<span class="kw">let </span>iters: Vec<<span class="kw">_</span>> = x.into_iter().map(Vec::into_iter).collect();
|
||
<span class="kw">let </span>y: Vec<<span class="kw">_</span>> = iters.into_par_iter().flatten_iter().collect();
|
||
|
||
<span class="macro">assert_eq!</span>(y, <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>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.reduce" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#982-988">Source</a><h4 class="code-header">fn <a href="#method.reduce" class="fn">reduce</a><OP, ID>(self, identity: ID, op: OP) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a><div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Reduces the items in the iterator into one item using <code>op</code>.
|
||
The argument <code>identity</code> should be a closure that can produce
|
||
“identity” value which may be inserted into the sequence as
|
||
needed to create opportunities for parallel execution. So, for
|
||
example, if you are doing a summation, then <code>identity()</code> ought
|
||
to produce something that represents the zero for your type
|
||
(but consider just calling <code>sum()</code> in that case).</p>
|
||
<h5 id="examples-20"><a class="doc-anchor" href="#examples-20">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Iterate over a sequence of pairs `(x0, y0), ..., (xN, yN)`
|
||
// and use reduce to compute one pair `(x0 + ... + xN, y0 + ... + yN)`
|
||
// where the first/second elements are summed separately.
|
||
</span><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">let </span>sums = [(<span class="number">0</span>, <span class="number">1</span>), (<span class="number">5</span>, <span class="number">6</span>), (<span class="number">16</span>, <span class="number">2</span>), (<span class="number">8</span>, <span class="number">9</span>)]
|
||
.par_iter() <span class="comment">// iterating over &(i32, i32)
|
||
</span>.cloned() <span class="comment">// iterating over (i32, i32)
|
||
</span>.reduce(|| (<span class="number">0</span>, <span class="number">0</span>), <span class="comment">// the "identity" is 0 in both columns
|
||
</span>|a, b| (a.<span class="number">0 </span>+ b.<span class="number">0</span>, a.<span class="number">1 </span>+ b.<span class="number">1</span>));
|
||
<span class="macro">assert_eq!</span>(sums, (<span class="number">0 </span>+ <span class="number">5 </span>+ <span class="number">16 </span>+ <span class="number">8</span>, <span class="number">1 </span>+ <span class="number">6 </span>+ <span class="number">2 </span>+ <span class="number">9</span>));</code></pre></div>
|
||
<p><strong>Note:</strong> unlike a sequential <code>fold</code> operation, the order in
|
||
which <code>op</code> will be applied to reduce the result is not fully
|
||
specified. So <code>op</code> should be <a href="https://en.wikipedia.org/wiki/Associative_property">associative</a> or else the results
|
||
will be non-deterministic. And of course <code>identity()</code> should
|
||
produce a true identity.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.reduce_with" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1016-1037">Source</a><h4 class="code-header">fn <a href="#method.reduce_with" class="fn">reduce_with</a><OP>(self, op: OP) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Reduces the items in the iterator into one item using <code>op</code>.
|
||
If the iterator is empty, <code>None</code> is returned; otherwise,
|
||
<code>Some</code> is returned.</p>
|
||
<p>This version of <code>reduce</code> is simple but somewhat less
|
||
efficient. If possible, it is better to call <code>reduce()</code>, which
|
||
requires an identity element.</p>
|
||
<h5 id="examples-21"><a class="doc-anchor" href="#examples-21">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">let </span>sums = [(<span class="number">0</span>, <span class="number">1</span>), (<span class="number">5</span>, <span class="number">6</span>), (<span class="number">16</span>, <span class="number">2</span>), (<span class="number">8</span>, <span class="number">9</span>)]
|
||
.par_iter() <span class="comment">// iterating over &(i32, i32)
|
||
</span>.cloned() <span class="comment">// iterating over (i32, i32)
|
||
</span>.reduce_with(|a, b| (a.<span class="number">0 </span>+ b.<span class="number">0</span>, a.<span class="number">1 </span>+ b.<span class="number">1</span>))
|
||
.unwrap();
|
||
<span class="macro">assert_eq!</span>(sums, (<span class="number">0 </span>+ <span class="number">5 </span>+ <span class="number">16 </span>+ <span class="number">8</span>, <span class="number">1 </span>+ <span class="number">6 </span>+ <span class="number">2 </span>+ <span class="number">9</span>));</code></pre></div>
|
||
<p><strong>Note:</strong> unlike a sequential <code>fold</code> operation, the order in
|
||
which <code>op</code> will be applied to reduce the result is not fully
|
||
specified. So <code>op</code> should be <a href="https://en.wikipedia.org/wiki/Associative_property">associative</a> or else the results
|
||
will be non-deterministic.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.try_reduce" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1070-1077">Source</a><h4 class="code-header">fn <a href="#method.try_reduce" class="fn">try_reduce</a><T, OP, ID>(self, identity: ID, op: OP) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a><div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, T) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: Try<Output = T>,</div></h4></section></summary><div class="docblock"><p>Reduces the items in the iterator into one item using a fallible <code>op</code>.
|
||
The <code>identity</code> argument is used the same way as in <a href="#method.reduce"><code>reduce()</code></a>.</p>
|
||
<p>If a <code>Result::Err</code> or <code>Option::None</code> item is found, or if <code>op</code> reduces
|
||
to one, we will attempt to stop processing the rest of the items in the
|
||
iterator as soon as possible, and we will return that terminating value.
|
||
Otherwise, we will return the final reduced <code>Result::Ok(T)</code> or
|
||
<code>Option::Some(T)</code>. If there are multiple errors in parallel, it is not
|
||
specified which will be returned.</p>
|
||
<h5 id="examples-22"><a class="doc-anchor" href="#examples-22">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="comment">// Compute the sum of squares, being careful about overflow.
|
||
</span><span class="kw">fn </span>sum_squares<I: IntoParallelIterator<Item = i32>>(iter: I) -> <span class="prelude-ty">Option</span><i32> {
|
||
iter.into_par_iter()
|
||
.map(|i| i.checked_mul(i)) <span class="comment">// square each item,
|
||
</span>.try_reduce(|| <span class="number">0</span>, i32::checked_add) <span class="comment">// and add them up!
|
||
</span>}
|
||
<span class="macro">assert_eq!</span>(sum_squares(<span class="number">0</span>..<span class="number">5</span>), <span class="prelude-val">Some</span>(<span class="number">0 </span>+ <span class="number">1 </span>+ <span class="number">4 </span>+ <span class="number">9 </span>+ <span class="number">16</span>));
|
||
|
||
<span class="comment">// The sum might overflow
|
||
</span><span class="macro">assert_eq!</span>(sum_squares(<span class="number">0</span>..<span class="number">10_000</span>), <span class="prelude-val">None</span>);
|
||
|
||
<span class="comment">// Or the squares might overflow before it even reaches `try_reduce`
|
||
</span><span class="macro">assert_eq!</span>(sum_squares(<span class="number">1_000_000</span>..<span class="number">1_000_001</span>), <span class="prelude-val">None</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.try_reduce_with" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1114-1120">Source</a><h4 class="code-header">fn <a href="#method.try_reduce_with" class="fn">try_reduce_with</a><T, OP>(self, op: OP) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
OP: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, T) -> Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: Try<Output = T>,</div></h4></section></summary><div class="docblock"><p>Reduces the items in the iterator into one item using a fallible <code>op</code>.</p>
|
||
<p>Like <a href="#method.reduce_with"><code>reduce_with()</code></a>, if the iterator is empty, <code>None</code> is returned;
|
||
otherwise, <code>Some</code> is returned. Beyond that, it behaves like
|
||
<a href="#method.try_reduce"><code>try_reduce()</code></a> for handling <code>Err</code>/<code>None</code>.</p>
|
||
<p>For instance, with <code>Option</code> items, the return value may be:</p>
|
||
<ul>
|
||
<li><code>None</code>, the iterator was empty</li>
|
||
<li><code>Some(None)</code>, we stopped after encountering <code>None</code>.</li>
|
||
<li><code>Some(Some(x))</code>, the entire iterator reduced to <code>x</code>.</li>
|
||
</ul>
|
||
<p>With <code>Result</code> items, the nesting is more obvious:</p>
|
||
<ul>
|
||
<li><code>None</code>, the iterator was empty</li>
|
||
<li><code>Some(Err(e))</code>, we stopped after encountering an error <code>e</code>.</li>
|
||
<li><code>Some(Ok(x))</code>, the entire iterator reduced to <code>x</code>.</li>
|
||
</ul>
|
||
<h5 id="examples-23"><a class="doc-anchor" href="#examples-23">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>files = [<span class="string">"/dev/null"</span>, <span class="string">"/does/not/exist"</span>];
|
||
|
||
<span class="comment">// Find the biggest file
|
||
</span>files.into_par_iter()
|
||
.map(|path| std::fs::metadata(path).map(|m| (path, m.len())))
|
||
.try_reduce_with(|a, b| {
|
||
<span class="prelude-val">Ok</span>(<span class="kw">if </span>a.<span class="number">1 </span>>= b.<span class="number">1 </span>{ a } <span class="kw">else </span>{ b })
|
||
})
|
||
.expect(<span class="string">"Some value, since the iterator is not empty"</span>)
|
||
.expect_err(<span class="string">"not found"</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.fold" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1255-1262">Source</a><h4 class="code-header">fn <a href="#method.fold" class="fn">fold</a><T, ID, F>(self, identity: ID, fold_op: F) -> <a class="struct" href="struct.Fold.html" title="struct rayon::iter::Fold">Fold</a><Self, ID, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Parallel fold is similar to sequential fold except that the
|
||
sequence of items may be subdivided before it is
|
||
folded. Consider a list of numbers like <code>22 3 77 89 46</code>. If
|
||
you used sequential fold to add them (<code>fold(0, |a,b| a+b)</code>,
|
||
you would wind up first adding 0 + 22, then 22 + 3, then 25 +
|
||
77, and so forth. The <strong>parallel fold</strong> works similarly except
|
||
that it first breaks up your list into sublists, and hence
|
||
instead of yielding up a single sum at the end, it yields up
|
||
multiple sums. The number of results is nondeterministic, as
|
||
is the point where the breaks occur.</p>
|
||
<p>So if we did the same parallel fold (<code>fold(0, |a,b| a+b)</code>) on
|
||
our example list, we might wind up with a sequence of two numbers,
|
||
like so:</p>
|
||
<div class="example-wrap"><pre class="language-notrust"><code>22 3 77 89 46
|
||
| |
|
||
102 135</code></pre></div>
|
||
<p>Or perhaps these three numbers:</p>
|
||
<div class="example-wrap"><pre class="language-notrust"><code>22 3 77 89 46
|
||
| | |
|
||
102 89 46</code></pre></div>
|
||
<p>In general, Rayon will attempt to find good breaking points
|
||
that keep all of your cores busy.</p>
|
||
<h6 id="fold-versus-reduce"><a class="doc-anchor" href="#fold-versus-reduce">§</a>Fold versus reduce</h6>
|
||
<p>The <code>fold()</code> and <code>reduce()</code> methods each take an identity element
|
||
and a combining function, but they operate rather differently.</p>
|
||
<p><code>reduce()</code> requires that the identity function has the same
|
||
type as the things you are iterating over, and it fully
|
||
reduces the list of items into a single item. So, for example,
|
||
imagine we are iterating over a list of bytes <code>bytes: [128_u8, 64_u8, 64_u8]</code>. If we used <code>bytes.reduce(|| 0_u8, |a: u8, b: u8| a + b)</code>, we would get an overflow. This is because <code>0</code>,
|
||
<code>a</code>, and <code>b</code> here are all bytes, just like the numbers in the
|
||
list (I wrote the types explicitly above, but those are the
|
||
only types you can use). To avoid the overflow, we would need
|
||
to do something like <code>bytes.map(|b| b as u32).reduce(|| 0, |a, b| a + b)</code>, in which case our result would be <code>256</code>.</p>
|
||
<p>In contrast, with <code>fold()</code>, the identity function does not
|
||
have to have the same type as the things you are iterating
|
||
over, and you potentially get back many results. So, if we
|
||
continue with the <code>bytes</code> example from the previous paragraph,
|
||
we could do <code>bytes.fold(|| 0_u32, |a, b| a + (b as u32))</code> to
|
||
convert our bytes into <code>u32</code>. And of course we might not get
|
||
back a single sum.</p>
|
||
<p>There is a more subtle distinction as well, though it’s
|
||
actually implied by the above points. When you use <code>reduce()</code>,
|
||
your reduction function is sometimes called with values that
|
||
were never part of your original parallel iterator (for
|
||
example, both the left and right might be a partial sum). With
|
||
<code>fold()</code>, in contrast, the left value in the fold function is
|
||
always the accumulator, and the right value is always from
|
||
your original sequence.</p>
|
||
<h6 id="fold-vs-mapreduce"><a class="doc-anchor" href="#fold-vs-mapreduce">§</a>Fold vs Map/Reduce</h6>
|
||
<p>Fold makes sense if you have some operation where it is
|
||
cheaper to create groups of elements at a time. For example,
|
||
imagine collecting characters into a string. If you were going
|
||
to use map/reduce, you might try this:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>s =
|
||
[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'e'</span>]
|
||
.par_iter()
|
||
.map(|c: <span class="kw-2">&</span>char| <span class="macro">format!</span>(<span class="string">"{}"</span>, c))
|
||
.reduce(|| String::new(),
|
||
|<span class="kw-2">mut </span>a: String, b: String| { a.push_str(<span class="kw-2">&</span>b); a });
|
||
|
||
<span class="macro">assert_eq!</span>(s, <span class="string">"abcde"</span>);</code></pre></div>
|
||
<p>Because reduce produces the same type of element as its input,
|
||
you have to first map each character into a string, and then
|
||
you can reduce them. This means we create one string per
|
||
element in our iterator – not so great. Using <code>fold</code>, we can
|
||
do this instead:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>s =
|
||
[<span class="string">'a'</span>, <span class="string">'b'</span>, <span class="string">'c'</span>, <span class="string">'d'</span>, <span class="string">'e'</span>]
|
||
.par_iter()
|
||
.fold(|| String::new(),
|
||
|<span class="kw-2">mut </span>s: String, c: <span class="kw-2">&</span>char| { s.push(<span class="kw-2">*</span>c); s })
|
||
.reduce(|| String::new(),
|
||
|<span class="kw-2">mut </span>a: String, b: String| { a.push_str(<span class="kw-2">&</span>b); a });
|
||
|
||
<span class="macro">assert_eq!</span>(s, <span class="string">"abcde"</span>);</code></pre></div>
|
||
<p>Now <code>fold</code> will process groups of our characters at a time,
|
||
and we only make one string per group. We should wind up with
|
||
some small-ish number of strings roughly proportional to the
|
||
number of CPUs you have (it will ultimately depend on how busy
|
||
your processors are). Note that we still need to do a reduce
|
||
afterwards to combine those groups of strings into a single
|
||
string.</p>
|
||
<p>You could use a similar trick to save partial results (e.g., a
|
||
cache) or something similar.</p>
|
||
<h6 id="combining-fold-with-other-operations"><a class="doc-anchor" href="#combining-fold-with-other-operations">§</a>Combining fold with other operations</h6>
|
||
<p>You can combine <code>fold</code> with <code>reduce</code> if you want to produce a
|
||
single value. This is then roughly equivalent to a map/reduce
|
||
combination in effect:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>bytes = <span class="number">0</span>..<span class="number">22_u8</span>;
|
||
<span class="kw">let </span>sum = bytes.into_par_iter()
|
||
.fold(|| <span class="number">0_u32</span>, |a: u32, b: u8| a + (b <span class="kw">as </span>u32))
|
||
.sum::<u32>();
|
||
|
||
<span class="macro">assert_eq!</span>(sum, (<span class="number">0</span>..<span class="number">22</span>).sum()); <span class="comment">// compare to sequential</span></code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.fold_with" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1283-1289">Source</a><h4 class="code-header">fn <a href="#method.fold_with" class="fn">fold_with</a><F, T>(self, init: T, fold_op: F) -> <a class="struct" href="struct.FoldWith.html" title="struct rayon::iter::FoldWith">FoldWith</a><Self, T, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h4></section></summary><div class="docblock"><p>Applies <code>fold_op</code> to the given <code>init</code> value with each item of this
|
||
iterator, finally producing the value for further use.</p>
|
||
<p>This works essentially like <code>fold(|| init.clone(), fold_op)</code>, except
|
||
it doesn’t require the <code>init</code> type to be <code>Sync</code>, nor any other form
|
||
of added synchronization.</p>
|
||
<h5 id="examples-24"><a class="doc-anchor" href="#examples-24">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>bytes = <span class="number">0</span>..<span class="number">22_u8</span>;
|
||
<span class="kw">let </span>sum = bytes.into_par_iter()
|
||
.fold_with(<span class="number">0_u32</span>, |a: u32, b: u8| a + (b <span class="kw">as </span>u32))
|
||
.sum::<u32>();
|
||
|
||
<span class="macro">assert_eq!</span>(sum, (<span class="number">0</span>..<span class="number">22</span>).sum()); <span class="comment">// compare to sequential</span></code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.try_fold" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1316-1323">Source</a><h4 class="code-header">fn <a href="#method.try_fold" class="fn">try_fold</a><T, R, ID, F>(
|
||
self,
|
||
identity: ID,
|
||
fold_op: F,
|
||
) -> <a class="struct" href="struct.TryFold.html" title="struct rayon::iter::TryFold">TryFold</a><Self, R, ID, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: Try<Output = T> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Performs a fallible parallel fold.</p>
|
||
<p>This is a variation of <a href="#method.fold"><code>fold()</code></a> for operations which can fail with
|
||
<code>Option::None</code> or <code>Result::Err</code>. The first such failure stops
|
||
processing the local set of items, without affecting other folds in the
|
||
iterator’s subdivisions.</p>
|
||
<p>Often, <code>try_fold()</code> will be followed by <a href="#method.try_reduce"><code>try_reduce()</code></a>
|
||
for a final reduction and global short-circuiting effect.</p>
|
||
<h5 id="examples-25"><a class="doc-anchor" href="#examples-25">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>bytes = <span class="number">0</span>..<span class="number">22_u8</span>;
|
||
<span class="kw">let </span>sum = bytes.into_par_iter()
|
||
.try_fold(|| <span class="number">0_u32</span>, |a: u32, b: u8| a.checked_add(b <span class="kw">as </span>u32))
|
||
.try_reduce(|| <span class="number">0</span>, u32::checked_add);
|
||
|
||
<span class="macro">assert_eq!</span>(sum, <span class="prelude-val">Some</span>((<span class="number">0</span>..<span class="number">22</span>).sum())); <span class="comment">// compare to sequential</span></code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.try_fold_with" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1343-1350">Source</a><h4 class="code-header">fn <a href="#method.try_fold_with" class="fn">try_fold_with</a><F, T, R>(self, init: T, fold_op: F) -> <a class="struct" href="struct.TryFoldWith.html" title="struct rayon::iter::TryFoldWith">TryFoldWith</a><Self, R, F><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(T, Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: Try<Output = T> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Performs a fallible parallel fold with a cloneable <code>init</code> value.</p>
|
||
<p>This combines the <code>init</code> semantics of <a href="#method.fold_with"><code>fold_with()</code></a> and the failure
|
||
semantics of <a href="#method.try_fold"><code>try_fold()</code></a>.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>bytes = <span class="number">0</span>..<span class="number">22_u8</span>;
|
||
<span class="kw">let </span>sum = bytes.into_par_iter()
|
||
.try_fold_with(<span class="number">0_u32</span>, |a: u32, b: u8| a.checked_add(b <span class="kw">as </span>u32))
|
||
.try_reduce(|| <span class="number">0</span>, u32::checked_add);
|
||
|
||
<span class="macro">assert_eq!</span>(sum, <span class="prelude-val">Some</span>((<span class="number">0</span>..<span class="number">22</span>).sum())); <span class="comment">// compare to sequential</span></code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.sum" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1376-1381">Source</a><h4 class="code-header">fn <a href="#method.sum" class="fn">sum</a><S>(self) -> S<div class="where">where
|
||
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/accum/trait.Sum.html" title="trait core::iter::traits::accum::Sum">Sum</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/accum/trait.Sum.html" title="trait core::iter::traits::accum::Sum">Sum</a><S>,</div></h4></section></summary><div class="docblock"><p>Sums up the items in the iterator.</p>
|
||
<p>Note that the order in items will be reduced is not specified,
|
||
so if the <code>+</code> operator is not truly <a href="https://en.wikipedia.org/wiki/Associative_property">associative</a> (as is the
|
||
case for floating point numbers), then the results are not
|
||
fully deterministic.</p>
|
||
<p>Basically equivalent to <code>self.reduce(|| 0, |a, b| a + b)</code>,
|
||
except that the type of <code>0</code> and the <code>+</code> operation may vary
|
||
depending on the type of value being produced.</p>
|
||
<h5 id="examples-26"><a class="doc-anchor" href="#examples-26">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">5</span>, <span class="number">7</span>];
|
||
|
||
<span class="kw">let </span>sum: i32 = a.par_iter().sum();
|
||
|
||
<span class="macro">assert_eq!</span>(sum, <span class="number">13</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.product" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1409-1414">Source</a><h4 class="code-header">fn <a href="#method.product" class="fn">product</a><P>(self) -> P<div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/accum/trait.Product.html" title="trait core::iter::traits::accum::Product">Product</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/accum/trait.Product.html" title="trait core::iter::traits::accum::Product">Product</a><P>,</div></h4></section></summary><div class="docblock"><p>Multiplies all the items in the iterator.</p>
|
||
<p>Note that the order in items will be reduced is not specified,
|
||
so if the <code>*</code> operator is not truly <a href="https://en.wikipedia.org/wiki/Associative_property">associative</a> (as is the
|
||
case for floating point numbers), then the results are not
|
||
fully deterministic.</p>
|
||
<p>Basically equivalent to <code>self.reduce(|| 1, |a, b| a * b)</code>,
|
||
except that the type of <code>1</code> and the <code>*</code> operation may vary
|
||
depending on the type of value being produced.</p>
|
||
<h5 id="examples-27"><a class="doc-anchor" href="#examples-27">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">fn </span>factorial(n: u32) -> u32 {
|
||
(<span class="number">1</span>..n+<span class="number">1</span>).into_par_iter().product()
|
||
}
|
||
|
||
<span class="macro">assert_eq!</span>(factorial(<span class="number">0</span>), <span class="number">1</span>);
|
||
<span class="macro">assert_eq!</span>(factorial(<span class="number">1</span>), <span class="number">1</span>);
|
||
<span class="macro">assert_eq!</span>(factorial(<span class="number">5</span>), <span class="number">120</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.min" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1439-1444">Source</a><h4 class="code-header">fn <a href="#method.min" class="fn">min</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Computes the minimum of all the items in the iterator. If the
|
||
iterator is empty, <code>None</code> is returned; otherwise, <code>Some(min)</code>
|
||
is returned.</p>
|
||
<p>Note that the order in which the items will be reduced is not
|
||
specified, so if the <code>Ord</code> impl is not truly associative, then
|
||
the results are not deterministic.</p>
|
||
<p>Basically equivalent to <code>self.reduce_with(|a, b| Ord::min(a, b))</code>.</p>
|
||
<h5 id="examples-28"><a class="doc-anchor" href="#examples-28">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">45</span>, <span class="number">74</span>, <span class="number">32</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().min(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">32</span>));
|
||
|
||
<span class="kw">let </span>b: [i32; <span class="number">0</span>] = [];
|
||
|
||
<span class="macro">assert_eq!</span>(b.par_iter().min(), <span class="prelude-val">None</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1463-1475">Source</a><h4 class="code-header">fn <a href="#method.min_by" class="fn">min_by</a><F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, &Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>,</div></h4></section></summary><div class="docblock"><p>Computes the minimum of all the items in the iterator with respect to
|
||
the given comparison function. If the iterator is empty, <code>None</code> is
|
||
returned; otherwise, <code>Some(min)</code> is returned.</p>
|
||
<p>Note that the order in which the items will be reduced is not
|
||
specified, so if the comparison function is not associative, then
|
||
the results are not deterministic.</p>
|
||
<h5 id="examples-29"><a class="doc-anchor" href="#examples-29">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [-<span class="number">3_i32</span>, <span class="number">77</span>, <span class="number">53</span>, <span class="number">240</span>, -<span class="number">1</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().min_by(|x, y| x.cmp(y)), <span class="prelude-val">Some</span>(<span class="kw-2">&</span>-<span class="number">3</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.min_by_key" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1494-1512">Source</a><h4 class="code-header">fn <a href="#method.min_by_key" class="fn">min_by_key</a><K, F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> K,</div></h4></section></summary><div class="docblock"><p>Computes the item that yields the minimum value for the given
|
||
function. If the iterator is empty, <code>None</code> is returned;
|
||
otherwise, <code>Some(item)</code> is returned.</p>
|
||
<p>Note that the order in which the items will be reduced is not
|
||
specified, so if the <code>Ord</code> impl is not truly associative, then
|
||
the results are not deterministic.</p>
|
||
<h5 id="examples-30"><a class="doc-anchor" href="#examples-30">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [-<span class="number">3_i32</span>, <span class="number">34</span>, <span class="number">2</span>, <span class="number">5</span>, -<span class="number">10</span>, -<span class="number">3</span>, -<span class="number">23</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().min_by_key(|x| x.abs()), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">2</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.max" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1537-1542">Source</a><h4 class="code-header">fn <a href="#method.max" class="fn">max</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a>,</div></h4></section></summary><div class="docblock"><p>Computes the maximum of all the items in the iterator. If the
|
||
iterator is empty, <code>None</code> is returned; otherwise, <code>Some(max)</code>
|
||
is returned.</p>
|
||
<p>Note that the order in which the items will be reduced is not
|
||
specified, so if the <code>Ord</code> impl is not truly associative, then
|
||
the results are not deterministic.</p>
|
||
<p>Basically equivalent to <code>self.reduce_with(|a, b| Ord::max(a, b))</code>.</p>
|
||
<h5 id="examples-31"><a class="doc-anchor" href="#examples-31">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">45</span>, <span class="number">74</span>, <span class="number">32</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().max(), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">74</span>));
|
||
|
||
<span class="kw">let </span>b: [i32; <span class="number">0</span>] = [];
|
||
|
||
<span class="macro">assert_eq!</span>(b.par_iter().max(), <span class="prelude-val">None</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1561-1573">Source</a><h4 class="code-header">fn <a href="#method.max_by" class="fn">max_by</a><F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, &Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/cmp/enum.Ordering.html" title="enum core::cmp::Ordering">Ordering</a>,</div></h4></section></summary><div class="docblock"><p>Computes the maximum of all the items in the iterator with respect to
|
||
the given comparison function. If the iterator is empty, <code>None</code> is
|
||
returned; otherwise, <code>Some(max)</code> is returned.</p>
|
||
<p>Note that the order in which the items will be reduced is not
|
||
specified, so if the comparison function is not associative, then
|
||
the results are not deterministic.</p>
|
||
<h5 id="examples-32"><a class="doc-anchor" href="#examples-32">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [-<span class="number">3_i32</span>, <span class="number">77</span>, <span class="number">53</span>, <span class="number">240</span>, -<span class="number">1</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().max_by(|x, y| x.abs().cmp(<span class="kw-2">&</span>y.abs())), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">240</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.max_by_key" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1592-1610">Source</a><h4 class="code-header">fn <a href="#method.max_by_key" class="fn">max_by_key</a><K, F>(self, f: F) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> K,</div></h4></section></summary><div class="docblock"><p>Computes the item that yields the maximum value for the given
|
||
function. If the iterator is empty, <code>None</code> is returned;
|
||
otherwise, <code>Some(item)</code> is returned.</p>
|
||
<p>Note that the order in which the items will be reduced is not
|
||
specified, so if the <code>Ord</code> impl is not truly associative, then
|
||
the results are not deterministic.</p>
|
||
<h5 id="examples-33"><a class="doc-anchor" href="#examples-33">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [-<span class="number">3_i32</span>, <span class="number">34</span>, <span class="number">2</span>, <span class="number">5</span>, -<span class="number">10</span>, -<span class="number">3</span>, -<span class="number">23</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().max_by_key(|x| x.abs()), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">34</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.chain" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1628-1633">Source</a><h4 class="code-header">fn <a href="#method.chain" class="fn">chain</a><C>(self, chain: C) -> <a class="struct" href="struct.Chain.html" title="struct rayon::iter::Chain">Chain</a><Self, C::<a class="associatedtype" href="trait.IntoParallelIterator.html#associatedtype.Iter" title="type rayon::iter::IntoParallelIterator::Iter">Iter</a>><div class="where">where
|
||
C: <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a><Item = Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,</div></h4></section></summary><div class="docblock"><p>Takes two iterators and creates a new iterator over both.</p>
|
||
<h5 id="examples-34"><a class="doc-anchor" href="#examples-34">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>];
|
||
<span class="kw">let </span>b = [<span class="number">9</span>, <span class="number">8</span>, <span class="number">7</span>];
|
||
|
||
<span class="kw">let </span>par_iter = a.par_iter().chain(b.par_iter());
|
||
|
||
<span class="kw">let </span>chained: Vec<<span class="kw">_</span>> = par_iter.cloned().collect();
|
||
|
||
<span class="macro">assert_eq!</span>(<span class="kw-2">&</span>chained[..], <span class="kw-2">&</span>[<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">9</span>, <span class="number">8</span>, <span class="number">7</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.find_any" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1658-1663">Source</a><h4 class="code-header">fn <a href="#method.find_any" class="fn">find_any</a><P>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Searches for <strong>some</strong> item in the parallel iterator that
|
||
matches the given predicate and returns it. This operation
|
||
is similar to <a href="https://doc.rust-lang.org/1.93.1/core/iter/traits/iterator/trait.Iterator.html#method.find" title="method core::iter::traits::iterator::Iterator::find"><code>find</code> on sequential iterators</a> but
|
||
the item returned may not be the <strong>first</strong> one in the parallel
|
||
sequence which matches, since we search the entire sequence in parallel.</p>
|
||
<p>Once a match is found, we will attempt to stop processing
|
||
the rest of the items in the iterator as soon as possible
|
||
(just as <code>find</code> stops iterating once a match is found).</p>
|
||
<h5 id="examples-35"><a class="doc-anchor" href="#examples-35">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">3</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().find_any(|&&x| x == <span class="number">3</span>), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">3</span>));
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().find_any(|&&x| x == <span class="number">100</span>), <span class="prelude-val">None</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.find_first" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1691-1696">Source</a><h4 class="code-header">fn <a href="#method.find_first" class="fn">find_first</a><P>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Searches for the sequentially <strong>first</strong> item in the parallel iterator
|
||
that matches the given predicate and returns it.</p>
|
||
<p>Once a match is found, all attempts to the right of the match
|
||
will be stopped, while attempts to the left must continue in case
|
||
an earlier match is found.</p>
|
||
<p>For added performance, you might consider using <code>find_first</code> in conjunction with
|
||
<a href="trait.IndexedParallelIterator.html#method.by_exponential_blocks" title="method rayon::iter::IndexedParallelIterator::by_exponential_blocks"><code>by_exponential_blocks()</code></a>.</p>
|
||
<p>Note that not all parallel iterators have a useful order, much like
|
||
sequential <code>HashMap</code> iteration, so “first” may be nebulous. If you
|
||
just want the first match that discovered anywhere in the iterator,
|
||
<code>find_any</code> is a better choice.</p>
|
||
<h5 id="examples-36"><a class="doc-anchor" href="#examples-36">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">3</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().find_first(|&&x| x == <span class="number">3</span>), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">3</span>));
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().find_first(|&&x| x == <span class="number">100</span>), <span class="prelude-val">None</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.find_last" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1720-1725">Source</a><h4 class="code-header">fn <a href="#method.find_last" class="fn">find_last</a><P>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Searches for the sequentially <strong>last</strong> item in the parallel iterator
|
||
that matches the given predicate and returns it.</p>
|
||
<p>Once a match is found, all attempts to the left of the match
|
||
will be stopped, while attempts to the right must continue in case
|
||
a later match is found.</p>
|
||
<p>Note that not all parallel iterators have a useful order, much like
|
||
sequential <code>HashMap</code> iteration, so “last” may be nebulous. When the
|
||
order doesn’t actually matter to you, <code>find_any</code> is a better choice.</p>
|
||
<h5 id="examples-37"><a class="doc-anchor" href="#examples-37">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">3</span>];
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().find_last(|&&x| x == <span class="number">3</span>), <span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">3</span>));
|
||
|
||
<span class="macro">assert_eq!</span>(a.par_iter().find_last(|&&x| x == <span class="number">100</span>), <span class="prelude-val">None</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.find_map_any" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1750-1759">Source</a><h4 class="code-header">fn <a href="#method.find_map_any" class="fn">find_map_any</a><P, R>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies the given predicate to the items in the parallel iterator
|
||
and returns <strong>any</strong> non-None result of the map operation.</p>
|
||
<p>Once a non-None value is produced from the map operation, we will
|
||
attempt to stop processing the rest of the items in the iterator
|
||
as soon as possible.</p>
|
||
<p>Note that this method only returns <strong>some</strong> item in the parallel
|
||
iterator that is not None from the map predicate. The item returned
|
||
may not be the <strong>first</strong> non-None value produced in the parallel
|
||
sequence, since the entire sequence is mapped over in parallel.</p>
|
||
<h5 id="examples-38"><a class="doc-anchor" href="#examples-38">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>c = [<span class="string">"lol"</span>, <span class="string">"NaN"</span>, <span class="string">"5"</span>, <span class="string">"5"</span>];
|
||
|
||
<span class="kw">let </span>found_number = c.par_iter().find_map_any(|s| s.parse().ok());
|
||
|
||
<span class="macro">assert_eq!</span>(found_number, <span class="prelude-val">Some</span>(<span class="number">5</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.find_map_first" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1784-1793">Source</a><h4 class="code-header">fn <a href="#method.find_map_first" class="fn">find_map_first</a><P, R>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies the given predicate to the items in the parallel iterator and
|
||
returns the sequentially <strong>first</strong> non-None result of the map operation.</p>
|
||
<p>Once a non-None value is produced from the map operation, all attempts
|
||
to the right of the match will be stopped, while attempts to the left
|
||
must continue in case an earlier match is found.</p>
|
||
<p>Note that not all parallel iterators have a useful order, much like
|
||
sequential <code>HashMap</code> iteration, so “first” may be nebulous. If you
|
||
just want the first non-None value discovered anywhere in the iterator,
|
||
<code>find_map_any</code> is a better choice.</p>
|
||
<h5 id="examples-39"><a class="doc-anchor" href="#examples-39">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>c = [<span class="string">"lol"</span>, <span class="string">"NaN"</span>, <span class="string">"2"</span>, <span class="string">"5"</span>];
|
||
|
||
<span class="kw">let </span>first_number = c.par_iter().find_map_first(|s| s.parse().ok());
|
||
|
||
<span class="macro">assert_eq!</span>(first_number, <span class="prelude-val">Some</span>(<span class="number">2</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.find_map_last" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1818-1827">Source</a><h4 class="code-header">fn <a href="#method.find_map_last" class="fn">find_map_last</a><P, R>(self, predicate: P) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Applies the given predicate to the items in the parallel iterator and
|
||
returns the sequentially <strong>last</strong> non-None result of the map operation.</p>
|
||
<p>Once a non-None value is produced from the map operation, all attempts
|
||
to the left of the match will be stopped, while attempts to the right
|
||
must continue in case a later match is found.</p>
|
||
<p>Note that not all parallel iterators have a useful order, much like
|
||
sequential <code>HashMap</code> iteration, so “first” may be nebulous. If you
|
||
just want the first non-None value discovered anywhere in the iterator,
|
||
<code>find_map_any</code> is a better choice.</p>
|
||
<h5 id="examples-40"><a class="doc-anchor" href="#examples-40">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>c = [<span class="string">"lol"</span>, <span class="string">"NaN"</span>, <span class="string">"2"</span>, <span class="string">"5"</span>];
|
||
|
||
<span class="kw">let </span>last_number = c.par_iter().find_map_last(|s| s.parse().ok());
|
||
|
||
<span class="macro">assert_eq!</span>(last_number, <span class="prelude-val">Some</span>(<span class="number">5</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.any" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1856-1861">Source</a><h4 class="code-header">fn <a href="#method.any" class="fn">any</a><P>(self, predicate: P) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Searches for <strong>some</strong> item in the parallel iterator that
|
||
matches the given predicate, and if so returns true. Once
|
||
a match is found, we’ll attempt to stop process the rest
|
||
of the items. Proving that there’s no match, returning false,
|
||
does require visiting every item.</p>
|
||
<h5 id="examples-41"><a class="doc-anchor" href="#examples-41">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">0</span>, <span class="number">12</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">0</span>, <span class="number">23</span>, <span class="number">0</span>];
|
||
|
||
<span class="kw">let </span>is_valid = a.par_iter().any(|<span class="kw-2">&</span>x| x > <span class="number">10</span>);
|
||
|
||
<span class="macro">assert!</span>(is_valid);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.all" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1878-1888">Source</a><h4 class="code-header">fn <a href="#method.all" class="fn">all</a><P>(self, predicate: P) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Tests that every item in the parallel iterator matches the given
|
||
predicate, and if so returns true. If a counter-example is found,
|
||
we’ll attempt to stop processing more items, then return false.</p>
|
||
<h5 id="examples-42"><a class="doc-anchor" href="#examples-42">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [<span class="number">0</span>, <span class="number">12</span>, <span class="number">3</span>, <span class="number">4</span>, <span class="number">0</span>, <span class="number">23</span>, <span class="number">0</span>];
|
||
|
||
<span class="kw">let </span>is_valid = a.par_iter().all(|<span class="kw-2">&</span>x| x > <span class="number">10</span>);
|
||
|
||
<span class="macro">assert!</span>(!is_valid);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.while_some" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1912-1918">Source</a><h4 class="code-header">fn <a href="#method.while_some" class="fn">while_some</a><T>(self) -> <a class="struct" href="struct.WhileSome.html" title="struct rayon::iter::WhileSome">WhileSome</a><Self><div class="where">where
|
||
Self: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T>>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Creates an iterator over the <code>Some</code> items of this iterator, halting
|
||
as soon as any <code>None</code> is found.</p>
|
||
<h5 id="examples-43"><a class="doc-anchor" href="#examples-43">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>std::sync::atomic::{AtomicUsize, Ordering};
|
||
|
||
<span class="kw">let </span>counter = AtomicUsize::new(<span class="number">0</span>);
|
||
<span class="kw">let </span>value = (<span class="number">0_i32</span>..<span class="number">2048</span>)
|
||
.into_par_iter()
|
||
.map(|x| {
|
||
counter.fetch_add(<span class="number">1</span>, Ordering::SeqCst);
|
||
<span class="kw">if </span>x < <span class="number">1024 </span>{ <span class="prelude-val">Some</span>(x) } <span class="kw">else </span>{ <span class="prelude-val">None </span>}
|
||
})
|
||
.while_some()
|
||
.max();
|
||
|
||
<span class="macro">assert!</span>(value < <span class="prelude-val">Some</span>(<span class="number">1024</span>));
|
||
<span class="macro">assert!</span>(counter.load(Ordering::SeqCst) < <span class="number">2048</span>); <span class="comment">// should not have visited every single one</span></code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.panic_fuse" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#1950-1952">Source</a><h4 class="code-header">fn <a href="#method.panic_fuse" class="fn">panic_fuse</a>(self) -> <a class="struct" href="struct.PanicFuse.html" title="struct rayon::iter::PanicFuse">PanicFuse</a><Self></h4></section></summary><div class="docblock"><p>Wraps an iterator with a fuse in case of panics, to halt all threads
|
||
as soon as possible.</p>
|
||
<p>Panics within parallel iterators are always propagated to the caller,
|
||
but they don’t always halt the rest of the iterator right away, due to
|
||
the internal semantics of <a href="../fn.join.html#panics" title="fn rayon::join"><code>join</code></a>. This adaptor makes a greater effort
|
||
to stop processing other items sooner, with the cost of additional
|
||
synchronization overhead, which may also inhibit some optimizations.</p>
|
||
<h5 id="examples-44"><a class="doc-anchor" href="#examples-44">§</a>Examples</h5>
|
||
<p>If this code didn’t use <code>panic_fuse()</code>, it would continue processing
|
||
many more items in other threads (with long sleep delays) before the
|
||
panic is finally propagated.</p>
|
||
|
||
<div class="example-wrap should_panic"><a href="#" class="tooltip" title="This example panics">ⓘ</a><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>std::{thread, time};
|
||
|
||
(<span class="number">0</span>..<span class="number">1_000_000</span>)
|
||
.into_par_iter()
|
||
.panic_fuse()
|
||
.for_each(|i| {
|
||
<span class="comment">// simulate some work
|
||
</span>thread::sleep(time::Duration::from_secs(<span class="number">1</span>));
|
||
<span class="macro">assert!</span>(i > <span class="number">0</span>); <span class="comment">// oops!
|
||
</span>});</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.collect" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2053-2058">Source</a><h4 class="code-header">fn <a href="#method.collect" class="fn">collect</a><C>(self) -> C<div class="where">where
|
||
C: <a class="trait" href="trait.FromParallelIterator.html" title="trait rayon::iter::FromParallelIterator">FromParallelIterator</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,</div></h4></section></summary><div class="docblock"><p>Creates a fresh collection containing all the elements produced
|
||
by this parallel iterator.</p>
|
||
<p>You may prefer <a href="trait.IndexedParallelIterator.html#method.collect_into_vec" title="method rayon::iter::IndexedParallelIterator::collect_into_vec"><code>collect_into_vec()</code></a> implemented on
|
||
<a href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator"><code>IndexedParallelIterator</code></a>, if your underlying iterator also implements
|
||
it. <a href="trait.IndexedParallelIterator.html#method.collect_into_vec" title="method rayon::iter::IndexedParallelIterator::collect_into_vec"><code>collect_into_vec()</code></a> allocates efficiently with precise knowledge
|
||
of how many elements the iterator contains, and even allows you to reuse
|
||
an existing vector’s backing store rather than allocating a fresh vector.</p>
|
||
<p>See also <a href="trait.ParallelIterator.html#method.collect_vec_list"><code>collect_vec_list()</code></a> for collecting into a
|
||
<code>LinkedList<Vec<T>></code>.</p>
|
||
<h5 id="examples-45"><a class="doc-anchor" href="#examples-45">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>sync_vec: Vec<<span class="kw">_</span>> = (<span class="number">0</span>..<span class="number">100</span>).into_iter().collect();
|
||
|
||
<span class="kw">let </span>async_vec: Vec<<span class="kw">_</span>> = (<span class="number">0</span>..<span class="number">100</span>).into_par_iter().collect();
|
||
|
||
<span class="macro">assert_eq!</span>(sync_vec, async_vec);</code></pre></div>
|
||
<p>You can collect a pair of collections like <a href="#method.unzip"><code>unzip</code></a>
|
||
for paired items:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [(<span class="number">0</span>, <span class="number">1</span>), (<span class="number">1</span>, <span class="number">2</span>), (<span class="number">2</span>, <span class="number">3</span>), (<span class="number">3</span>, <span class="number">4</span>)];
|
||
<span class="kw">let </span>(first, second): (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>) = a.into_par_iter().collect();
|
||
|
||
<span class="macro">assert_eq!</span>(first, [<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);
|
||
<span class="macro">assert_eq!</span>(second, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
|
||
<p>Or like <a href="#method.partition_map"><code>partition_map</code></a> for <code>Either</code> items:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>rayon::iter::Either;
|
||
|
||
<span class="kw">let </span>(left, right): (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>) = (<span class="number">0</span>..<span class="number">8</span>).into_par_iter().map(|x| {
|
||
<span class="kw">if </span>x % <span class="number">2 </span>== <span class="number">0 </span>{
|
||
Either::Left(x * <span class="number">4</span>)
|
||
} <span class="kw">else </span>{
|
||
Either::Right(x * <span class="number">3</span>)
|
||
}
|
||
}).collect();
|
||
|
||
<span class="macro">assert_eq!</span>(left, [<span class="number">0</span>, <span class="number">8</span>, <span class="number">16</span>, <span class="number">24</span>]);
|
||
<span class="macro">assert_eq!</span>(right, [<span class="number">3</span>, <span class="number">9</span>, <span class="number">15</span>, <span class="number">21</span>]);</code></pre></div>
|
||
<p>You can even collect an arbitrarily-nested combination of pairs and <code>Either</code>:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>rayon::iter::Either;
|
||
|
||
<span class="kw">let </span>(first, (left, right)): (Vec<<span class="kw">_</span>>, (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>))
|
||
= (<span class="number">0</span>..<span class="number">8</span>).into_par_iter().map(|x| {
|
||
<span class="kw">if </span>x % <span class="number">2 </span>== <span class="number">0 </span>{
|
||
(x, Either::Left(x * <span class="number">4</span>))
|
||
} <span class="kw">else </span>{
|
||
(-x, Either::Right(x * <span class="number">3</span>))
|
||
}
|
||
}).collect();
|
||
|
||
<span class="macro">assert_eq!</span>(first, [<span class="number">0</span>, -<span class="number">1</span>, <span class="number">2</span>, -<span class="number">3</span>, <span class="number">4</span>, -<span class="number">5</span>, <span class="number">6</span>, -<span class="number">7</span>]);
|
||
<span class="macro">assert_eq!</span>(left, [<span class="number">0</span>, <span class="number">8</span>, <span class="number">16</span>, <span class="number">24</span>]);
|
||
<span class="macro">assert_eq!</span>(right, [<span class="number">3</span>, <span class="number">9</span>, <span class="number">15</span>, <span class="number">21</span>]);</code></pre></div>
|
||
<p>All of that can <em>also</em> be combined with short-circuiting collection of
|
||
<code>Result</code> or <code>Option</code> types:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>rayon::iter::Either;
|
||
|
||
<span class="kw">let </span>result: <span class="prelude-ty">Result</span><(Vec<<span class="kw">_</span>>, (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>)), <span class="kw">_</span>>
|
||
= (<span class="number">0</span>..<span class="number">8</span>).into_par_iter().map(|x| {
|
||
<span class="kw">if </span>x > <span class="number">5 </span>{
|
||
<span class="prelude-val">Err</span>(x)
|
||
} <span class="kw">else if </span>x % <span class="number">2 </span>== <span class="number">0 </span>{
|
||
<span class="prelude-val">Ok</span>((x, Either::Left(x * <span class="number">4</span>)))
|
||
} <span class="kw">else </span>{
|
||
<span class="prelude-val">Ok</span>((-x, Either::Right(x * <span class="number">3</span>)))
|
||
}
|
||
}).collect();
|
||
|
||
<span class="kw">let </span>error = result.unwrap_err();
|
||
<span class="macro">assert!</span>(error == <span class="number">6 </span>|| error == <span class="number">7</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.unzip" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2094-2103">Source</a><h4 class="code-header">fn <a href="#method.unzip" class="fn">unzip</a><A, B, FromA, FromB>(self) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(FromA, FromB)</a><div class="where">where
|
||
Self: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B)</a>>,
|
||
FromA: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><A>,
|
||
FromB: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><B>,
|
||
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Unzips the items of a parallel iterator into a pair of arbitrary
|
||
<code>ParallelExtend</code> containers.</p>
|
||
<p>You may prefer to use <code>unzip_into_vecs()</code>, which allocates more
|
||
efficiently with precise knowledge of how many elements the
|
||
iterator contains, and even allows you to reuse existing
|
||
vectors’ backing stores rather than allocating fresh vectors.</p>
|
||
<h5 id="examples-46"><a class="doc-anchor" href="#examples-46">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>a = [(<span class="number">0</span>, <span class="number">1</span>), (<span class="number">1</span>, <span class="number">2</span>), (<span class="number">2</span>, <span class="number">3</span>), (<span class="number">3</span>, <span class="number">4</span>)];
|
||
|
||
<span class="kw">let </span>(left, right): (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>) = a.par_iter().cloned().unzip();
|
||
|
||
<span class="macro">assert_eq!</span>(left, [<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);
|
||
<span class="macro">assert_eq!</span>(right, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);</code></pre></div>
|
||
<p>Nested pairs can be unzipped too.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>(values, (squares, cubes)): (Vec<<span class="kw">_</span>>, (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>)) = (<span class="number">0</span>..<span class="number">4</span>).into_par_iter()
|
||
.map(|i| (i, (i * i, i * i * i)))
|
||
.unzip();
|
||
|
||
<span class="macro">assert_eq!</span>(values, [<span class="number">0</span>, <span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>]);
|
||
<span class="macro">assert_eq!</span>(squares, [<span class="number">0</span>, <span class="number">1</span>, <span class="number">4</span>, <span class="number">9</span>]);
|
||
<span class="macro">assert_eq!</span>(cubes, [<span class="number">0</span>, <span class="number">1</span>, <span class="number">8</span>, <span class="number">27</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.partition" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2124-2131">Source</a><h4 class="code-header">fn <a href="#method.partition" class="fn">partition</a><A, B, P>(self, predicate: P) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B)</a><div class="where">where
|
||
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Partitions the items of a parallel iterator into a pair of arbitrary
|
||
<code>ParallelExtend</code> containers. Items for which the <code>predicate</code> returns
|
||
true go into the first container, and the rest go into the second.</p>
|
||
<p>Note: unlike the standard <code>Iterator::partition</code>, this allows distinct
|
||
collection types for the left and right items. This is more flexible,
|
||
but may require new type annotations when converting sequential code
|
||
that used type inference assuming the two were the same.</p>
|
||
<h5 id="examples-47"><a class="doc-anchor" href="#examples-47">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>(left, right): (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>) = (<span class="number">0</span>..<span class="number">8</span>).into_par_iter().partition(|x| x % <span class="number">2 </span>== <span class="number">0</span>);
|
||
|
||
<span class="macro">assert_eq!</span>(left, [<span class="number">0</span>, <span class="number">2</span>, <span class="number">4</span>, <span class="number">6</span>]);
|
||
<span class="macro">assert_eq!</span>(right, [<span class="number">1</span>, <span class="number">3</span>, <span class="number">5</span>, <span class="number">7</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.partition_map" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2176-2185">Source</a><h4 class="code-header">fn <a href="#method.partition_map" class="fn">partition_map</a><A, B, P, L, R>(self, predicate: P) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B)</a><div class="where">where
|
||
A: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><L>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend">ParallelExtend</a><R>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="enum.Either.html" title="enum rayon::iter::Either">Either</a><L, R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
L: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Partitions and maps the items of a parallel iterator into a pair of
|
||
arbitrary <code>ParallelExtend</code> containers. <code>Either::Left</code> items go into
|
||
the first container, and <code>Either::Right</code> items go into the second.</p>
|
||
<h5 id="examples-48"><a class="doc-anchor" href="#examples-48">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>rayon::iter::Either;
|
||
|
||
<span class="kw">let </span>(left, right): (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>) = (<span class="number">0</span>..<span class="number">8</span>).into_par_iter()
|
||
.partition_map(|x| {
|
||
<span class="kw">if </span>x % <span class="number">2 </span>== <span class="number">0 </span>{
|
||
Either::Left(x * <span class="number">4</span>)
|
||
} <span class="kw">else </span>{
|
||
Either::Right(x * <span class="number">3</span>)
|
||
}
|
||
});
|
||
|
||
<span class="macro">assert_eq!</span>(left, [<span class="number">0</span>, <span class="number">8</span>, <span class="number">16</span>, <span class="number">24</span>]);
|
||
<span class="macro">assert_eq!</span>(right, [<span class="number">3</span>, <span class="number">9</span>, <span class="number">15</span>, <span class="number">21</span>]);</code></pre></div>
|
||
<p>Nested <code>Either</code> enums can be split as well.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>rayon::iter::Either::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>((fizzbuzz, fizz), (buzz, other)): ((Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>), (Vec<<span class="kw">_</span>>, Vec<<span class="kw">_</span>>)) = (<span class="number">1</span>..<span class="number">20</span>)
|
||
.into_par_iter()
|
||
.partition_map(|x| <span class="kw">match </span>(x % <span class="number">3</span>, x % <span class="number">5</span>) {
|
||
(<span class="number">0</span>, <span class="number">0</span>) => Left(Left(x)),
|
||
(<span class="number">0</span>, <span class="kw">_</span>) => Left(Right(x)),
|
||
(<span class="kw">_</span>, <span class="number">0</span>) => Right(Left(x)),
|
||
(<span class="kw">_</span>, <span class="kw">_</span>) => Right(Right(x)),
|
||
});
|
||
|
||
<span class="macro">assert_eq!</span>(fizzbuzz, [<span class="number">15</span>]);
|
||
<span class="macro">assert_eq!</span>(fizz, [<span class="number">3</span>, <span class="number">6</span>, <span class="number">9</span>, <span class="number">12</span>, <span class="number">18</span>]);
|
||
<span class="macro">assert_eq!</span>(buzz, [<span class="number">5</span>, <span class="number">10</span>]);
|
||
<span class="macro">assert_eq!</span>(other, [<span class="number">1</span>, <span class="number">2</span>, <span class="number">4</span>, <span class="number">7</span>, <span class="number">8</span>, <span class="number">11</span>, <span class="number">13</span>, <span class="number">14</span>, <span class="number">16</span>, <span class="number">17</span>, <span class="number">19</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.intersperse" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2199-2204">Source</a><h4 class="code-header">fn <a href="#method.intersperse" class="fn">intersperse</a>(self, element: Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="struct" href="struct.Intersperse.html" title="struct rayon::iter::Intersperse">Intersperse</a><Self><div class="where">where
|
||
Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h4></section></summary><div class="docblock"><p>Intersperses clones of an element between items of this iterator.</p>
|
||
<h5 id="examples-49"><a class="doc-anchor" href="#examples-49">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>x = <span class="macro">vec!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>];
|
||
<span class="kw">let </span>r: Vec<<span class="kw">_</span>> = x.into_par_iter().intersperse(-<span class="number">1</span>).collect();
|
||
|
||
<span class="macro">assert_eq!</span>(r, <span class="macro">vec!</span>[<span class="number">1</span>, -<span class="number">1</span>, <span class="number">2</span>, -<span class="number">1</span>, <span class="number">3</span>]);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.take_any" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2227-2229">Source</a><h4 class="code-header">fn <a href="#method.take_any" class="fn">take_any</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>) -> <a class="struct" href="struct.TakeAny.html" title="struct rayon::iter::TakeAny">TakeAny</a><Self></h4></section></summary><div class="docblock"><p>Creates an iterator that yields <code>n</code> elements from <em>anywhere</em> in the original iterator.</p>
|
||
<p>This is similar to <a href="trait.IndexedParallelIterator.html#method.take" title="method rayon::iter::IndexedParallelIterator::take"><code>IndexedParallelIterator::take</code></a> without being
|
||
constrained to the “first” <code>n</code> of the original iterator order. The
|
||
taken items will still maintain their relative order where that is
|
||
visible in <code>collect</code>, <code>reduce</code>, and similar outputs.</p>
|
||
<h5 id="examples-50"><a class="doc-anchor" href="#examples-50">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>result: Vec<<span class="kw">_</span>> = (<span class="number">0</span>..<span class="number">100</span>)
|
||
.into_par_iter()
|
||
.filter(|<span class="kw-2">&</span>x| x % <span class="number">2 </span>== <span class="number">0</span>)
|
||
.take_any(<span class="number">5</span>)
|
||
.collect();
|
||
|
||
<span class="macro">assert_eq!</span>(result.len(), <span class="number">5</span>);
|
||
<span class="macro">assert!</span>(result.windows(<span class="number">2</span>).all(|w| w[<span class="number">0</span>] < w[<span class="number">1</span>]));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_any" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2252-2254">Source</a><h4 class="code-header">fn <a href="#method.skip_any" class="fn">skip_any</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>) -> <a class="struct" href="struct.SkipAny.html" title="struct rayon::iter::SkipAny">SkipAny</a><Self></h4></section></summary><div class="docblock"><p>Creates an iterator that skips <code>n</code> elements from <em>anywhere</em> in the original iterator.</p>
|
||
<p>This is similar to <a href="trait.IndexedParallelIterator.html#method.skip" title="method rayon::iter::IndexedParallelIterator::skip"><code>IndexedParallelIterator::skip</code></a> without being
|
||
constrained to the “first” <code>n</code> of the original iterator order. The
|
||
remaining items will still maintain their relative order where that is
|
||
visible in <code>collect</code>, <code>reduce</code>, and similar outputs.</p>
|
||
<h5 id="examples-51"><a class="doc-anchor" href="#examples-51">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>result: Vec<<span class="kw">_</span>> = (<span class="number">0</span>..<span class="number">100</span>)
|
||
.into_par_iter()
|
||
.filter(|<span class="kw-2">&</span>x| x % <span class="number">2 </span>== <span class="number">0</span>)
|
||
.skip_any(<span class="number">5</span>)
|
||
.collect();
|
||
|
||
<span class="macro">assert_eq!</span>(result.len(), <span class="number">45</span>);
|
||
<span class="macro">assert!</span>(result.windows(<span class="number">2</span>).all(|w| w[<span class="number">0</span>] < w[<span class="number">1</span>]));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.take_any_while" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2302-2307">Source</a><h4 class="code-header">fn <a href="#method.take_any_while" class="fn">take_any_while</a><P>(self, predicate: P) -> <a class="struct" href="struct.TakeAnyWhile.html" title="struct rayon::iter::TakeAnyWhile">TakeAnyWhile</a><Self, P><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Creates an iterator that takes elements from <em>anywhere</em> in the original iterator
|
||
until the given <code>predicate</code> returns <code>false</code>.</p>
|
||
<p>The <code>predicate</code> may be anything – e.g. it could be checking a fact about the item, a
|
||
global condition unrelated to the item itself, or some combination thereof.</p>
|
||
<p>If parallel calls to the <code>predicate</code> race and give different results, then the
|
||
<code>true</code> results will still take those particular items, while respecting the <code>false</code>
|
||
result from elsewhere to skip any further items.</p>
|
||
<p>This is similar to <a href="https://doc.rust-lang.org/1.93.1/core/iter/traits/iterator/trait.Iterator.html#method.take_while" title="method core::iter::traits::iterator::Iterator::take_while"><code>Iterator::take_while</code></a> without being constrained to the original
|
||
iterator order. The taken items will still maintain their relative order where that is
|
||
visible in <code>collect</code>, <code>reduce</code>, and similar outputs.</p>
|
||
<h5 id="examples-52"><a class="doc-anchor" href="#examples-52">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>result: Vec<<span class="kw">_</span>> = (<span class="number">0</span>..<span class="number">100</span>)
|
||
.into_par_iter()
|
||
.take_any_while(|x| <span class="kw-2">*</span>x < <span class="number">50</span>)
|
||
.collect();
|
||
|
||
<span class="macro">assert!</span>(result.len() <= <span class="number">50</span>);
|
||
<span class="macro">assert!</span>(result.windows(<span class="number">2</span>).all(|w| w[<span class="number">0</span>] < w[<span class="number">1</span>]));</code></pre></div>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
<span class="kw">use </span>std::sync::atomic::AtomicUsize;
|
||
<span class="kw">use </span>std::sync::atomic::Ordering::Relaxed;
|
||
|
||
<span class="comment">// Collect any group of items that sum <= 1000
|
||
</span><span class="kw">let </span>quota = AtomicUsize::new(<span class="number">1000</span>);
|
||
<span class="kw">let </span>result: Vec<<span class="kw">_</span>> = (<span class="number">0_usize</span>..<span class="number">100</span>)
|
||
.into_par_iter()
|
||
.take_any_while(|<span class="kw-2">&</span>x| {
|
||
quota.fetch_update(Relaxed, Relaxed, |q| q.checked_sub(x))
|
||
.is_ok()
|
||
})
|
||
.collect();
|
||
|
||
<span class="kw">let </span>sum = result.iter().sum::<usize>();
|
||
<span class="macro">assert!</span>(<span class="macro">matches!</span>(sum, <span class="number">902</span>..=<span class="number">1000</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.skip_any_while" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2336-2341">Source</a><h4 class="code-header">fn <a href="#method.skip_any_while" class="fn">skip_any_while</a><P>(self, predicate: P) -> <a class="struct" href="struct.SkipAnyWhile.html" title="struct rayon::iter::SkipAnyWhile">SkipAnyWhile</a><Self, P><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h4></section></summary><div class="docblock"><p>Creates an iterator that skips elements from <em>anywhere</em> in the original iterator
|
||
until the given <code>predicate</code> returns <code>false</code>.</p>
|
||
<p>The <code>predicate</code> may be anything – e.g. it could be checking a fact about the item, a
|
||
global condition unrelated to the item itself, or some combination thereof.</p>
|
||
<p>If parallel calls to the <code>predicate</code> race and give different results, then the
|
||
<code>true</code> results will still skip those particular items, while respecting the <code>false</code>
|
||
result from elsewhere to skip any further items.</p>
|
||
<p>This is similar to <a href="https://doc.rust-lang.org/1.93.1/core/iter/traits/iterator/trait.Iterator.html#method.skip_while" title="method core::iter::traits::iterator::Iterator::skip_while"><code>Iterator::skip_while</code></a> without being constrained to the original
|
||
iterator order. The remaining items will still maintain their relative order where that is
|
||
visible in <code>collect</code>, <code>reduce</code>, and similar outputs.</p>
|
||
<h5 id="examples-53"><a class="doc-anchor" href="#examples-53">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>result: Vec<<span class="kw">_</span>> = (<span class="number">0</span>..<span class="number">100</span>)
|
||
.into_par_iter()
|
||
.skip_any_while(|x| <span class="kw-2">*</span>x < <span class="number">50</span>)
|
||
.collect();
|
||
|
||
<span class="macro">assert!</span>(result.len() >= <span class="number">50</span>);
|
||
<span class="macro">assert!</span>(result.windows(<span class="number">2</span>).all(|w| w[<span class="number">0</span>] < w[<span class="number">1</span>]));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.collect_vec_list" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2375-2386">Source</a><h4 class="code-header">fn <a href="#method.collect_vec_list" class="fn">collect_vec_list</a>(self) -> <a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/collections/linked_list/struct.LinkedList.html" title="struct alloc::collections::linked_list::LinkedList">LinkedList</a><<a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><Self::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>></h4></section></summary><div class="docblock"><p>Collects this iterator into a linked list of vectors.</p>
|
||
<p>This is useful when you need to condense a parallel iterator into a collection,
|
||
but have no specific requirements for what that collection should be. If you
|
||
plan to store the collection longer-term, <code>Vec<T></code> is, as always, likely the
|
||
best default choice, despite the overhead that comes from concatenating each
|
||
vector. Or, if this is an <code>IndexedParallelIterator</code>, you should also prefer to
|
||
just collect to a <code>Vec<T></code>.</p>
|
||
<p>Internally, most <a href="trait.FromParallelIterator.html" title="trait rayon::iter::FromParallelIterator"><code>FromParallelIterator</code></a>/<a href="trait.ParallelExtend.html" title="trait rayon::iter::ParallelExtend"><code>ParallelExtend</code></a> implementations
|
||
use this strategy; each job collecting their chunk of the iterator to a <code>Vec<T></code>
|
||
and those chunks getting merged into a <code>LinkedList</code>, before then extending the
|
||
collection with each vector. This is a very efficient way to collect an
|
||
unindexed parallel iterator, without much intermediate data movement.</p>
|
||
<h5 id="examples-54"><a class="doc-anchor" href="#examples-54">§</a>Examples</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rayon::prelude::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let </span>result: LinkedList<Vec<<span class="kw">_</span>>> = (<span class="number">0</span>..=<span class="number">100</span>)
|
||
.into_par_iter()
|
||
.filter(|x| x % <span class="number">2 </span>== <span class="number">0</span>)
|
||
.flat_map(|x| <span class="number">0</span>..x)
|
||
.collect_vec_list();
|
||
|
||
<span class="comment">// `par_iter.collect_vec_list().into_iter().flatten()` turns
|
||
// a parallel iterator into a serial one
|
||
</span><span class="kw">let </span>total_len = result.into_iter().flatten().count();
|
||
<span class="macro">assert_eq!</span>(total_len, <span class="number">2550</span>);</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.opt_len" class="method"><a class="src rightside" href="../../src/rayon/iter/mod.rs.html#2418-2420">Source</a><h4 class="code-header">fn <a href="#method.opt_len" class="fn">opt_len</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>></h4></section></summary><div class="docblock"><p>Internal method used to define the behavior of this parallel
|
||
iterator. You should not need to call this directly.</p>
|
||
<p>Returns the number of items produced by this iterator, if known
|
||
statically. This can be used by consumers to trigger special fast
|
||
paths. Therefore, if <code>Some(_)</code> is returned, this iterator must only
|
||
use the (indexed) <code>Consumer</code> methods when driving a consumer, such
|
||
as <code>split_at()</code>. Calling <code>UnindexedConsumer::split_off_left()</code> or
|
||
other <code>UnindexedConsumer</code> methods – or returning an inaccurate
|
||
value – may result in panics.</p>
|
||
<p>This method is currently used to optimize <code>collect</code> for want
|
||
of true Rust specialization; it may be removed when
|
||
specialization is stable.</p>
|
||
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.93.1/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3Cchar%3E" class="impl"><a class="src rightside" href="../../src/rayon/range.rs.html#320-333">Source</a><a href="#impl-ParallelIterator-for-Iter%3Cchar%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::range::<a class="struct" href="../range/struct.Iter.html" title="struct rayon::range::Iter">Iter</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a>></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-1" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/range.rs.html#321">Source</a><a href="#associatedtype.Item-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3Cchar%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/range_inclusive.rs.html#264-277">Source</a><a href="#impl-ParallelIterator-for-Iter%3Cchar%3E-1" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::range_inclusive::<a class="struct" href="../range_inclusive/struct.Iter.html" title="struct rayon::range_inclusive::Iter">Iter</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a>></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-2" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/range_inclusive.rs.html#265">Source</a><a href="#associatedtype.Item-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Drain%3C'a%3E" class="impl"><a class="src rightside" href="../../src/rayon/string.rs.html#30-41">Source</a><a href="#impl-ParallelIterator-for-Drain%3C'a%3E" class="anchor">§</a><h3 class="code-header">impl<'a> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::string::<a class="struct" href="../string/struct.Drain.html" title="struct rayon::string::Drain">Drain</a><'a></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-3" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/string.rs.html#31">Source</a><a href="#associatedtype.Item-3" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IterMut%3C'a,+K,+V%3E" class="impl"><a class="src rightside" href="../../src/rayon/collections/btree_map.rs.html#63-66">Source</a><a href="#impl-ParallelIterator-for-IterMut%3C'a,+K,+V%3E" class="anchor">§</a><h3 class="code-header">impl<'a, K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'a, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'a> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::btree_map::<a class="struct" href="../collections/btree_map/struct.IterMut.html" title="struct rayon::collections::btree_map::IterMut">IterMut</a><'a, K, V></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-4" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/btree_map.rs.html#63-66">Source</a><a href="#associatedtype.Item-4" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a K</a>, <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a mut V</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+K,+V%3E" class="impl"><a class="src rightside" href="../../src/rayon/collections/btree_map.rs.html#47-50">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+K,+V%3E" class="anchor">§</a><h3 class="code-header">impl<'a, K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'a, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'a> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::btree_map::<a class="struct" href="../collections/btree_map/struct.Iter.html" title="struct rayon::collections::btree_map::Iter">Iter</a><'a, K, V></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-5" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/btree_map.rs.html#47-50">Source</a><a href="#associatedtype.Item-5" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a K</a>, <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a V</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IterMut%3C'a,+K,+V%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/collections/hash_map.rs.html#64-67">Source</a><a href="#impl-ParallelIterator-for-IterMut%3C'a,+K,+V%3E-1" class="anchor">§</a><h3 class="code-header">impl<'a, K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::hash_map::<a class="struct" href="../collections/hash_map/struct.IterMut.html" title="struct rayon::collections::hash_map::IterMut">IterMut</a><'a, K, V></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-6" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/hash_map.rs.html#64-67">Source</a><a href="#associatedtype.Item-6" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a K</a>, <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a mut V</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+K,+V%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/collections/hash_map.rs.html#48-51">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+K,+V%3E-1" class="anchor">§</a><h3 class="code-header">impl<'a, K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::hash_map::<a class="struct" href="../collections/hash_map/struct.Iter.html" title="struct rayon::collections::hash_map::Iter">Iter</a><'a, K, V></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-7" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/hash_map.rs.html#48-51">Source</a><a href="#associatedtype.Item-7" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a K</a>, <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a V</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Cloned%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/cloned.rs.html#24-42">Source</a><a href="#impl-ParallelIterator-for-Cloned%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<'a, T, I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Cloned.html" title="struct rayon::iter::Cloned">Cloned</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a>>,
|
||
T: 'a + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-8" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/cloned.rs.html#29">Source</a><a href="#associatedtype.Item-8" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Copied%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/copied.rs.html#24-42">Source</a><a href="#impl-ParallelIterator-for-Copied%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<'a, T, I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Copied.html" title="struct rayon::iter::Copied">Copied</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a>>,
|
||
T: 'a + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-9" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/copied.rs.html#29">Source</a><a href="#associatedtype.Item-9" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IterMut%3C'a,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/collections/linked_list.rs.html#63-66">Source</a><a href="#impl-ParallelIterator-for-IterMut%3C'a,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::linked_list::<a class="struct" href="../collections/linked_list/struct.IterMut.html" title="struct rayon::collections::linked_list::IterMut">IterMut</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-10" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/linked_list.rs.html#63-66">Source</a><a href="#associatedtype.Item-10" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a mut T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IterMut%3C'a,+T%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/collections/vec_deque.rs.html#86-89">Source</a><a href="#impl-ParallelIterator-for-IterMut%3C'a,+T%3E-1" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::vec_deque::<a class="struct" href="../collections/vec_deque/struct.IterMut.html" title="struct rayon::collections::vec_deque::IterMut">IterMut</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-11" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/vec_deque.rs.html#86-89">Source</a><a href="#associatedtype.Item-11" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a mut T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IterMut%3C'a,+T%3E-2" class="impl"><a class="src rightside" href="../../src/rayon/option.rs.html#134-137">Source</a><a href="#impl-ParallelIterator-for-IterMut%3C'a,+T%3E-2" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::option::<a class="struct" href="../option/struct.IterMut.html" title="struct rayon::option::IterMut">IterMut</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-12" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/option.rs.html#134-137">Source</a><a href="#associatedtype.Item-12" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a mut T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IterMut%3C'a,+T%3E-3" class="impl"><a class="src rightside" href="../../src/rayon/result.rs.html#83-86">Source</a><a href="#impl-ParallelIterator-for-IterMut%3C'a,+T%3E-3" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::result::<a class="struct" href="../result/struct.IterMut.html" title="struct rayon::result::IterMut">IterMut</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-13" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/result.rs.html#83-86">Source</a><a href="#associatedtype.Item-13" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a mut T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/collections/binary_heap.rs.html#60-63">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'a> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::binary_heap::<a class="struct" href="../collections/binary_heap/struct.Iter.html" title="struct rayon::collections::binary_heap::Iter">Iter</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-14" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/binary_heap.rs.html#60-63">Source</a><a href="#associatedtype.Item-14" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+T%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/collections/btree_set.rs.html#47-50">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+T%3E-1" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'a> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::btree_set::<a class="struct" href="../collections/btree_set/struct.Iter.html" title="struct rayon::collections::btree_set::Iter">Iter</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-15" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/btree_set.rs.html#47-50">Source</a><a href="#associatedtype.Item-15" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+T%3E-2" class="impl"><a class="src rightside" href="../../src/rayon/collections/hash_set.rs.html#48-51">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+T%3E-2" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::hash_set::<a class="struct" href="../collections/hash_set/struct.Iter.html" title="struct rayon::collections::hash_set::Iter">Iter</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-16" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/hash_set.rs.html#48-51">Source</a><a href="#associatedtype.Item-16" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+T%3E-3" class="impl"><a class="src rightside" href="../../src/rayon/collections/linked_list.rs.html#47-50">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+T%3E-3" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::linked_list::<a class="struct" href="../collections/linked_list/struct.Iter.html" title="struct rayon::collections::linked_list::Iter">Iter</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-17" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/linked_list.rs.html#47-50">Source</a><a href="#associatedtype.Item-17" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+T%3E-4" class="impl"><a class="src rightside" href="../../src/rayon/collections/vec_deque.rs.html#63-66">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+T%3E-4" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::vec_deque::<a class="struct" href="../collections/vec_deque/struct.Iter.html" title="struct rayon::collections::vec_deque::Iter">Iter</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-18" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/vec_deque.rs.html#63-66">Source</a><a href="#associatedtype.Item-18" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+T%3E-5" class="impl"><a class="src rightside" href="../../src/rayon/option.rs.html#106-109">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+T%3E-5" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::option::<a class="struct" href="../option/struct.Iter.html" title="struct rayon::option::Iter">Iter</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-19" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/option.rs.html#106-109">Source</a><a href="#associatedtype.Item-19" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'a,+T%3E-6" class="impl"><a class="src rightside" href="../../src/rayon/result.rs.html#61-64">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'a,+T%3E-6" class="anchor">§</a><h3 class="code-header">impl<'a, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::result::<a class="struct" href="../result/struct.Iter.html" title="struct rayon::result::Iter">Iter</a><'a, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-20" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/result.rs.html#61-64">Source</a><a href="#associatedtype.Item-20" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'a T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Bytes%3C'ch%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#575-584">Source</a><a href="#impl-ParallelIterator-for-Bytes%3C'ch%3E" class="anchor">§</a><h3 class="code-header">impl<'ch> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.Bytes.html" title="struct rayon::str::Bytes">Bytes</a><'ch></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-21" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#576">Source</a><a href="#associatedtype.Item-21" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u8.html">u8</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-CharIndices%3C'ch%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#520-533">Source</a><a href="#impl-ParallelIterator-for-CharIndices%3C'ch%3E" class="anchor">§</a><h3 class="code-header">impl<'ch> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.CharIndices.html" title="struct rayon::str::CharIndices">CharIndices</a><'ch></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-22" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#521">Source</a><a href="#associatedtype.Item-22" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>, <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Chars%3C'ch%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#475-484">Source</a><a href="#impl-ParallelIterator-for-Chars%3C'ch%3E" class="anchor">§</a><h3 class="code-header">impl<'ch> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.Chars.html" title="struct rayon::str::Chars">Chars</a><'ch></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-23" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#476">Source</a><a href="#associatedtype.Item-23" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.char.html">char</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-EncodeUtf16%3C'ch%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#619-628">Source</a><a href="#impl-ParallelIterator-for-EncodeUtf16%3C'ch%3E" class="anchor">§</a><h3 class="code-header">impl<'ch> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.EncodeUtf16.html" title="struct rayon::str::EncodeUtf16">EncodeUtf16</a><'ch></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-24" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#620">Source</a><a href="#associatedtype.Item-24" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u16.html">u16</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Lines%3C'ch%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#827-839">Source</a><a href="#impl-ParallelIterator-for-Lines%3C'ch%3E" class="anchor">§</a><h3 class="code-header">impl<'ch> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.Lines.html" title="struct rayon::str::Lines">Lines</a><'ch></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-25" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#828">Source</a><a href="#associatedtype.Item-25" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'ch <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SplitAsciiWhitespace%3C'ch%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#877-889">Source</a><a href="#impl-ParallelIterator-for-SplitAsciiWhitespace%3C'ch%3E" class="anchor">§</a><h3 class="code-header">impl<'ch> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.SplitAsciiWhitespace.html" title="struct rayon::str::SplitAsciiWhitespace">SplitAsciiWhitespace</a><'ch></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-26" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#878">Source</a><a href="#associatedtype.Item-26" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'ch <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SplitWhitespace%3C'ch%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#852-864">Source</a><a href="#impl-ParallelIterator-for-SplitWhitespace%3C'ch%3E" class="anchor">§</a><h3 class="code-header">impl<'ch> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.SplitWhitespace.html" title="struct rayon::str::SplitWhitespace">SplitWhitespace</a><'ch></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-27" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#853">Source</a><a href="#associatedtype.Item-27" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'ch <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MatchIndices%3C'ch,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#962-976">Source</a><a href="#impl-ParallelIterator-for-MatchIndices%3C'ch,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'ch, P: Pattern> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.MatchIndices.html" title="struct rayon::str::MatchIndices">MatchIndices</a><'ch, P></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-28" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#963">Source</a><a href="#associatedtype.Item-28" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>, &'ch <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Matches%3C'ch,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#905-918">Source</a><a href="#impl-ParallelIterator-for-Matches%3C'ch,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'ch, P: Pattern> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.Matches.html" title="struct rayon::str::Matches">Matches</a><'ch, P></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-29" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#906">Source</a><a href="#associatedtype.Item-29" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'ch <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Split%3C'ch,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#666-676">Source</a><a href="#impl-ParallelIterator-for-Split%3C'ch,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'ch, P: Pattern> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::str::<a class="struct" href="../str/struct.Split.html" title="struct rayon::str::Split">Split</a><'ch, P></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-30" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#667">Source</a><a href="#associatedtype.Item-30" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'ch <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SplitInclusive%3C'ch,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#738-748">Source</a><a href="#impl-ParallelIterator-for-SplitInclusive%3C'ch,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'ch, P: Pattern> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::str::<a class="struct" href="../str/struct.SplitInclusive.html" title="struct rayon::str::SplitInclusive">SplitInclusive</a><'ch, P></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-31" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#739">Source</a><a href="#associatedtype.Item-31" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'ch <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SplitTerminator%3C'ch,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/str.rs.html#779-789">Source</a><a href="#impl-ParallelIterator-for-SplitTerminator%3C'ch,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'ch, P: Pattern> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../str/struct.SplitTerminator.html" title="struct rayon::str::SplitTerminator">SplitTerminator</a><'ch, P></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-32" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/str.rs.html#780">Source</a><a href="#associatedtype.Item-32" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'ch <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.str.html">str</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-ChunkBy%3C'data,+T,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/chunk_by.rs.html#170-191">Source</a><a href="#impl-ParallelIterator-for-ChunkBy%3C'data,+T,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.ChunkBy.html" title="struct rayon::slice::ChunkBy">ChunkBy</a><'data, T, P><div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&T</a>, <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&T</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-33" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/chunk_by.rs.html#175">Source</a><a href="#associatedtype.Item-33" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-ChunkByMut%3C'data,+T,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/chunk_by.rs.html#218-239">Source</a><a href="#impl-ParallelIterator-for-ChunkByMut%3C'data,+T,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.ChunkByMut.html" title="struct rayon::slice::ChunkByMut">ChunkByMut</a><'data, T, P><div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&T</a>, <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&T</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-34" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/chunk_by.rs.html#223">Source</a><a href="#associatedtype.Item-34" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data mut <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Split%3C'data,+T,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#1029-1043">Source</a><a href="#impl-ParallelIterator-for-Split%3C'data,+T,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::slice::<a class="struct" href="../slice/struct.Split.html" title="struct rayon::slice::Split">Split</a><'data, T, P><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&T</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-35" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#1034">Source</a><a href="#associatedtype.Item-35" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SplitInclusive%3C'data,+T,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#1069-1083">Source</a><a href="#impl-ParallelIterator-for-SplitInclusive%3C'data,+T,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::slice::<a class="struct" href="../slice/struct.SplitInclusive.html" title="struct rayon::slice::SplitInclusive">SplitInclusive</a><'data, T, P><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&T</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-36" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#1074">Source</a><a href="#associatedtype.Item-36" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SplitInclusiveMut%3C'data,+T,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#1179-1193">Source</a><a href="#impl-ParallelIterator-for-SplitInclusiveMut%3C'data,+T,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.SplitInclusiveMut.html" title="struct rayon::slice::SplitInclusiveMut">SplitInclusiveMut</a><'data, T, P><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&T</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-37" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#1184">Source</a><a href="#associatedtype.Item-37" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data mut <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SplitMut%3C'data,+T,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#1148-1162">Source</a><a href="#impl-ParallelIterator-for-SplitMut%3C'data,+T,+P%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.SplitMut.html" title="struct rayon::slice::SplitMut">SplitMut</a><'data, T, P><div class="where">where
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&T</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-38" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#1153">Source</a><a href="#associatedtype.Item-38" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data mut <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-RChunksExactMut%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/rchunks.rs.html#320-333">Source</a><a href="#impl-ParallelIterator-for-RChunksExactMut%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'data> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.RChunksExactMut.html" title="struct rayon::slice::RChunksExactMut">RChunksExactMut</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-39" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/rchunks.rs.html#321">Source</a><a href="#associatedtype.Item-39" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data mut <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-ChunksExactMut%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/chunks.rs.html#322-335">Source</a><a href="#impl-ParallelIterator-for-ChunksExactMut%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.ChunksExactMut.html" title="struct rayon::slice::ChunksExactMut">ChunksExactMut</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-40" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/chunks.rs.html#323">Source</a><a href="#associatedtype.Item-40" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data mut <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-ChunksMut%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/chunks.rs.html#204-217">Source</a><a href="#impl-ParallelIterator-for-ChunksMut%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.ChunksMut.html" title="struct rayon::slice::ChunksMut">ChunksMut</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-41" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/chunks.rs.html#205">Source</a><a href="#associatedtype.Item-41" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data mut <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IterMut%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#952-965">Source</a><a href="#impl-ParallelIterator-for-IterMut%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::slice::<a class="struct" href="../slice/struct.IterMut.html" title="struct rayon::slice::IterMut">IterMut</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-42" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#953">Source</a><a href="#associatedtype.Item-42" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'data mut T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-RChunksMut%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/rchunks.rs.html#203-216">Source</a><a href="#impl-ParallelIterator-for-RChunksMut%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.RChunksMut.html" title="struct rayon::slice::RChunksMut">RChunksMut</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-43" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/rchunks.rs.html#204">Source</a><a href="#associatedtype.Item-43" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data mut <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Drain%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/vec.rs.html#117-130">Source</a><a href="#impl-ParallelIterator-for-Drain%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::vec::<a class="struct" href="../vec/struct.Drain.html" title="struct rayon::vec::Drain">Drain</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-44" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/vec.rs.html#118">Source</a><a href="#associatedtype.Item-44" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Chunks%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/chunks.rs.html#23-36">Source</a><a href="#impl-ParallelIterator-for-Chunks%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::slice::<a class="struct" href="../slice/struct.Chunks.html" title="struct rayon::slice::Chunks">Chunks</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-45" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/chunks.rs.html#24">Source</a><a href="#associatedtype.Item-45" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-ChunksExact%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/chunks.rs.html#124-137">Source</a><a href="#impl-ParallelIterator-for-ChunksExact%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.ChunksExact.html" title="struct rayon::slice::ChunksExact">ChunksExact</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-46" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/chunks.rs.html#125">Source</a><a href="#associatedtype.Item-46" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#811-824">Source</a><a href="#impl-ParallelIterator-for-Iter%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::slice::<a class="struct" href="../slice/struct.Iter.html" title="struct rayon::slice::Iter">Iter</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-47" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#812">Source</a><a href="#associatedtype.Item-47" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&'data T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-RChunks%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/rchunks.rs.html#23-36">Source</a><a href="#impl-ParallelIterator-for-RChunks%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.RChunks.html" title="struct rayon::slice::RChunks">RChunks</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-48" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/rchunks.rs.html#24">Source</a><a href="#associatedtype.Item-48" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-RChunksExact%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/rchunks.rs.html#123-136">Source</a><a href="#impl-ParallelIterator-for-RChunksExact%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.RChunksExact.html" title="struct rayon::slice::RChunksExact">RChunksExact</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-49" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/rchunks.rs.html#124">Source</a><a href="#associatedtype.Item-49" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Windows%3C'data,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#877-890">Source</a><a href="#impl-ParallelIterator-for-Windows%3C'data,+T%3E" class="anchor">§</a><h3 class="code-header">impl<'data, T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="../slice/struct.Windows.html" title="struct rayon::slice::Windows">Windows</a><'data, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-50" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/slice/mod.rs.html#878">Source</a><a href="#associatedtype.Item-50" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = &'data <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.slice.html">[T]</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,)%3E" class="anchor">§</a><h3 class="code-header">impl<A> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A,)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-51" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-51" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>,)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Chain%3CA,+B%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/chain.rs.html#24-55">Source</a><a href="#impl-ParallelIterator-for-Chain%3CA,+B%3E" class="anchor">§</a><h3 class="code-header">impl<A, B> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Chain.html" title="struct rayon::iter::Chain">Chain</a><A, B><div class="where">where
|
||
A: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
B: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = A::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-52" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/chain.rs.html#29">Source</a><a href="#associatedtype.Item-52" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-53" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-53" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Zip%3CA,+B%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/zip.rs.html#24-41">Source</a><a href="#impl-ParallelIterator-for-Zip%3CA,+B%3E" class="anchor">§</a><h3 class="code-header">impl<A, B> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Zip.html" title="struct rayon::iter::Zip">Zip</a><A, B><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-54" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/zip.rs.html#29">Source</a><a href="#associatedtype.Item-54" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-ZipEq%3CA,+B%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/zip_eq.rs.html#26-43">Source</a><a href="#impl-ParallelIterator-for-ZipEq%3CA,+B%3E" class="anchor">§</a><h3 class="code-header">impl<A, B> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.ZipEq.html" title="struct rayon::iter::ZipEq">ZipEq</a><A, B><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-55" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/zip_eq.rs.html#31">Source</a><a href="#associatedtype.Item-55" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-56" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-56" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-57" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-57" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D, E> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D, E)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
E: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-58" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-58" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <E as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D, E, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D, E, F)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
E: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
F: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-59" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-59" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <E as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <F as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D, E, F, G> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D, E, F, G)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
E: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
F: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
G: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-60" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-60" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <E as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <F as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <G as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D, E, F, G, H> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D, E, F, G, H)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
E: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
F: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
G: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
H: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-61" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-61" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <E as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <F as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <G as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <H as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H,+I)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D, E, F, G, H, I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
E: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
F: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
G: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
H: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-62" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-62" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <E as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <F as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <G as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <H as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H,+I,+J)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D, E, F, G, H, I, J> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
E: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
F: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
G: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
H: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
J: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-63" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-63" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <E as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <F as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <G as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <H as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <J as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D, E, F, G, H, I, J, K> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J, K)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
E: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
F: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
G: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
H: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
J: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
K: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-64" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-64" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <E as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <F as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <G as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <H as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <J as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <K as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#impl-ParallelIterator-for-MultiZip%3C(A,+B,+C,+D,+E,+F,+G,+H,+I,+J,+K,+L)%3E" class="anchor">§</a><h3 class="code-header">impl<A, B, C, D, E, F, G, H, I, J, K, L> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MultiZip.html" title="struct rayon::iter::MultiZip">MultiZip</a><<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(A, B, C, D, E, F, G, H, I, J, K, L)</a>><div class="where">where
|
||
A: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
B: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
C: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
D: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
E: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
F: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
G: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
H: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
J: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
K: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
L: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-65" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/multizip.rs.html#232-335">Source</a><a href="#associatedtype.Item-65" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<A as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <B as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <C as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <D as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <E as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <F as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <G as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <H as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <J as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <K as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>, <L as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Split%3CD,+S%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/splitter.rs.html#128-145">Source</a><a href="#impl-ParallelIterator-for-Split%3CD,+S%3E" class="anchor">§</a><h3 class="code-header">impl<D, S> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::iter::<a class="struct" href="struct.Split.html" title="struct rayon::iter::Split">Split</a><D, S><div class="where">where
|
||
D: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(D) -> (D, <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><D>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-66" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/splitter.rs.html#133">Source</a><a href="#associatedtype.Item-66" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = D</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Chunks%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/chunks.rs.html#23-39">Source</a><a href="#impl-ParallelIterator-for-Chunks%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::iter::<a class="struct" href="struct.Chunks.html" title="struct rayon::iter::Chunks">Chunks</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-67" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/chunks.rs.html#27">Source</a><a href="#associatedtype.Item-67" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="struct" href="https://doc.rust-lang.org/1.93.1/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Enumerate%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/enumerate.rs.html#23-39">Source</a><a href="#impl-ParallelIterator-for-Enumerate%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Enumerate.html" title="struct rayon::iter::Enumerate">Enumerate</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-68" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/enumerate.rs.html#27">Source</a><a href="#associatedtype.Item-68" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = (<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>, <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-ExponentialBlocks%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/blocks.rs.html#69-87">Source</a><a href="#impl-ParallelIterator-for-ExponentialBlocks%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.ExponentialBlocks.html" title="struct rayon::iter::ExponentialBlocks">ExponentialBlocks</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-69" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/blocks.rs.html#73">Source</a><a href="#associatedtype.Item-69" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Flatten%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/flatten.rs.html#21-34">Source</a><a href="#impl-ParallelIterator-for-Flatten%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Flatten.html" title="struct rayon::iter::Flatten">Flatten</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item: <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a>>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-70" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/flatten.rs.html#25">Source</a><a href="#associatedtype.Item-70" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <<I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> as <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a>>::<a class="associatedtype" href="trait.IntoParallelIterator.html#associatedtype.Item" title="type rayon::iter::IntoParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-FlattenIter%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/flatten_iter.rs.html#21-34">Source</a><a href="#impl-ParallelIterator-for-FlattenIter%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.FlattenIter.html" title="struct rayon::iter::FlattenIter">FlattenIter</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-71" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/flatten_iter.rs.html#25">Source</a><a href="#associatedtype.Item-71" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <<I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a> as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" title="type core::iter::traits::collect::IntoIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Intersperse%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/intersperse.rs.html#31-51">Source</a><a href="#impl-ParallelIterator-for-Intersperse%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Intersperse.html" title="struct rayon::iter::Intersperse">Intersperse</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-72" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/intersperse.rs.html#35">Source</a><a href="#associatedtype.Item-72" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MaxLen%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/len.rs.html#152-168">Source</a><a href="#impl-ParallelIterator-for-MaxLen%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MaxLen.html" title="struct rayon::iter::MaxLen">MaxLen</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-73" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/len.rs.html#156">Source</a><a href="#associatedtype.Item-73" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MinLen%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/len.rs.html#22-38">Source</a><a href="#impl-ParallelIterator-for-MinLen%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MinLen.html" title="struct rayon::iter::MinLen">MinLen</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-74" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/len.rs.html#26">Source</a><a href="#associatedtype.Item-74" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-PanicFuse%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/panic_fuse.rs.html#45-66">Source</a><a href="#impl-ParallelIterator-for-PanicFuse%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.PanicFuse.html" title="struct rayon::iter::PanicFuse">PanicFuse</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-75" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/panic_fuse.rs.html#49">Source</a><a href="#associatedtype.Item-75" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Rev%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/rev.rs.html#22-38">Source</a><a href="#impl-ParallelIterator-for-Rev%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Rev.html" title="struct rayon::iter::Rev">Rev</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-76" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/rev.rs.html#26">Source</a><a href="#associatedtype.Item-76" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Skip%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/skip.rs.html#27-43">Source</a><a href="#impl-ParallelIterator-for-Skip%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Skip.html" title="struct rayon::iter::Skip">Skip</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-77" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/skip.rs.html#31">Source</a><a href="#associatedtype.Item-77" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SkipAny%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/skip_any.rs.html#23-39">Source</a><a href="#impl-ParallelIterator-for-SkipAny%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.SkipAny.html" title="struct rayon::iter::SkipAny">SkipAny</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-78" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/skip_any.rs.html#27">Source</a><a href="#associatedtype.Item-78" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-StepBy%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/step_by.rs.html#23-39">Source</a><a href="#impl-ParallelIterator-for-StepBy%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.StepBy.html" title="struct rayon::iter::StepBy">StepBy</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-79" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/step_by.rs.html#27">Source</a><a href="#associatedtype.Item-79" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Take%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/take.rs.html#26-42">Source</a><a href="#impl-ParallelIterator-for-Take%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Take.html" title="struct rayon::iter::Take">Take</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-80" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/take.rs.html#30">Source</a><a href="#associatedtype.Item-80" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-TakeAny%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/take_any.rs.html#23-39">Source</a><a href="#impl-ParallelIterator-for-TakeAny%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.TakeAny.html" title="struct rayon::iter::TakeAny">TakeAny</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-81" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/take_any.rs.html#27">Source</a><a href="#associatedtype.Item-81" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-UniformBlocks%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/blocks.rs.html#112-129">Source</a><a href="#impl-ParallelIterator-for-UniformBlocks%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.UniformBlocks.html" title="struct rayon::iter::UniformBlocks">UniformBlocks</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-82" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/blocks.rs.html#116">Source</a><a href="#associatedtype.Item-82" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Inspect%3CI,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/inspect.rs.html#33-51">Source</a><a href="#impl-ParallelIterator-for-Inspect%3CI,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Inspect.html" title="struct rayon::iter::Inspect">Inspect</a><I, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-83" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/inspect.rs.html#38">Source</a><a href="#associatedtype.Item-83" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Update%3CI,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/update.rs.html#32-50">Source</a><a href="#impl-ParallelIterator-for-Update%3CI,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Update.html" title="struct rayon::iter::Update">Update</a><I, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&mut I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-84" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/update.rs.html#37">Source</a><a href="#associatedtype.Item-84" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-FlatMap%3CI,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/flat_map.rs.html#30-45">Source</a><a href="#impl-ParallelIterator-for-FlatMap%3CI,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, F, PI> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.FlatMap.html" title="struct rayon::iter::FlatMap">FlatMap</a><I, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> PI + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
PI: <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-85" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/flat_map.rs.html#36">Source</a><a href="#associatedtype.Item-85" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <PI as <a class="trait" href="trait.IntoParallelIterator.html" title="trait rayon::iter::IntoParallelIterator">IntoParallelIterator</a>>::<a class="associatedtype" href="trait.IntoParallelIterator.html#associatedtype.Item" title="type rayon::iter::IntoParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Map%3CI,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/map.rs.html#32-51">Source</a><a href="#impl-ParallelIterator-for-Map%3CI,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, F, R> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Map.html" title="struct rayon::iter::Map">Map</a><I, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-86" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/map.rs.html#38">Source</a><a href="#associatedtype.Item-86" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <F as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>)>::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.FnOnce.html#associatedtype.Output" title="type core::ops::function::FnOnce::Output">Output</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-FlatMapIter%3CI,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/flat_map_iter.rs.html#32-47">Source</a><a href="#impl-ParallelIterator-for-FlatMapIter%3CI,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, F, SI> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.FlatMapIter.html" title="struct rayon::iter::FlatMapIter">FlatMapIter</a><I, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> SI + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
SI: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-87" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/flat_map_iter.rs.html#38">Source</a><a href="#associatedtype.Item-87" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <SI as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" title="type core::iter::traits::collect::IntoIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-FoldChunks%3CI,+ID,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/fold_chunks.rs.html#43-62">Source</a><a href="#impl-ParallelIterator-for-FoldChunks%3CI,+ID,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, ID, U, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.FoldChunks.html" title="struct rayon::iter::FoldChunks">FoldChunks</a><I, ID, F><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> U + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(U, I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> U + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-88" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/fold_chunks.rs.html#50">Source</a><a href="#associatedtype.Item-88" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = U</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MapInit%3CI,+INIT,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/map_with.rs.html#360-380">Source</a><a href="#impl-ParallelIterator-for-MapInit%3CI,+INIT,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, INIT, T, F, R> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MapInit.html" title="struct rayon::iter::MapInit">MapInit</a><I, INIT, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
INIT: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> T + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-89" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/map_with.rs.html#367">Source</a><a href="#associatedtype.Item-89" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = R</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Interleave%3CI,+J%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/interleave.rs.html#24-41">Source</a><a href="#impl-ParallelIterator-for-Interleave%3CI,+J%3E" class="anchor">§</a><h3 class="code-header">impl<I, J> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Interleave.html" title="struct rayon::iter::Interleave">Interleave</a><I, J><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
J: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a><Item = I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-90" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/interleave.rs.html#29">Source</a><a href="#associatedtype.Item-90" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-InterleaveShortest%3CI,+J%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/interleave_shortest.rs.html#39-56">Source</a><a href="#impl-ParallelIterator-for-InterleaveShortest%3CI,+J%3E" class="anchor">§</a><h3 class="code-header">impl<I, J> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.InterleaveShortest.html" title="struct rayon::iter::InterleaveShortest">InterleaveShortest</a><I, J><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
J: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a><Item = I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-91" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/interleave_shortest.rs.html#44">Source</a><a href="#associatedtype.Item-91" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Filter%3CI,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/filter.rs.html#30-44">Source</a><a href="#impl-ParallelIterator-for-Filter%3CI,+P%3E" class="anchor">§</a><h3 class="code-header">impl<I, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Filter.html" title="struct rayon::iter::Filter">Filter</a><I, P><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-92" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/filter.rs.html#35">Source</a><a href="#associatedtype.Item-92" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Positions%3CI,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/positions.rs.html#34-48">Source</a><a href="#impl-ParallelIterator-for-Positions%3CI,+P%3E" class="anchor">§</a><h3 class="code-header">impl<I, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Positions.html" title="struct rayon::iter::Positions">Positions</a><I, P><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-93" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/positions.rs.html#39">Source</a><a href="#associatedtype.Item-93" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-SkipAnyWhile%3CI,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/skip_any_while.rs.html#33-51">Source</a><a href="#impl-ParallelIterator-for-SkipAnyWhile%3CI,+P%3E" class="anchor">§</a><h3 class="code-header">impl<I, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.SkipAnyWhile.html" title="struct rayon::iter::SkipAnyWhile">SkipAnyWhile</a><I, P><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-94" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/skip_any_while.rs.html#38">Source</a><a href="#associatedtype.Item-94" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-TakeAnyWhile%3CI,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/take_any_while.rs.html#33-51">Source</a><a href="#impl-ParallelIterator-for-TakeAnyWhile%3CI,+P%3E" class="anchor">§</a><h3 class="code-header">impl<I, P> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.TakeAnyWhile.html" title="struct rayon::iter::TakeAnyWhile">TakeAnyWhile</a><I, P><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-95" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/take_any_while.rs.html#38">Source</a><a href="#associatedtype.Item-95" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <I as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-FilterMap%3CI,+P%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/filter_map.rs.html#32-47">Source</a><a href="#impl-ParallelIterator-for-FilterMap%3CI,+P%3E" class="anchor">§</a><h3 class="code-header">impl<I, P, R> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.FilterMap.html" title="struct rayon::iter::FilterMap">FilterMap</a><I, P><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
P: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><R> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-96" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/filter_map.rs.html#38">Source</a><a href="#associatedtype.Item-96" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = R</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-WhileSome%3CI%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/while_some.rs.html#24-42">Source</a><a href="#impl-ParallelIterator-for-WhileSome%3CI%3E" class="anchor">§</a><h3 class="code-header">impl<I, T> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.WhileSome.html" title="struct rayon::iter::WhileSome">WhileSome</a><I><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><T>>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-97" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/while_some.rs.html#29">Source</a><a href="#associatedtype.Item-97" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-MapWith%3CI,+T,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/map_with.rs.html#35-55">Source</a><a href="#impl-ParallelIterator-for-MapWith%3CI,+T,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, T, F, R> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.MapWith.html" title="struct rayon::iter::MapWith">MapWith</a><I, T, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&mut T</a>, I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> R + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
R: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-98" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/map_with.rs.html#42">Source</a><a href="#associatedtype.Item-98" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = R</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-FoldChunksWith%3CI,+U,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/fold_chunks_with.rs.html#44-62">Source</a><a href="#impl-ParallelIterator-for-FoldChunksWith%3CI,+U,+F%3E" class="anchor">§</a><h3 class="code-header">impl<I, U, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.FoldChunksWith.html" title="struct rayon::iter::FoldChunksWith">FoldChunksWith</a><I, U, F><div class="where">where
|
||
I: <a class="trait" href="trait.IndexedParallelIterator.html" title="trait rayon::iter::IndexedParallelIterator">IndexedParallelIterator</a>,
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(U, I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> U + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-99" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/fold_chunks_with.rs.html#50">Source</a><a href="#associatedtype.Item-99" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = U</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IterBridge%3CIter%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/par_bridge.rs.html#76-98">Source</a><a href="#impl-ParallelIterator-for-IterBridge%3CIter%3E" class="anchor">§</a><h3 class="code-header">impl<Iter> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.IterBridge.html" title="struct rayon::iter::IterBridge">IterBridge</a><Iter><div class="where">where
|
||
Iter: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-100" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/par_bridge.rs.html#80">Source</a><a href="#associatedtype.Item-100" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <Iter as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CK,+V%3E" class="impl"><a class="src rightside" href="../../src/rayon/collections/btree_map.rs.html#23-26">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CK,+V%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::btree_map::<a class="struct" href="../collections/btree_map/struct.IntoIter.html" title="struct rayon::collections::btree_map::IntoIter">IntoIter</a><K, V></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-101" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/btree_map.rs.html#23-26">Source</a><a href="#associatedtype.Item-101" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(K, V)</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Drain%3C'_,+K,+V%3E" class="impl"><a class="src rightside" href="../../src/rayon/collections/hash_map.rs.html#90-93">Source</a><a href="#impl-ParallelIterator-for-Drain%3C'_,+K,+V%3E" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::hash_map::<a class="struct" href="../collections/hash_map/struct.Drain.html" title="struct rayon::collections::hash_map::Drain">Drain</a><'_, K, V></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-102" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/hash_map.rs.html#90-93">Source</a><a href="#associatedtype.Item-102" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(K, V)</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CK,+V%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/collections/hash_map.rs.html#24-27">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CK,+V%3E-1" class="anchor">§</a><h3 class="code-header">impl<K: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>, V: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::hash_map::<a class="struct" href="../collections/hash_map/struct.IntoIter.html" title="struct rayon::collections::hash_map::IntoIter">IntoIter</a><K, V></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-103" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/hash_map.rs.html#24-27">Source</a><a href="#associatedtype.Item-103" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.tuple.html">(K, V)</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Either%3CL,+R%3E" class="impl"><a class="src rightside" href="../../src/rayon/par_either.rs.html#6-26">Source</a><a href="#impl-ParallelIterator-for-Either%3CL,+R%3E" class="anchor">§</a><h3 class="code-header">impl<L, R> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="enum" href="enum.Either.html" title="enum rayon::iter::Either">Either</a><L, R><div class="where">where
|
||
L: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
R: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a><Item = L::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>>,</div></h3><div class="docblock"><p><code>Either<L, R></code> is a parallel iterator if both <code>L</code> and <code>R</code> are parallel iterators.</p>
|
||
</div></section></summary><div class="impl-items"><section id="associatedtype.Item-104" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/par_either.rs.html#11">Source</a><a href="#associatedtype.Item-104" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = <L as <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>>::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-WalkTree%3CS,+B%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/walk_tree.rs.html#510-524">Source</a><a href="#impl-ParallelIterator-for-WalkTree%3CS,+B%3E" class="anchor">§</a><h3 class="code-header">impl<S, B, I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.WalkTree.html" title="struct rayon::iter::WalkTree">WalkTree</a><S, B><div class="where">where
|
||
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&S</a>) -> I + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,
|
||
I: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = S, IntoIter: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/double_ended/trait.DoubleEndedIterator.html" title="trait core::iter::traits::double_ended::DoubleEndedIterator">DoubleEndedIterator</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-105" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/walk_tree.rs.html#516">Source</a><a href="#associatedtype.Item-105" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = S</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-WalkTreePostfix%3CS,+B%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/walk_tree.rs.html#307-326">Source</a><a href="#impl-ParallelIterator-for-WalkTreePostfix%3CS,+B%3E" class="anchor">§</a><h3 class="code-header">impl<S, B, I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.WalkTreePostfix.html" title="struct rayon::iter::WalkTreePostfix">WalkTreePostfix</a><S, B><div class="where">where
|
||
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&S</a>) -> I + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,
|
||
I: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = S>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-106" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/walk_tree.rs.html#313">Source</a><a href="#associatedtype.Item-106" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = S</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-WalkTreePrefix%3CS,+B%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/walk_tree.rs.html#81-100">Source</a><a href="#impl-ParallelIterator-for-WalkTreePrefix%3CS,+B%3E" class="anchor">§</a><h3 class="code-header">impl<S, B, I> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.WalkTreePrefix.html" title="struct rayon::iter::WalkTreePrefix">WalkTreePrefix</a><S, B><div class="where">where
|
||
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
B: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&S</a>) -> I + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,
|
||
I: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a><Item = S, IntoIter: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/iter/traits/double_ended/trait.DoubleEndedIterator.html" title="trait core::iter::traits::double_ended::DoubleEndedIterator">DoubleEndedIterator</a>>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-107" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/walk_tree.rs.html#87">Source</a><a href="#associatedtype.Item-107" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = S</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Repeat%3CT%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/repeat.rs.html#63-78">Source</a><a href="#impl-ParallelIterator-for-Repeat%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Repeat.html" title="struct rayon::iter::Repeat">Repeat</a><T><div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-108" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/repeat.rs.html#67">Source</a><a href="#associatedtype.Item-108" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-RepeatN%3CT%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/repeat.rs.html#156-172">Source</a><a href="#impl-ParallelIterator-for-RepeatN%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.RepeatN.html" title="struct rayon::iter::RepeatN">RepeatN</a><T><div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-109" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/repeat.rs.html#160">Source</a><a href="#associatedtype.Item-109" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Drain%3C'_,+T%3E" class="impl"><a class="src rightside" href="../../src/rayon/collections/binary_heap.rs.html#85-98">Source</a><a href="#impl-ParallelIterator-for-Drain%3C'_,+T%3E" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::binary_heap::<a class="struct" href="../collections/binary_heap/struct.Drain.html" title="struct rayon::collections::binary_heap::Drain">Drain</a><'_, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-110" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/binary_heap.rs.html#86">Source</a><a href="#associatedtype.Item-110" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT%3E" class="impl"><a class="src rightside" href="../../src/rayon/collections/binary_heap.rs.html#30-33">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::binary_heap::<a class="struct" href="../collections/binary_heap/struct.IntoIter.html" title="struct rayon::collections::binary_heap::IntoIter">IntoIter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-111" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/binary_heap.rs.html#30-33">Source</a><a href="#associatedtype.Item-111" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/collections/btree_set.rs.html#23-26">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT%3E-1" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::btree_set::<a class="struct" href="../collections/btree_set/struct.IntoIter.html" title="struct rayon::collections::btree_set::IntoIter">IntoIter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-112" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/btree_set.rs.html#23-26">Source</a><a href="#associatedtype.Item-112" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Drain%3C'_,+T%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/collections/hash_set.rs.html#76-79">Source</a><a href="#impl-ParallelIterator-for-Drain%3C'_,+T%3E-1" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::hash_set::<a class="struct" href="../collections/hash_set/struct.Drain.html" title="struct rayon::collections::hash_set::Drain">Drain</a><'_, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-113" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/hash_set.rs.html#76-79">Source</a><a href="#associatedtype.Item-113" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT%3E-2" class="impl"><a class="src rightside" href="../../src/rayon/collections/hash_set.rs.html#24-27">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT%3E-2" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::hash_set::<a class="struct" href="../collections/hash_set/struct.IntoIter.html" title="struct rayon::collections::hash_set::IntoIter">IntoIter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-114" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/hash_set.rs.html#24-27">Source</a><a href="#associatedtype.Item-114" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT%3E-3" class="impl"><a class="src rightside" href="../../src/rayon/collections/linked_list.rs.html#23-26">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT%3E-3" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::linked_list::<a class="struct" href="../collections/linked_list/struct.IntoIter.html" title="struct rayon::collections::linked_list::IntoIter">IntoIter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-115" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/linked_list.rs.html#23-26">Source</a><a href="#associatedtype.Item-115" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Drain%3C'_,+T%3E-2" class="impl"><a class="src rightside" href="../../src/rayon/collections/vec_deque.rs.html#113-126">Source</a><a href="#impl-ParallelIterator-for-Drain%3C'_,+T%3E-2" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::vec_deque::<a class="struct" href="../collections/vec_deque/struct.Drain.html" title="struct rayon::collections::vec_deque::Drain">Drain</a><'_, T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-116" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/vec_deque.rs.html#114">Source</a><a href="#associatedtype.Item-116" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT%3E-4" class="impl"><a class="src rightside" href="../../src/rayon/collections/vec_deque.rs.html#32-35">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT%3E-4" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::collections::vec_deque::<a class="struct" href="../collections/vec_deque/struct.IntoIter.html" title="struct rayon::collections::vec_deque::IntoIter">IntoIter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-117" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/collections/vec_deque.rs.html#32-35">Source</a><a href="#associatedtype.Item-117" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT%3E-5" class="impl"><a class="src rightside" href="../../src/rayon/option.rs.html#33-46">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT%3E-5" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::option::<a class="struct" href="../option/struct.IntoIter.html" title="struct rayon::option::IntoIter">IntoIter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-118" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/option.rs.html#34">Source</a><a href="#associatedtype.Item-118" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT%3E-6" class="impl"><a class="src rightside" href="../../src/rayon/result.rs.html#31-34">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT%3E-6" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::result::<a class="struct" href="../result/struct.IntoIter.html" title="struct rayon::result::IntoIter">IntoIter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-119" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/result.rs.html#31-34">Source</a><a href="#associatedtype.Item-119" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT%3E-7" class="impl"><a class="src rightside" href="../../src/rayon/vec.rs.html#60-73">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT%3E-7" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::vec::<a class="struct" href="../vec/struct.IntoIter.html" title="struct rayon::vec::IntoIter">IntoIter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-120" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/vec.rs.html#61">Source</a><a href="#associatedtype.Item-120" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Empty%3CT%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/empty.rs.html#51-64">Source</a><a href="#impl-ParallelIterator-for-Empty%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Empty.html" title="struct rayon::iter::Empty">Empty</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-121" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/empty.rs.html#52">Source</a><a href="#associatedtype.Item-121" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Once%3CT%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/once.rs.html#36-49">Source</a><a href="#impl-ParallelIterator-for-Once%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Once.html" title="struct rayon::iter::Once">Once</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-122" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/once.rs.html#37">Source</a><a href="#associatedtype.Item-122" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-IntoIter%3CT,+N%3E" class="impl"><a class="src rightside" href="../../src/rayon/array.rs.html#47-60">Source</a><a href="#impl-ParallelIterator-for-IntoIter%3CT,+N%3E" class="anchor">§</a><h3 class="code-header">impl<T: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>, const N: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::array::<a class="struct" href="../array/struct.IntoIter.html" title="struct rayon::array::IntoIter">IntoIter</a><T, N></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-123" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/array.rs.html#48">Source</a><a href="#associatedtype.Item-123" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3CT%3E" class="impl"><a class="src rightside" href="../../src/rayon/range.rs.html#116-130">Source</a><a href="#impl-ParallelIterator-for-Iter%3CT%3E" class="anchor">§</a><h3 class="code-header">impl<T: RangeInteger> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::range::<a class="struct" href="../range/struct.Iter.html" title="struct rayon::range::Iter">Iter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-124" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/range.rs.html#117">Source</a><a href="#associatedtype.Item-124" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Iter%3CT%3E-1" class="impl"><a class="src rightside" href="../../src/rayon/range_inclusive.rs.html#124-138">Source</a><a href="#impl-ParallelIterator-for-Iter%3CT%3E-1" class="anchor">§</a><h3 class="code-header">impl<T: RangeInteger> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for rayon::range_inclusive::<a class="struct" href="../range_inclusive/struct.Iter.html" title="struct rayon::range_inclusive::Iter">Iter</a><T></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-125" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/range_inclusive.rs.html#125">Source</a><a href="#associatedtype.Item-125" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-FoldWith%3CI,+U,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/fold.rs.html#206-225">Source</a><a href="#impl-ParallelIterator-for-FoldWith%3CI,+U,+F%3E" class="anchor">§</a><h3 class="code-header">impl<U, I, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.FoldWith.html" title="struct rayon::iter::FoldWith">FoldWith</a><I, U, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(U, I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> U + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-126" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/fold.rs.html#212">Source</a><a href="#associatedtype.Item-126" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = U</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-TryFoldWith%3CI,+U,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/try_fold.rs.html#199-218">Source</a><a href="#impl-ParallelIterator-for-TryFoldWith%3CI,+U,+F%3E" class="anchor">§</a><h3 class="code-header">impl<U, I, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.TryFoldWith.html" title="struct rayon::iter::TryFoldWith">TryFoldWith</a><I, U, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(U::Output, I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> U + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
U: Try<Output: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-127" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/try_fold.rs.html#205">Source</a><a href="#associatedtype.Item-127" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = U</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-Fold%3CI,+ID,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/fold.rs.html#34-54">Source</a><a href="#impl-ParallelIterator-for-Fold%3CI,+ID,+F%3E" class="anchor">§</a><h3 class="code-header">impl<U, I, ID, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.Fold.html" title="struct rayon::iter::Fold">Fold</a><I, ID, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(U, I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> U + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> U + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-128" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/fold.rs.html#41">Source</a><a href="#associatedtype.Item-128" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = U</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ParallelIterator-for-TryFold%3CI,+U,+ID,+F%3E" class="impl"><a class="src rightside" href="../../src/rayon/iter/try_fold.rs.html#39-60">Source</a><a href="#impl-ParallelIterator-for-TryFold%3CI,+U,+ID,+F%3E" class="anchor">§</a><h3 class="code-header">impl<U, I, ID, F> <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a> for <a class="struct" href="struct.TryFold.html" title="struct rayon::iter::TryFold">TryFold</a><I, U, ID, F><div class="where">where
|
||
I: <a class="trait" href="trait.ParallelIterator.html" title="trait rayon::iter::ParallelIterator">ParallelIterator</a>,
|
||
F: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(U::Output, I::<a class="associatedtype" href="trait.ParallelIterator.html#associatedtype.Item" title="type rayon::iter::ParallelIterator::Item">Item</a>) -> U + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
ID: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>() -> U::Output + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,
|
||
U: Try + <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section></summary><div class="impl-items"><section id="associatedtype.Item-129" class="associatedtype trait-impl"><a class="src rightside" href="../../src/rayon/iter/try_fold.rs.html#46">Source</a><a href="#associatedtype.Item-129" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Item" class="associatedtype">Item</a> = U</h4></section></div></details></div><script src="../../trait.impl/rayon/iter/trait.ParallelIterator.js" data-ignore-extern-crates="either" async></script></section></div></main></body></html> |