@@ -15,27 +15,22 @@ use core::marker::Unpin;
15
15
use core:: pin:: Pin ;
16
16
use core:: task:: { Context , Poll , RawWaker , RawWakerVTable , Waker } ;
17
17
18
- pub ( crate ) enum ResultFuture < F : Future < Output = Result < ( ) , E > > , E : Copy + Unpin > {
18
+ pub ( crate ) enum ResultFuture < F : Future < Output = Result < ( ) , E > > , E : Unpin > {
19
19
Pending ( F ) ,
20
20
Ready ( Result < ( ) , E > ) ,
21
21
}
22
22
23
- pub ( crate ) struct MultiResultFuturePoller <
24
- F : Future < Output = Result < ( ) , E > > + Unpin ,
25
- E : Copy + Unpin ,
26
- > {
23
+ pub ( crate ) struct MultiResultFuturePoller < F : Future < Output = Result < ( ) , E > > + Unpin , E : Unpin > {
27
24
futures_state : Vec < ResultFuture < F , E > > ,
28
25
}
29
26
30
- impl < F : Future < Output = Result < ( ) , E > > + Unpin , E : Copy + Unpin > MultiResultFuturePoller < F , E > {
27
+ impl < F : Future < Output = Result < ( ) , E > > + Unpin , E : Unpin > MultiResultFuturePoller < F , E > {
31
28
pub fn new ( futures_state : Vec < ResultFuture < F , E > > ) -> Self {
32
29
Self { futures_state }
33
30
}
34
31
}
35
32
36
- impl < F : Future < Output = Result < ( ) , E > > + Unpin , E : Copy + Unpin > Future
37
- for MultiResultFuturePoller < F , E >
38
- {
33
+ impl < F : Future < Output = Result < ( ) , E > > + Unpin , E : Unpin > Future for MultiResultFuturePoller < F , E > {
39
34
type Output = Vec < Result < ( ) , E > > ;
40
35
fn poll ( self : Pin < & mut Self > , cx : & mut Context < ' _ > ) -> Poll < Vec < Result < ( ) , E > > > {
41
36
let mut have_pending_futures = false ;
0 commit comments