* Fix unexpected `cfg` condition name: ... warnings introduced in Rust 1.80
See https://blog.rust-lang.org/2024/05/06/check-cfg.html
* io_slice_advance feature is now stable
* clippy: enable missing_const_for_thread_local lint, now checks for MSRV (see https://github.com/rust-lang/rust-clippy/issues/12404)
* clippy: fixes for "doc list item without indentation" lint
* clippy: ignore incorrect "first doc comment paragraph is too long" warning
see https://github.com/rust-lang/rust-clippy/issues/13315
* clippy: allow long first paragraphs in select... fn doc comments
* use workspace level setting to ignore error about the futures_sanitizer unexpected config
This commit includes the introduction of a `FutureResult` trait along
the lines of the RFC (with some slight revisions).
It tackles all the "basic" combinators, but leaves off `shared`,
`select`, and `join` for the moment.
Migrates the futures-core crate to the 0.3 design currently under
RFC consideration. In particular:
- Introduces `Pin` throughout
- Removes the `Error` associated type
- Removes task-local data
futures-stable provides adapters to work with futures that contain
internal self-references.
futures-stable only works on nightly. A new nightly feature is
added to futures to turn futures-stable on. The futures-stable
items are re-exported from the `stable` submodule.
Also on nightly only, Future and Stream are implemented for
PinBoxes of futures and streams.
* Add a `Future::shared` method for creating a future that can be shared
amongst threads by cloning the future itself. All derivative futures
will resolve to the same value once the original future has been
resolved.
* Add a `FutureFrom` trait for future-based conversion
* Fix a wakeup bug in `Receiver::close`
* Add `future::poll_fn` for quickly adapting a `Poll`-based function to
a future.
* Add an `Either` enum with two branches to easily create one future
type based on two different futures created on two branches of control
flow.
* Remove the `'static` bound on `Unpark`
* Optimize `send_all` and `forward` to send as many items as possible
before calling `poll_complete`.
* Unify the return types of the `ok`, `err`, and `result` future to
assist returning different varieties in different branches of a function.
* Add `CpuFuture::forget` to allow the computation to continue running
after a drop.
* Add a `stream::futures_unordered` combinator to turn a list of futures
into a stream representing their order of completion.