summaryrefslogtreecommitdiffstats
path: root/vendor/futures-util/src/future/try_select.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/futures-util/src/future/try_select.rs')
-rw-r--r--vendor/futures-util/src/future/try_select.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/vendor/futures-util/src/future/try_select.rs b/vendor/futures-util/src/future/try_select.rs
index 4d0b7ff13..bc282f7db 100644
--- a/vendor/futures-util/src/future/try_select.rs
+++ b/vendor/futures-util/src/future/try_select.rs
@@ -12,6 +12,9 @@ pub struct TrySelect<A, B> {
impl<A: Unpin, B: Unpin> Unpin for TrySelect<A, B> {}
+type EitherOk<A, B> = Either<(<A as TryFuture>::Ok, B), (<B as TryFuture>::Ok, A)>;
+type EitherErr<A, B> = Either<(<A as TryFuture>::Error, B), (<B as TryFuture>::Error, A)>;
+
/// Waits for either one of two differently-typed futures to complete.
///
/// This function will return a new future which awaits for either one of both
@@ -52,10 +55,9 @@ where
A: TryFuture + Unpin,
B: TryFuture + Unpin,
{
- super::assert_future::<
- Result<Either<(A::Ok, B), (B::Ok, A)>, Either<(A::Error, B), (B::Error, A)>>,
- _,
- >(TrySelect { inner: Some((future1, future2)) })
+ super::assert_future::<Result<EitherOk<A, B>, EitherErr<A, B>>, _>(TrySelect {
+ inner: Some((future1, future2)),
+ })
}
impl<A: Unpin, B: Unpin> Future for TrySelect<A, B>
@@ -63,8 +65,7 @@ where
A: TryFuture,
B: TryFuture,
{
- #[allow(clippy::type_complexity)]
- type Output = Result<Either<(A::Ok, B), (B::Ok, A)>, Either<(A::Error, B), (B::Error, A)>>;
+ type Output = Result<EitherOk<A, B>, EitherErr<A, B>>;
fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
let (mut a, mut b) = self.inner.take().expect("cannot poll Select twice");