diff options
Diffstat (limited to 'src/stream/futures_unordered/mod.rs')
-rw-r--r-- | src/stream/futures_unordered/mod.rs | 29 |
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); + } + } +} |