@@ -15,27 +15,22 @@ use core::marker::Unpin;
1515use core:: pin:: Pin ;
1616use core:: task:: { Context , Poll , RawWaker , RawWakerVTable , Waker } ;
1717
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 > {
1919 Pending ( F ) ,
2020 Ready ( Result < ( ) , E > ) ,
2121}
2222
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 > {
2724 futures_state : Vec < ResultFuture < F , E > > ,
2825}
2926
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 > {
3128 pub fn new ( futures_state : Vec < ResultFuture < F , E > > ) -> Self {
3229 Self { futures_state }
3330 }
3431}
3532
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 > {
3934 type Output = Vec < Result < ( ) , E > > ;
4035 fn poll ( self : Pin < & mut Self > , cx : & mut Context < ' _ > ) -> Poll < Vec < Result < ( ) , E > > > {
4136 let mut have_pending_futures = false ;
0 commit comments