blob: 3dc280f14a796cbc37375606cd2b95561689d4c4 [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 `LocalSpawn` is similar to [`Spawn`], but allows spawning futures that don’t implement `Send`."><meta name="keywords" content="rust, rustlang, rust-lang, LocalSpawn"><title>LocalSpawn in futures::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/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/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">LocalSpawn</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.spawn_local_obj">spawn_local_obj</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.status_local">status_local</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-LocalSpawn-for-%26Sp">&amp;Sp</a></li><li><a href="#impl-LocalSpawn-for-%26mut%20Sp">&amp;mut Sp</a></li><li><a href="#impl-LocalSpawn-for-Arc%3CSp%3E">Arc&lt;Sp&gt;</a></li><li><a href="#impl-LocalSpawn-for-Box%3CSp%2C%20Global%3E">Box&lt;Sp, Global&gt;</a></li><li><a href="#impl-LocalSpawn-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::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</a>::<wbr><a href="index.html">task</a>::<wbr><a class="trait" href="#">LocalSpawn</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#31">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 LocalSpawn {
fn <a href="#tymethod.spawn_local_obj" class="fnname">spawn_local_obj</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;future: <a class="struct" href="struct.LocalFutureObj.html" title="struct futures::task::LocalFutureObj">LocalFutureObj</a>&lt;'static, ()&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;;
fn <a href="#method.status_local" class="fnname">status_local</a>(&amp;self) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::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>LocalSpawn</code> is similar to <a href="trait.Spawn.html" title="Spawn"><code>Spawn</code></a>, but allows spawning futures
that don’t implement <code>Send</code>.</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_local_obj" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#40">source</a><h4 class="code-header">fn <a href="#tymethod.spawn_local_obj" class="fnname">spawn_local_obj</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;future: <a class="struct" href="struct.LocalFutureObj.html" title="struct futures::task::LocalFutureObj">LocalFutureObj</a>&lt;'static, ()&gt;<br>) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::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_local" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#49">source</a><h4 class="code-header">fn <a href="#method.status_local" class="fnname">status_local</a>(&amp;self) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::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-LocalSpawn-for-Rc%3CSp%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#161">source</a><a href="#impl-LocalSpawn-for-Rc%3CSp%3E" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> for Rc&lt;Sp&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> + ?Sized,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_local_obj" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#162">source</a><a href="#method.spawn_local_obj" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_local_obj" class="fnname">spawn_local_obj</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;future: <a class="struct" href="struct.LocalFutureObj.html" title="struct futures::task::LocalFutureObj">LocalFutureObj</a>&lt;'static, ()&gt;<br>) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status_local-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#166">source</a><a href="#method.status_local-1" class="anchor"></a><h4 class="code-header">fn <a href="#method.status_local" class="fnname">status_local</a>(&amp;self) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-LocalSpawn-for-%26Sp" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#106">source</a><a href="#impl-LocalSpawn-for-%26Sp" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> for &amp;Sp<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> + ?Sized,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_local_obj-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#107">source</a><a href="#method.spawn_local_obj-1" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_local_obj" class="fnname">spawn_local_obj</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;future: <a class="struct" href="struct.LocalFutureObj.html" title="struct futures::task::LocalFutureObj">LocalFutureObj</a>&lt;'static, ()&gt;<br>) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status_local-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#111">source</a><a href="#method.status_local-2" class="anchor"></a><h4 class="code-header">fn <a href="#method.status_local" class="fnname">status_local</a>(&amp;self) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-LocalSpawn-for-%26mut%20Sp" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#116">source</a><a href="#impl-LocalSpawn-for-%26mut%20Sp" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> for &amp;mut Sp<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> + ?Sized,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_local_obj-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#117">source</a><a href="#method.spawn_local_obj-2" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_local_obj" class="fnname">spawn_local_obj</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;future: <a class="struct" href="struct.LocalFutureObj.html" title="struct futures::task::LocalFutureObj">LocalFutureObj</a>&lt;'static, ()&gt;<br>) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status_local-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#121">source</a><a href="#method.status_local-3" class="anchor"></a><h4 class="code-header">fn <a href="#method.status_local" class="fnname">status_local</a>(&amp;self) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-LocalSpawn-for-Arc%3CSp%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#183">source</a><a href="#impl-LocalSpawn-for-Arc%3CSp%3E" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> for Arc&lt;Sp&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> + ?Sized,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_local_obj-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#184">source</a><a href="#method.spawn_local_obj-3" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_local_obj" class="fnname">spawn_local_obj</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;future: <a class="struct" href="struct.LocalFutureObj.html" title="struct futures::task::LocalFutureObj">LocalFutureObj</a>&lt;'static, ()&gt;<br>) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status_local-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#188">source</a><a href="#method.status_local-4" class="anchor"></a><h4 class="code-header">fn <a href="#method.status_local" class="fnname">status_local</a>(&amp;self) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-LocalSpawn-for-Box%3CSp%2C%20Global%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#141">source</a><a href="#impl-LocalSpawn-for-Box%3CSp%2C%20Global%3E" class="anchor"></a><h3 class="code-header">impl&lt;Sp&gt; <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> for Box&lt;Sp, Global&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Sp: <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> + ?Sized,</span></h3></section></summary><div class="impl-items"><section id="method.spawn_local_obj-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#142">source</a><a href="#method.spawn_local_obj-4" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.spawn_local_obj" class="fnname">spawn_local_obj</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;future: <a class="struct" href="struct.LocalFutureObj.html" title="struct futures::task::LocalFutureObj">LocalFutureObj</a>&lt;'static, ()&gt;<br>) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::task::SpawnError">SpawnError</a>&gt;</h4></section><section id="method.status_local-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_task/spawn.rs.html#146">source</a><a href="#method.status_local-5" class="anchor"></a><h4 class="code-header">fn <a href="#method.status_local" class="fnname">status_local</a>(&amp;self) -&gt; Result&lt;(), <a class="struct" href="struct.SpawnError.html" title="struct futures::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-LocalSpawn-for-LocalSpawner" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_executor/local_pool.rs.html#385">source</a><a href="#impl-LocalSpawn-for-LocalSpawner" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> for <a class="struct" href="../executor/struct.LocalSpawner.html" title="struct futures::executor::LocalSpawner">LocalSpawner</a></h3></section><section id="impl-LocalSpawn-for-FuturesUnordered%3CLocalFutureObj%3C%27_%2C%20()%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/futures_unordered/mod.rs.html#75">source</a><a href="#impl-LocalSpawn-for-FuturesUnordered%3CLocalFutureObj%3C%27_%2C%20()%3E%3E" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="trait.LocalSpawn.html" title="trait futures::task::LocalSpawn">LocalSpawn</a> for <a class="struct" href="../stream/struct.FuturesUnordered.html" title="struct futures::stream::FuturesUnordered">FuturesUnordered</a>&lt;<a class="struct" href="struct.LocalFutureObj.html" title="struct futures::task::LocalFutureObj">LocalFutureObj</a>&lt;'_, ()&gt;&gt;</h3></section></div><script src="../../implementors/futures_task/spawn/trait.LocalSpawn.js" data-ignore-extern-crates="futures_util,alloc,futures_executor" async></script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="futures" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>