diff --git a/futures-util/src/stream/futures_ordered.rs b/futures-util/src/stream/futures_ordered.rs index 2cc144e81d..460b352676 100644 --- a/futures-util/src/stream/futures_ordered.rs +++ b/futures-util/src/stream/futures_ordered.rs @@ -169,6 +169,17 @@ impl FuturesOrdered { self.next_outgoing_index -= 1; self.in_progress_queue.push(wrapped); } + + /// Clear the whole `FuturesOrdered` queue. + /// + /// This function clears the pending futures and the queued outputs + /// to make it fully empty. + pub fn clear(&mut self) { + self.in_progress_queue.clear(); + self.queued_outputs.clear(); + self.next_incoming_index = 0; + self.next_outgoing_index = 0; + } } impl Default for FuturesOrdered {