rtic/dev/api/futures_util/future/index.html

20 lines
26 KiB
HTML
Raw Normal View History

<!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="Asynchronous values."><title>futures_util::future - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-b0742ba02757f159.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="futures_util" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../futures_util/index.html">futures_<wbr>util</a><span class="version">0.3.31</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module future</a></h2><h3><a href="#reexports">Module Items</a></h3><ul class="block"><li><a href="#reexports" title="Re-exports">Re-exports</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate futures_<wbr>util</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="../index.html">futures_util</a></span><h1>Module <span>future</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/futures_util/future/mod.rs.html#1-134">source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Asynchronous values.</p>
<p>This module contains:</p>
<ul>
<li>The <a href="https://doc.rust-lang.org/1.83.0/core/future/future/trait.Future.html" title="trait core::future::future::Future"><code>Future</code></a> trait.</li>
<li>The <a href="trait.FutureExt.html" title="trait futures_util::future::FutureExt"><code>FutureExt</code></a> and <a href="trait.TryFutureExt.html" title="trait futures_util::future::TryFutureExt"><code>TryFutureExt</code></a> trait, which provides adapters for
chaining and composing futures.</li>
<li>Top-level future combinators like <a href="fn.lazy.html" title="fn futures_util::future::lazy"><code>lazy</code></a> which creates a future
from a closure that defines its return value, and <a href="fn.ready.html" title="fn futures_util::future::ready"><code>ready</code></a>,
which constructs a future with an immediate defined value.</li>
</ul>
</div></details><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name" id="reexport.Future"><code>pub use core::future::<a class="trait" href="https://doc.rust-lang.org/1.83.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>;</code></div></li></ul><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.AlwaysReady.html" title="struct futures_util::future::AlwaysReady">Always<wbr>Ready</a></div><div class="desc docblock-short">Future for the <a href="fn.always_ready.html" title="fn futures_util::future::always_ready"><code>always_ready</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.AndThen.html" title="struct futures_util::future::AndThen">AndThen</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.and_then" title="method futures_util::future::TryFutureExt::and_then"><code>and_then</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.ErrInto.html" title="struct futures_util::future::ErrInto">ErrInto</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.err_into" title="method futures_util::future::TryFutureExt::err_into"><code>err_into</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.Flatten.html" title="struct futures_util::future::Flatten">Flatten</a></div><div class="desc docblock-short">Future for the <a href="trait.FutureExt.html#method.flatten" title="method futures_util::future::FutureExt::flatten"><code>flatten</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.FlattenStream.html" title="struct futures_util::future::FlattenStream">Flatten<wbr>Stream</a></div><div class="desc docblock-short">Stream for the <a href="trait.FutureExt.html#method.flatten_stream" title="method futures_util::future::FutureExt::flatten_stream"><code>flatten_stream</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.Fuse.html" title="struct futures_util::future::Fuse">Fuse</a></div><div class="desc docblock-short">Future for the <a href="trait.FutureExt.html#method.fuse" title="method futures_util::future::FutureExt::fuse"><code>fuse</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.FutureObj.html" title="struct futures_util::future::FutureObj">Future<wbr>Obj</a></div><div class="desc docblock-short">A custom trait object for polling futures, roughly akin to
<code>Box&lt;dyn Future&lt;Output = T&gt; + Send + 'a&gt;</code>.</div></li><li><div class="item-name"><a class="struct" href="struct.Inspect.html" title="struct futures_util::future::Inspect">Inspect</a></div><div class="desc docblock-short">Future for the <a href="trait.FutureExt.html#method.inspect" title="method futures_util::future::FutureExt::inspect"><code>inspect</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.InspectErr.html" title="struct futures_util::future::InspectErr">Inspect<wbr>Err</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.inspect_err" title="method futures_util::future::TryFutureExt::inspect_err"><code>inspect_err</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.InspectOk.html" title="struct futures_util::future::InspectOk">Inspect<wbr>Ok</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.inspect_ok" title="method futures_util::future::TryFutureExt::inspect_ok"><code>inspect_ok</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.IntoFuture.html" title="struct futures_util::future::IntoFuture">Into<wbr>Future</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.into_future" title="method futures_util::future::TryFutureExt::into_future"><code>into_future</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.IntoStream.html" title="struct futures_util::future::IntoStream">Into<wbr>Stream</a></div><div class="desc docblock-short">Stream for the <a href="trait.FutureExt.html#method.into_stream" title="method futures_util::future::FutureExt::into_stream"><code>into_stream</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.Join.html" title="struct futures_util::future::Join">Join</a></div><div class="desc docblock-short">Future for the <a href="fn.join.html" title="fn futures_util::future::join"><code>join</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.Join3.html" title="struct futures_util::future::Join3">Join3</a></div><div class="desc docblock-short">Future for the <a href="fn.join3.html" title="fn futures_util::future::join3"><code>join3</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.Join4.html" title="struct futures_util::future::Join4">Join4</a></div><div class="desc docblock-short">Future for the <a href="fn.join4.html" title="fn futures_util::future::join4"><code>join4</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.Join5.html" title="struct futures_util::future::Join5">Join5</a></div><div class="desc docblock-short">Future for the <a href="fn.join5.html" title="fn futures_util::future::join5"><code>join5</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.Lazy.html" title="struct futures_util::future::Lazy">Lazy</a></div><div class="desc docblock-short">Future for the <a href="fn.lazy.html" title="fn futures_util::future::lazy"><code>lazy</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.LocalFutureObj.html" title="struct futures_util::future::LocalFutureObj">Local<wbr>Future<wbr>Obj</a></div><div class="desc docblock-short">A custom trait object for polling futures, roughly akin to
<code>Box&lt;dyn Future&lt;Output = T&gt; + 'a&gt;</code>.</div></li><li><div class="item-name"><a class="struct" href="struct.Map.html" title="struct futures_util::future::Map">Map</a></div><div class="desc docblock-short">Future for the <a href="trait.FutureExt.html#method.map" title="method futures_util::future::FutureExt::map"><code>map</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.MapErr.html" title="struct futures_util::future::MapErr">MapErr</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.map_err" title="method futures_util::future::TryFutureExt::map_err"><code>map_err</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.MapInto.html" title="struct futures_util::future::MapInto">MapInto</a></div><div class="desc docblock-short">Future for the <a href="trait.FutureExt.html#method.map_into" title="method futures_util::future::FutureExt::map_into"><code>map_into</code></a> combinator.</div></li><li><div class="item-name"><a class="struct" href="struct.MapOk.html" title="struct futures_util::future::MapOk">MapOk</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.map_ok" title="method futures_util::future::TryFutureExt::map_ok"><code>map_ok</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.MapOkOrElse.html" title="struct futures_util::future::MapOkOrElse">MapOk<wbr>OrElse</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.map_ok_or_else" title="method futures_util::future::TryFutureExt::map_ok_or_else"><code>map_ok_or_else</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.NeverError.html" title="struct futures_util::future::NeverError">Never<wbr>Error</a></div><div class="desc docblock-short">Future for the <a href="trait.FutureExt.html#method.never_error" title="method futures_util::future::FutureExt::never_error"><code>never_error</code></a> combinator.</div></li><li><div class="item-name"><a class="struct" href="struct.OkInto.html" title="struct futures_util::future::OkInto">OkInto</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.ok_into" title="method futures_util::future::TryFutureExt::ok_into"><code>ok_into</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.OptionFuture.html" title="struct futures_util::future::OptionFuture">Option<wbr>Future</a></div><div class="desc docblock-short">A future representing a value which may or may not be present.</div></li><li><div class="item-name"><a class="struct" href="struct.OrElse.html" title="struct futures_util::future::OrElse">OrElse</a></div><div class="desc docblock-short">Future for the <a href="trait.TryFutureExt.html#method.or_else" title="method futures_util::future::TryFutureExt::or_else"><code>or_else</code></a> method.</div></li><li><div class="item-name"><a class="struct" href="struct.Pending.html" title="struct futures_util::future::Pending">Pending</a></div><div class="desc docblock-short">Future for the <a href="fn.pending.html" title="fn futures_util::future::pending"><code>pending()</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.PollFn.html" title="struct futures_util::future::PollFn">PollFn</a></div><div class="desc docblock-short">Future for the <a href="fn.poll_fn.html" title="fn futures_util::future::poll_fn"><code>poll_fn</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.PollImmediate.html" title="struct futures_util::future::PollImmediate">Poll<wbr>Immediate</a></div><div class="desc docblock-short">Future for the <a href="fn.poll_immediate.html" title="fn futures_util::future::poll_immediate"><code>poll_immediate</code></a> function.</div></li><li><div class="item-name"><a class="struct" href="struct.Ready.html" title="struct futures_util::future::Ready">Ready</a></div><div class="desc docblock-short">F
should no longer be polled.</div></li><li><div class="item-name"><a class="trait" href="trait.FutureExt.html" title="trait futures_util::future::FutureExt">Future<wbr>Ext</a></div><div class="desc docblock-short">An extension trait for <code>Future</code>s that provides a variety of convenient
adapters.</div></li><li><div class="item-name"><a class="trait" href="trait.TryFuture.html" title="trait futures_util::future::TryFuture">TryFuture</a></div><div class="desc docblock-short">A convenience for futures that return <code>Result</code> values that includes
a variety of adapters tailored to such futures.</div></li><li><div class="item-name"><a class="trait" href="trait.TryFutureExt.html" title="trait futures_util::future::TryFutureExt">TryFuture<wbr>Ext</a></div><div class="desc docblock-short">Adapters specific to <a href="https://doc.rust-lang.org/1.83.0/core/result/enum.Result.html" title="enum core::result::Result"><code>Result</code></a>-returning futures</div></li><li><div class="item-name"><a class="trait" href="trait.UnsafeFutureObj.html" title="trait futures_util::future::UnsafeFutureObj">Unsafe<wbr>Future<wbr>Obj</a></div><div class="desc docblock-short">A custom implementation of a future trait object for <code>FutureObj</code>, providing
a vtable with drop support.</div></li></ul><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.always_ready.html" title="fn futures_util::future::always_ready">always_<wbr>ready</a></div><div class="desc docblock-short">Creates a future that is always immediately ready with a value.</div></li><li><div class="item-name"><a class="fn" href="fn.err.html" title="fn futures_util::future::err">err</a></div><div class="desc docblock-short">Create a future that is immediately ready with an error value.</div></li><li><div class="item-name"><a class="fn" href="fn.join.html" title="fn futures_util::future::join">join</a></div><div class="desc docblock-short">Joins the result of two futures, waiting for them both to complete.</div></li><li><div class="item-name"><a class="fn" href="fn.join3.html" title="fn futures_util::future::join3">join3</a></div><div class="desc docblock-short">Same as <a href="fn.join.html" title="fn futures_util::future::join"><code>join</code></a>, but with more futures.</div></li><li><div class="item-name"><a class="fn" href="fn.join4.html" title="fn futures_util::future::join4">join4</a></div><div class="desc docblock-short">Same as <a href="fn.join.html" title="fn futures_util::future::join"><code>join</code></a>, but with more futures.</div></li><li><div class="item-name"><a class="fn" href="fn.join5.html" title="fn futures_util::future::join5">join5</a></div><div class="desc docblock-short">Same as <a href="fn.join.html" title="fn futures_util::future::join"><code>join</code></a>, but with more futures.</div></li><li><div class="item-name"><a class="fn" href="fn.lazy.html" title="fn futures_util::future::lazy">lazy</a></div><div class="desc docblock-short">Creates a new future that allows delayed execution of a closure.</div></li><li><div class="item-name"><a class="fn" href="fn.maybe_done.html" title="fn futures_util::future::maybe_done">maybe_<wbr>done</a></div><div class="desc docblock-short">Wraps a future into a <code>MaybeDone</code></div></li><li><div class="item-name"><a class="fn" href="fn.ok.html" title="fn futures_util::future::ok">ok</a></div><div class="desc docblock-short">Create a future that is immediately ready with a success value.</div></li><li><div class="item-name"><a class="fn" href="fn.pending.html" title="fn futures_util::future::pending">pending</a></div><div class="desc docblock-short">Creates a future which never resolves, representing a computation that never
finishes.</div></li><li><div class="item-name"><a class="fn" href="fn.poll_fn.html" title="fn futures_util::future::poll_fn">poll_fn</a></div><div class="desc docblock-short">Creates a new future wrapping around a function returning <a href="https://doc.rust-lang.org/1.83.0/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll"><code>Poll</code></a>.</div></li><li><div class="item-name"><a class="fn" href="fn.poll_immediate.html" title="fn futures_util::future::poll_immediate">poll_<wbr>immediate</a></div><div class="desc docblock-short">Creates a future that is immediately ready with an Option of a value.
Specifically this means that <a href="https://doc.rust-lang.org/1.83.0/core/future/future/trait.Future.html#tymethod.poll" title="method core::future::future::Future::poll">poll</a> always returns <a href="https://doc.rust-lang.org/1.83.0/core/task/poll/enum.Poll.html#variant.Ready" title="variant core::task::poll::Poll::Ready">Poll::Ready</a>.</div></li><li><div class="item-name"><a class="fn" href="fn.ready.html" title="fn futures_util::future::ready">ready</a></div><div class="desc docblock-short">Creates a future that is immediately ready with a value.</div></li><li><div class="item-name"><a class="fn" href="fn.select.html" title="fn futures_util::future::select">select</a></div><div class="desc docblock-short">Waits for either one of two differently-typed futures to complete.</div></li><li><div class="item-name"><a class="fn" href="fn.try_join.html" title="fn futures_util::future::try_join">try_<wbr>join</a></div><div class="desc docblock-short">Joins the result of two futures, waiting for them both to complete or
for one to produce an error.</div></li><li><div class="item-name"><a class="fn" href="fn.try_join3.html" title="fn futures_util::future::try_join3">try_<wbr>join3</a></div><div class="desc docblock-short">Same as <a href="fn.try_join.html" title="fn futures_util::future::try_join"><code>try_join</code></a>, but with more futures.</div></li><li><div class="item-name"><a class="fn" href="fn.try_join4.html" title="fn futures_util::future::try_join4">try_<wbr>join4</a></div><div class="desc docblock-short">Same as <a href="fn.try_join.html" title="fn futures_util::future::try_join"><code>try_join</code></a>, but with more futures.</div></li><li><div class="item-name"><a class="fn" href="fn.try_join5.html" title="fn futures_util::future::try_join5">try_<wbr>join5</a></div><div class="desc docblock-short">Same as <a href="fn.try_join.html" title="fn futures_util::future::try_join"><code>try_join</code></a>, but with more futures.</div></li><li><div class="item-name"><a class="fn" href="fn.try_maybe_done.html" title="fn futures_util::future::try_maybe_done">try_<wbr>maybe_<wbr>done</a></div><div class="desc docblock-short">Wraps a future into a <code>TryMaybeDone</code></div></li><li><div class="item-name"><a class="fn" href="fn.try_select.html" title="fn futures_util::future::try_select">try_<wbr>select</a></div><div class="desc docblock-short">Waits for either one of two differently-typed futures to complete.</div></li></ul></section></div></main></body></html>