blob: 56b6f3c65cace4cb901abb836c0ea7595d064a28 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The `Spawn` trait allows for pushing futures onto an executor that will run them to completion."><meta name="keywords" content="rust, rustlang, rust-lang, Spawn"><title>Spawn in futures_util::task - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../futures_util/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../futures_util/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Spawn</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.spawn_obj">spawn_obj</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.status">status</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Spawn-for-%26Sp">&amp;Sp</a></li><li><a href="#impl-Spawn-for-%26mut%20Sp">&amp;mut Sp</a></li><li><a href="#impl-Spawn-for-Arc%3CSp%3E">Arc&lt;Sp&gt;</a></li><li><a href="#impl-Spawn-for-Box%3CSp%2C%20Global%3E">Box&lt;Sp, Global&gt;</a></li><li><a href="#impl-Spawn-for-Rc%3CSp%3E">Rc&lt;Sp&gt;</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In futures_util::task</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Trait <a href="../index.html">futures_util</a>::<wbr><a href="index.html">task</a>::<wbr><a class="trait" href="#">Spawn</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/futures_task/spawn.rs.html#6">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust trait"><code>pub trait Spawn {
fn <a href="#tymethod.spawn_obj" class="fnname">spawn_obj</a>(&amp;self, future: <a class="struct" href="struct.FutureObj.html" title="struct futures_util::task::FutureObj">FutureObj</a>&lt;'static, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;;
fn <a href="#method.status" class="fnname">status</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt; { ... }
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The <code>Spawn</code> trait allows for pushing futures onto an executor that will
run them to completion.</p>
</div></details><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="tymethod.spawn_obj" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#15">source</a><h4 class="code-header">fn <a href="#tymethod.spawn_obj" class="fnname">spawn_obj</a>(&amp;self, future: <a class="struct" href="struct.FutureObj.html" title="struct futures_util::task::FutureObj">FutureObj</a>&lt;'static, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section></summary><div class="docblock"><p>Spawns a future that will be run to completion.</p>
<h5 id="errors"><a href="#errors">Errors</a></h5>
<p>The executor may be unable to spawn tasks. Spawn errors should
represent relatively rare scenarios, such as the executor
having been shut down so that it is no longer able to accept
tasks.</p>
</div></details></div><h2 id="provided-methods" class="small-section-header">Provided Methods<a href="#provided-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.status" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#24">source</a><h4 class="code-header">fn <a href="#method.status" class="fnname">status</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section></summary><div class="docblock"><p>Determines whether the executor is able to spawn new tasks.</p>
<p>This method will return <code>Ok</code> when the executor is <em>likely</em>
(but not guaranteed) to accept a subsequent spawn attempt.
Likewise, an <code>Err</code> return means that <code>spawn</code> is likely, but
not guaranteed, to yield an error.</p>
</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Spawn-for-%26mut%20Sp" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#96">source</a><a href="#impl-Spawn-for-%26mut%20Sp" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Sp<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_obj" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#97">source</a><a href="#method.spawn_obj" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_obj" class="fnname">spawn_obj</a>(&amp;self, future: <a class="struct" href="struct.FutureObj.html" title="struct futures_util::task::FutureObj">FutureObj</a>&lt;'static, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#101">source</a><a href="#method.status-1" class="anchor"></a><h4 class="code-header">fn <a href="#method.status" class="fnname">status</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Spawn-for-Rc%3CSp%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#151">source</a><a href="#impl-Spawn-for-Rc%3CSp%3E" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html" title="struct alloc::rc::Rc">Rc</a>&lt;Sp&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_obj-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#152">source</a><a href="#method.spawn_obj-1" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_obj" class="fnname">spawn_obj</a>(&amp;self, future: <a class="struct" href="struct.FutureObj.html" title="struct futures_util::task::FutureObj">FutureObj</a>&lt;'static, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#156">source</a><a href="#method.status-2" class="anchor"></a><h4 class="code-header">fn <a href="#method.status" class="fnname">status</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Spawn-for-Arc%3CSp%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#172">source</a><a href="#impl-Spawn-for-Arc%3CSp%3E" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;Sp&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_obj-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#173">source</a><a href="#method.spawn_obj-2" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_obj" class="fnname">spawn_obj</a>(&amp;self, future: <a class="struct" href="struct.FutureObj.html" title="struct futures_util::task::FutureObj">FutureObj</a>&lt;'static, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#177">source</a><a href="#method.status-3" class="anchor"></a><h4 class="code-header">fn <a href="#method.status" class="fnname">status</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Spawn-for-Box%3CSp%2C%20Global%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#131">source</a><a href="#impl-Spawn-for-Box%3CSp%2C%20Global%3E" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Sp, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_obj-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#132">source</a><a href="#method.spawn_obj-3" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_obj" class="fnname">spawn_obj</a>(&amp;self, future: <a class="struct" href="struct.FutureObj.html" title="struct futures_util::task::FutureObj">FutureObj</a>&lt;'static, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#136">source</a><a href="#method.status-4" class="anchor"></a><h4 class="code-header">fn <a href="#method.status" class="fnname">status</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Spawn-for-%26Sp" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#86">source</a><a href="#impl-Spawn-for-%26Sp" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Sp<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_obj-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#87">source</a><a href="#method.spawn_obj-4" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_obj" class="fnname">spawn_obj</a>(&amp;self, future: <a class="struct" href="struct.FutureObj.html" title="struct futures_util::task::FutureObj">FutureObj</a>&lt;'static, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#91">source</a><a href="#method.status-5" class="anchor"></a><h4 class="code-header">fn <a href="#method.status" class="fnname">status</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SpawnError.html" title="struct futures_util::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div id="implementors-list"><section id="impl-Spawn-for-FuturesUnordered%3CFutureObj%3C%27_%2C%20()%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/futures_unordered/mod.rs.html#68-73">source</a><a href="#impl-Spawn-for-FuturesUnordered%3CFutureObj%3C%27_%2C%20()%3E%3E" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="trait.Spawn.html" title="trait futures_util::task::Spawn">Spawn</a> for <a class="struct" href="../stream/struct.FuturesUnordered.html" title="struct futures_util::stream::FuturesUnordered">FuturesUnordered</a>&lt;<a class="struct" href="struct.FutureObj.html" title="struct futures_util::task::FutureObj">FutureObj</a>&lt;'_, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;&gt;</h3></section></div><script src="../../implementors/futures_task/spawn/trait.Spawn.js" data-ignore-extern-crates="alloc" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="futures_util" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>