forked from mirror/async-std
commit
837604b833
7 changed files with 11 additions and 11 deletions
|
@ -4,11 +4,11 @@ Rust has two kinds of types commonly referred to as `Future`:
|
|||
|
||||
|
||||
- the first is `std::future::Future` from Rust’s [standard library](https://doc.rust-lang.org/std/future/trait.Future.html).
|
||||
- the second is `futures::future::Future` from the [futures-rs crate](https://docs.rs/futures-preview/0.3.0-alpha.17/futures/prelude/trait.Future.html), currently released as `futures-preview`.
|
||||
- the second is `futures::future::Future` from the [futures-rs crate](https://docs.rs/futures/0.3/futures/prelude/trait.Future.html).
|
||||
|
||||
The future defined in the [futures-rs](https://docs.rs/futures-preview/0.3.0-alpha.17/futures/prelude/trait.Future.html) crate was the original implementation of the type. To enable the `async/await` syntax, the core Future trait was moved into Rust’s standard library and became `std::future::Future`. In some sense, the `std::future::Future` can be seen as a minimal subset of `futures::future::Future`.
|
||||
The future defined in the [futures-rs](https://docs.rs/futures/0.3/futures/prelude/trait.Future.html) crate was the original implementation of the type. To enable the `async/await` syntax, the core Future trait was moved into Rust’s standard library and became `std::future::Future`. In some sense, the `std::future::Future` can be seen as a minimal subset of `futures::future::Future`.
|
||||
|
||||
It is critical to understand the difference between `std::future::Future` and `futures::future::Future`, and the approach that `async-std` takes towards them. In itself, `std::future::Future` is not something you want to interact with as a user—except by calling `.await` on it. The inner workings of `std::future::Future` are mostly of interest to people implementing `Future`. Make no mistake—this is very useful! Most of the functionality that used to be defined on `Future` itself has been moved to an extension trait called [`FuturesExt`](https://docs.rs/futures-preview/0.3.0-alpha.17/futures/future/trait.FutureExt.html). From this information, you might be able to infer that the `futures` library serves as an extension to the core Rust async features.
|
||||
It is critical to understand the difference between `std::future::Future` and `futures::future::Future`, and the approach that `async-std` takes towards them. In itself, `std::future::Future` is not something you want to interact with as a user—except by calling `.await` on it. The inner workings of `std::future::Future` are mostly of interest to people implementing `Future`. Make no mistake—this is very useful! Most of the functionality that used to be defined on `Future` itself has been moved to an extension trait called [`FuturesExt`](https://docs.rs/futures/0.3/futures/future/trait.FutureExt.html). From this information, you might be able to infer that the `futures` library serves as an extension to the core Rust async features.
|
||||
|
||||
In the same tradition as `futures`, `async-std` re-exports the core `std::future::Future` type. You can actively opt into the extensions provided by the `futures-preview` crate by adding it to your `Cargo.toml` and importing `FuturesExt`.
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ extension_trait! {
|
|||
|
||||
[`std::io::BufRead`]: https://doc.rust-lang.org/std/io/trait.BufRead.html
|
||||
[`futures::io::AsyncBufRead`]:
|
||||
https://docs.rs/futures-preview/0.3.0-alpha.17/futures/io/trait.AsyncBufRead.html
|
||||
https://docs.rs/futures/0.3/futures/io/trait.AsyncBufRead.html
|
||||
[provided methods]: #provided-methods
|
||||
[`BufReadExt`]: ../io/prelude/trait.BufReadExt.html
|
||||
[prelude]: ../prelude/index.html
|
||||
|
|
|
@ -40,7 +40,7 @@ extension_trait! {
|
|||
|
||||
[`std::io::Read`]: https://doc.rust-lang.org/std/io/trait.Read.html
|
||||
[`futures::io::AsyncRead`]:
|
||||
https://docs.rs/futures-preview/0.3.0-alpha.17/futures/io/trait.AsyncRead.html
|
||||
https://docs.rs/futures/0.3/futures/io/trait.AsyncRead.html
|
||||
[`poll_read`]: #tymethod.poll_read
|
||||
[`poll_read_vectored`]: #method.poll_read_vectored
|
||||
[`ReadExt`]: ../io/prelude/trait.ReadExt.html
|
||||
|
|
|
@ -27,7 +27,7 @@ extension_trait! {
|
|||
|
||||
[`std::io::Seek`]: https://doc.rust-lang.org/std/io/trait.Seek.html
|
||||
[`futures::io::AsyncSeek`]:
|
||||
https://docs.rs/futures-preview/0.3.0-alpha.17/futures/io/trait.AsyncSeek.html
|
||||
https://docs.rs/futures/0.3/futures/io/trait.AsyncSeek.html
|
||||
[provided methods]: #provided-methods
|
||||
[`SeekExt`]: ../io/prelude/trait.SeekExt.html
|
||||
[prelude]: ../prelude/index.html
|
||||
|
|
|
@ -35,7 +35,7 @@ extension_trait! {
|
|||
|
||||
[`std::io::Write`]: https://doc.rust-lang.org/std/io/trait.Write.html
|
||||
[`futures::io::AsyncWrite`]:
|
||||
https://docs.rs/futures-preview/0.3.0-alpha.17/futures/io/trait.AsyncWrite.html
|
||||
https://docs.rs/futures/0.3/futures/io/trait.AsyncWrite.html
|
||||
[`poll_write`]: #tymethod.poll_write
|
||||
[`poll_write_vectored`]: #method.poll_write_vectored
|
||||
[`poll_flush`]: #tymethod.poll_flush
|
||||
|
|
|
@ -22,9 +22,9 @@ use crate::task::{spawn_blocking, Context, Poll};
|
|||
/// [`connect`]: struct.TcpStream.html#method.connect
|
||||
/// [accepting]: struct.TcpListener.html#method.accept
|
||||
/// [listener]: struct.TcpListener.html
|
||||
/// [`AsyncRead`]: https://docs.rs/futures-preview/0.3.0-alpha.17/futures/io/trait.AsyncRead.html
|
||||
/// [`AsyncWrite`]: https://docs.rs/futures-preview/0.3.0-alpha.17/futures/io/trait.AsyncWrite.html
|
||||
/// [`futures::io`]: https://docs.rs/futures-preview/0.3.0-alpha.17/futures/io/index.html
|
||||
/// [`AsyncRead`]: https://docs.rs/futures/0.3/futures/io/trait.AsyncRead.html
|
||||
/// [`AsyncWrite`]: https://docs.rs/futures/0.3/futures/io/trait.AsyncWrite.html
|
||||
/// [`futures::io`]: https://docs.rs/futures/0.3/futures/io/index.html
|
||||
/// [`shutdown`]: struct.TcpStream.html#method.shutdown
|
||||
/// [`std::net::TcpStream`]: https://doc.rust-lang.org/std/net/struct.TcpStream.html
|
||||
///
|
||||
|
|
|
@ -157,7 +157,7 @@ extension_trait! {
|
|||
|
||||
[`std::iter::Iterator`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html
|
||||
[`futures::stream::Stream`]:
|
||||
https://docs.rs/futures-preview/0.3.0-alpha.17/futures/stream/trait.Stream.html
|
||||
https://docs.rs/futures/0.3/futures/stream/trait.Stream.html
|
||||
[provided methods]: #provided-methods
|
||||
[`StreamExt`]: ../prelude/trait.StreamExt.html
|
||||
[prelude]: ../prelude/index.html
|
||||
|
|
Loading…
Reference in a new issue