Skip to content

Commit

Permalink
Add doclinks to FuturesOrdered's docs.
Browse files Browse the repository at this point in the history
  • Loading branch information
zachs18 authored and taiki-e committed Oct 9, 2023
1 parent 76af9df commit 9186582
Showing 1 changed file with 22 additions and 22 deletions.
44 changes: 22 additions & 22 deletions futures-util/src/stream/futures_ordered.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,29 +65,29 @@ where
///
/// Futures are pushed into this queue and their realized values are yielded in
/// order. This structure is optimized to manage a large number of futures.
/// Futures managed by `FuturesOrdered` will only be polled when they generate
/// Futures managed by [`FuturesOrdered`] will only be polled when they generate
/// notifications. This reduces the required amount of work needed to coordinate
/// large numbers of futures.
///
/// When a `FuturesOrdered` is first created, it does not contain any futures.
/// Calling `poll_next` in this state will result in `Poll::Ready(None))` to be
/// returned. Futures are submitted to the queue using `push_back` (or `push_front`); however, the
/// future will **not** be polled at this point. `FuturesOrdered` will only
/// poll managed futures when `FuturesOrdered::poll_next` is called. As such, it
/// is important to call `poll_next` after pushing new futures.
/// When a [`FuturesOrdered`] is first created, it does not contain any futures.
/// Calling [`poll_next`](FuturesOrdered::poll_next) in this state will result in [`Poll::Ready(None)`](Poll::Ready) to be
/// returned. Futures are submitted to the queue using [`push_back`](FuturesOrdered::push_back) (or [`push_front`](FuturesOrdered::push_front)); however, the
/// future will **not** be polled at this point. [`FuturesOrdered`] will only
/// poll managed futures when [`FuturesOrdered::poll_next`] is called. As such, it
/// is important to call [`poll_next`](FuturesOrdered::poll_next) after pushing new futures.
///
/// If `FuturesOrdered::poll_next` returns `Poll::Ready(None)` this means that
/// If [`FuturesOrdered::poll_next`] returns [`Poll::Ready(None)`](Poll::Ready) this means that
/// the queue is currently not managing any futures. A future may be submitted
/// to the queue at a later time. At that point, a call to
/// `FuturesOrdered::poll_next` will either return the future's resolved value
/// **or** `Poll::Pending` if the future has not yet completed. When
/// multiple futures are submitted to the queue, `FuturesOrdered::poll_next` will
/// return `Poll::Pending` until the first future completes, even if
/// [`FuturesOrdered::poll_next`] will either return the future's resolved value
/// **or** [`Poll::Pending`] if the future has not yet completed. When
/// multiple futures are submitted to the queue, [`FuturesOrdered::poll_next`] will
/// return [`Poll::Pending`] until the first future completes, even if
/// some of the later futures have already completed.
///
/// Note that you can create a ready-made `FuturesOrdered` via the
/// Note that you can create a ready-made [`FuturesOrdered`] via the
/// [`collect`](Iterator::collect) method, or you can start with an empty queue
/// with the `FuturesOrdered::new` constructor.
/// with the [`FuturesOrdered::new`] constructor.
///
/// This type is only available when the `std` or `alloc` feature of this
/// library is activated, and it is activated by default.
Expand All @@ -104,8 +104,8 @@ impl<T: Future> Unpin for FuturesOrdered<T> {}
impl<Fut: Future> FuturesOrdered<Fut> {
/// Constructs a new, empty `FuturesOrdered`
///
/// The returned `FuturesOrdered` does not contain any futures and, in this
/// state, `FuturesOrdered::poll_next` will return `Poll::Ready(None)`.
/// The returned [`FuturesOrdered`] does not contain any futures and, in this
/// state, [`FuturesOrdered::poll_next`] will return [`Poll::Ready(None)`](Poll::Ready).
pub fn new() -> Self {
Self {
in_progress_queue: FuturesUnordered::new(),
Expand All @@ -132,8 +132,8 @@ impl<Fut: Future> FuturesOrdered<Fut> {
/// Push a future into the queue.
///
/// This function submits the given future to the internal set for managing.
/// This function will not call `poll` on the submitted future. The caller
/// must ensure that `FuturesOrdered::poll_next` is called in order to receive
/// This function will not call [`poll`](Future::poll) on the submitted future. The caller
/// must ensure that [`FuturesOrdered::poll_next`] is called in order to receive
/// task notifications.
#[deprecated(note = "use `push_back` instead")]
pub fn push(&mut self, future: Fut) {
Expand All @@ -143,8 +143,8 @@ impl<Fut: Future> FuturesOrdered<Fut> {
/// Pushes a future to the back of the queue.
///
/// This function submits the given future to the internal set for managing.
/// This function will not call `poll` on the submitted future. The caller
/// must ensure that `FuturesOrdered::poll_next` is called in order to receive
/// This function will not call [`poll`](Future::poll) on the submitted future. The caller
/// must ensure that [`FuturesOrdered::poll_next`] is called in order to receive
/// task notifications.
pub fn push_back(&mut self, future: Fut) {
let wrapped = OrderWrapper { data: future, index: self.next_incoming_index };
Expand All @@ -155,8 +155,8 @@ impl<Fut: Future> FuturesOrdered<Fut> {
/// Pushes a future to the front of the queue.
///
/// This function submits the given future to the internal set for managing.
/// This function will not call `poll` on the submitted future. The caller
/// must ensure that `FuturesOrdered::poll_next` is called in order to receive
/// This function will not call [`poll`](Future::poll) on the submitted future. The caller
/// must ensure that [`FuturesOrdered::poll_next`] is called in order to receive
/// task notifications. This future will be the next future to be returned
/// complete.
pub fn push_front(&mut self, future: Fut) {
Expand Down

0 comments on commit 9186582

Please sign in to comment.