aboutsummaryrefslogtreecommitdiff
path: root/src/stream/futures_unordered/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/stream/futures_unordered/mod.rs')
-rw-r--r--src/stream/futures_unordered/mod.rs29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/stream/futures_unordered/mod.rs b/src/stream/futures_unordered/mod.rs
index 5d93a64..2b7d704 100644
--- a/src/stream/futures_unordered/mod.rs
+++ b/src/stream/futures_unordered/mod.rs
@@ -121,7 +121,13 @@ impl LocalSpawn for FuturesUnordered<LocalFutureObj<'_, ()>> {
// notifiaction is received, the task will only be inserted into the ready to
// run queue if it isn't inserted already.
-impl<Fut: Future> FuturesUnordered<Fut> {
+impl<Fut> Default for FuturesUnordered<Fut> {
+ fn default() -> FuturesUnordered<Fut> {
+ FuturesUnordered::new()
+ }
+}
+
+impl<Fut> FuturesUnordered<Fut> {
/// Constructs a new, empty [`FuturesUnordered`].
///
/// The returned [`FuturesUnordered`] does not contain any futures.
@@ -151,15 +157,7 @@ impl<Fut: Future> FuturesUnordered<Fut> {
is_terminated: AtomicBool::new(false),
}
}
-}
-
-impl<Fut: Future> Default for FuturesUnordered<Fut> {
- fn default() -> FuturesUnordered<Fut> {
- FuturesUnordered::new()
- }
-}
-impl<Fut> FuturesUnordered<Fut> {
/// Returns the number of futures contained in the set.
///
/// This represents the total number of in-flight futures.
@@ -607,7 +605,7 @@ impl<Fut> Drop for FuturesUnordered<Fut> {
}
}
-impl<Fut: Future> FromIterator<Fut> for FuturesUnordered<Fut> {
+impl<Fut> FromIterator<Fut> for FuturesUnordered<Fut> {
fn from_iter<I>(iter: I) -> Self
where
I: IntoIterator<Item = Fut>,
@@ -622,3 +620,14 @@ impl<Fut: Future> FusedStream for FuturesUnordered<Fut> {
self.is_terminated.load(Relaxed)
}
}
+
+impl<Fut> Extend<Fut> for FuturesUnordered<Fut> {
+ fn extend<I>(&mut self, iter: I)
+ where
+ I: IntoIterator<Item = Fut>,
+ {
+ for item in iter.into_iter() {
+ self.push(item);
+ }
+ }
+}