Replace internal PollExt trait with Poll inherent methods (#625)
Signed-off-by: Miguel Guarniz <mi9uel9@gmail.com>
This commit is contained in:
		
							
								
								
									
										41
									
								
								src/lib.rs
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								src/lib.rs
									
									
									
									
									
								
							| @@ -133,44 +133,3 @@ pub use crate::share::{FlowControl, Ping, PingPong, Pong, RecvStream, SendStream | |||||||
|  |  | ||||||
| #[cfg(feature = "unstable")] | #[cfg(feature = "unstable")] | ||||||
| pub use codec::{Codec, SendError, UserError}; | pub use codec::{Codec, SendError, UserError}; | ||||||
|  |  | ||||||
| use std::task::Poll; |  | ||||||
|  |  | ||||||
| // TODO: Get rid of this trait once https://github.com/rust-lang/rust/pull/63512 |  | ||||||
| // is stabilized. |  | ||||||
| trait PollExt<T, E> { |  | ||||||
|     /// Changes the success value of this `Poll` with the closure provided. |  | ||||||
|     fn map_ok_<U, F>(self, f: F) -> Poll<Option<Result<U, E>>> |  | ||||||
|     where |  | ||||||
|         F: FnOnce(T) -> U; |  | ||||||
|     /// Changes the error value of this `Poll` with the closure provided. |  | ||||||
|     fn map_err_<U, F>(self, f: F) -> Poll<Option<Result<T, U>>> |  | ||||||
|     where |  | ||||||
|         F: FnOnce(E) -> U; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| impl<T, E> PollExt<T, E> for Poll<Option<Result<T, E>>> { |  | ||||||
|     fn map_ok_<U, F>(self, f: F) -> Poll<Option<Result<U, E>>> |  | ||||||
|     where |  | ||||||
|         F: FnOnce(T) -> U, |  | ||||||
|     { |  | ||||||
|         match self { |  | ||||||
|             Poll::Ready(Some(Ok(t))) => Poll::Ready(Some(Ok(f(t)))), |  | ||||||
|             Poll::Ready(Some(Err(e))) => Poll::Ready(Some(Err(e))), |  | ||||||
|             Poll::Ready(None) => Poll::Ready(None), |  | ||||||
|             Poll::Pending => Poll::Pending, |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     fn map_err_<U, F>(self, f: F) -> Poll<Option<Result<T, U>>> |  | ||||||
|     where |  | ||||||
|         F: FnOnce(E) -> U, |  | ||||||
|     { |  | ||||||
|         match self { |  | ||||||
|             Poll::Ready(Some(Ok(t))) => Poll::Ready(Some(Ok(t))), |  | ||||||
|             Poll::Ready(Some(Err(e))) => Poll::Ready(Some(Err(f(e)))), |  | ||||||
|             Poll::Ready(None) => Poll::Ready(None), |  | ||||||
|             Poll::Pending => Poll::Pending, |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|   | |||||||
| @@ -12,7 +12,6 @@ use http::{HeaderMap, Request, Response}; | |||||||
| use std::task::{Context, Poll, Waker}; | use std::task::{Context, Poll, Waker}; | ||||||
| use tokio::io::AsyncWrite; | use tokio::io::AsyncWrite; | ||||||
|  |  | ||||||
| use crate::PollExt; |  | ||||||
| use std::sync::{Arc, Mutex}; | use std::sync::{Arc, Mutex}; | ||||||
| use std::{fmt, io}; | use std::{fmt, io}; | ||||||
|  |  | ||||||
| @@ -1282,7 +1281,7 @@ impl OpaqueStreamRef { | |||||||
|         me.actions |         me.actions | ||||||
|             .recv |             .recv | ||||||
|             .poll_pushed(cx, &mut stream) |             .poll_pushed(cx, &mut stream) | ||||||
|             .map_ok_(|(h, key)| { |             .map_ok(|(h, key)| { | ||||||
|                 me.refs += 1; |                 me.refs += 1; | ||||||
|                 let opaque_ref = |                 let opaque_ref = | ||||||
|                     OpaqueStreamRef::new(self.inner.clone(), &mut me.store.resolve(key)); |                     OpaqueStreamRef::new(self.inner.clone(), &mut me.store.resolve(key)); | ||||||
|   | |||||||
| @@ -5,7 +5,6 @@ use crate::proto::{self, WindowSize}; | |||||||
| use bytes::{Buf, Bytes}; | use bytes::{Buf, Bytes}; | ||||||
| use http::HeaderMap; | use http::HeaderMap; | ||||||
|  |  | ||||||
| use crate::PollExt; |  | ||||||
| use std::fmt; | use std::fmt; | ||||||
| #[cfg(feature = "stream")] | #[cfg(feature = "stream")] | ||||||
| use std::pin::Pin; | use std::pin::Pin; | ||||||
| @@ -307,8 +306,8 @@ impl<B: Buf> SendStream<B> { | |||||||
|     pub fn poll_capacity(&mut self, cx: &mut Context) -> Poll<Option<Result<usize, crate::Error>>> { |     pub fn poll_capacity(&mut self, cx: &mut Context) -> Poll<Option<Result<usize, crate::Error>>> { | ||||||
|         self.inner |         self.inner | ||||||
|             .poll_capacity(cx) |             .poll_capacity(cx) | ||||||
|             .map_ok_(|w| w as usize) |             .map_ok(|w| w as usize) | ||||||
|             .map_err_(Into::into) |             .map_err(Into::into) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /// Sends a single data frame to the remote peer. |     /// Sends a single data frame to the remote peer. | ||||||
| @@ -403,7 +402,7 @@ impl RecvStream { | |||||||
|  |  | ||||||
|     /// Poll for the next data frame. |     /// Poll for the next data frame. | ||||||
|     pub fn poll_data(&mut self, cx: &mut Context<'_>) -> Poll<Option<Result<Bytes, crate::Error>>> { |     pub fn poll_data(&mut self, cx: &mut Context<'_>) -> Poll<Option<Result<Bytes, crate::Error>>> { | ||||||
|         self.inner.inner.poll_data(cx).map_err_(Into::into) |         self.inner.inner.poll_data(cx).map_err(Into::into) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     #[doc(hidden)] |     #[doc(hidden)] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user