Rollup merge of #91192 - r00ster91:futuredocs, r=GuillaumeGomez

Some improvements to the async docs

The goal here is to make the docs overall a little bit more comprehensive and add more links between the things.

One thing that's not working yet is the links to the keywords. Somehow I couldn't get them to work.

r? ````@GuillaumeGomez```` do you know how I could get the keyword links to work?
This commit is contained in:
Matthias Krüger 2022-02-21 19:36:46 +01:00 committed by GitHub
commit 12705b4700
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 8 deletions

View file

@ -5,7 +5,7 @@ use crate::ops;
use crate::pin::Pin;
use crate::task::{Context, Poll};
/// A future represents an asynchronous computation.
/// A future represents an asynchronous computation obtained by use of [`async`].
///
/// A future is a value that might not have finished computing yet. This kind of
/// "asynchronous value" makes it possible for a thread to continue doing useful
@ -23,6 +23,7 @@ use crate::task::{Context, Poll};
/// When using a future, you generally won't call `poll` directly, but instead
/// `.await` the value.
///
/// [`async`]: ../../std/keyword.async.html
/// [`Waker`]: crate::task::Waker
#[doc(notable_trait)]
#[must_use = "futures do nothing unless you `.await` or poll them"]

View file

@ -1,6 +1,13 @@
#![stable(feature = "futures_api", since = "1.36.0")]
//! Asynchronous values.
//! Asynchronous basic functionality.
//!
//! Please see the fundamental [`async`] and [`await`] keywords and the [async book]
//! for more information on asynchronous programming in Rust.
//!
//! [`async`]: ../../std/keyword.async.html
//! [`await`]: ../../std/keyword.await.html
//! [async book]: https://rust-lang.github.io/async-book/
use crate::{
ops::{Generator, GeneratorState},

View file

@ -2203,17 +2203,18 @@ mod where_keyword {}
///
/// Use `async` in front of `fn`, `closure`, or a `block` to turn the marked code into a `Future`.
/// As such the code will not be run immediately, but will only be evaluated when the returned
/// future is `.await`ed.
/// future is [`.await`]ed.
///
/// We have written an [async book] detailing async/await and trade-offs compared to using threads.
/// We have written an [async book] detailing `async`/`await` and trade-offs compared to using threads.
///
/// ## Editions
///
/// `async` is a keyword from the 2018 edition onwards.
///
/// It is available for use in stable rust from version 1.39 onwards.
/// It is available for use in stable Rust from version 1.39 onwards.
///
/// [`Future`]: future::Future
/// [`.await`]: ../std/keyword.await.html
/// [async book]: https://rust-lang.github.io/async-book/
mod async_keyword {}
@ -2221,19 +2222,20 @@ mod async_keyword {}
//
/// Suspend execution until the result of a [`Future`] is ready.
///
/// `.await`ing a future will suspend the current function's execution until the `executor`
/// `.await`ing a future will suspend the current function's execution until the executor
/// has run the future to completion.
///
/// Read the [async book] for details on how async/await and executors work.
/// Read the [async book] for details on how [`async`]/`await` and executors work.
///
/// ## Editions
///
/// `await` is a keyword from the 2018 edition onwards.
///
/// It is available for use in stable rust from version 1.39 onwards.
/// It is available for use in stable Rust from version 1.39 onwards.
///
/// [`Future`]: future::Future
/// [async book]: https://rust-lang.github.io/async-book/
/// [`async`]: ../std/keyword.async.html
mod await_keyword {}
#[doc(keyword = "dyn")]