mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-23 14:51:34 +00:00
Fix Transport::and_then (#690)
This commit is contained in:
@ -149,16 +149,18 @@ where
|
|||||||
type Error = T::Error;
|
type Error = T::Error;
|
||||||
|
|
||||||
fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
|
fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
|
||||||
let future = match self.inner {
|
loop {
|
||||||
Either::A(ref mut future) => {
|
let future = match self.inner {
|
||||||
let item = try_ready!(future.poll());
|
Either::A(ref mut future) => {
|
||||||
let (f, a) = self.args.take().expect("AndThenFuture has already finished.");
|
let item = try_ready!(future.poll());
|
||||||
f(item, a).into_future()
|
let (f, a) = self.args.take().expect("AndThenFuture has already finished.");
|
||||||
}
|
f(item, a).into_future()
|
||||||
Either::B(ref mut future) => return future.poll()
|
}
|
||||||
};
|
Either::B(ref mut future) => return future.poll()
|
||||||
self.inner = Either::B(future);
|
};
|
||||||
Ok(Async::NotReady)
|
|
||||||
|
self.inner = Either::B(future);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user