Skip to content

Commit f60994a

Browse files
refactor: reduce dependency on futures-util
1 parent 621d8e4 commit f60994a

File tree

13 files changed

+26
-37
lines changed

13 files changed

+26
-37
lines changed

src/body/incoming.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::fmt;
22
#[cfg(all(feature = "http1", any(feature = "client", feature = "server")))]
33
use std::future::Future;
44
use std::pin::Pin;
5-
use std::task::{Context, Poll};
5+
use std::task::{ready, Context, Poll};
66

77
use bytes::Bytes;
88
#[cfg(all(feature = "http1", any(feature = "client", feature = "server")))]
@@ -11,7 +11,6 @@ use futures_channel::{mpsc, oneshot};
1111
any(feature = "http1", feature = "http2"),
1212
any(feature = "client", feature = "server")
1313
))]
14-
use futures_util::ready;
1514
#[cfg(all(feature = "http1", any(feature = "client", feature = "server")))]
1615
use futures_util::{stream::FusedStream, Stream}; // for mpsc::Receiver
1716
#[cfg(all(feature = "http1", any(feature = "client", feature = "server")))]
@@ -368,7 +367,7 @@ impl Sender {
368367

369368
#[cfg(test)]
370369
async fn ready(&mut self) -> crate::Result<()> {
371-
futures_util::future::poll_fn(|cx| self.poll_ready(cx)).await
370+
std::future::poll_fn(|cx| self.poll_ready(cx)).await
372371
}
373372

374373
/// Send data on data channel when it is ready.

src/client/conn/http1.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ use std::error::Error as StdError;
44
use std::fmt;
55
use std::future::Future;
66
use std::pin::Pin;
7-
use std::task::{Context, Poll};
7+
use std::task::{ready, Context, Poll};
88

99
use crate::rt::{Read, Write};
1010
use bytes::Bytes;
11-
use futures_util::ready;
1211
use http::{Request, Response};
1312
use httparse::ParserConfig;
1413

@@ -92,7 +91,7 @@ where
9291
/// instead run `into_parts`. This is a convenience wrapper over `poll_without_shutdown`.
9392
pub async fn without_shutdown(self) -> crate::Result<Parts<T>> {
9493
let mut conn = Some(self);
95-
futures_util::future::poll_fn(move |cx| -> Poll<crate::Result<Parts<T>>> {
94+
std::future::poll_fn(move |cx| -> Poll<crate::Result<Parts<T>>> {
9695
ready!(conn.as_mut().unwrap().poll_without_shutdown(cx))?;
9796
Poll::Ready(Ok(conn.take().unwrap().into_parts()))
9897
})
@@ -148,7 +147,7 @@ impl<B> SendRequest<B> {
148147
///
149148
/// If the associated connection is closed, this returns an Error.
150149
pub async fn ready(&mut self) -> crate::Result<()> {
151-
futures_util::future::poll_fn(|cx| self.poll_ready(cx)).await
150+
std::future::poll_fn(|cx| self.poll_ready(cx)).await
152151
}
153152

154153
/// Checks if the connection is currently ready to send a request.

src/client/conn/http2.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@ use std::future::Future;
66
use std::marker::PhantomData;
77
use std::pin::Pin;
88
use std::sync::Arc;
9-
use std::task::{Context, Poll};
9+
use std::task::{ready, Context, Poll};
1010
use std::time::Duration;
1111

1212
use crate::rt::{Read, Write};
13-
use futures_util::ready;
1413
use http::{Request, Response};
1514

1615
use super::super::dispatch::{self, TrySendError};
@@ -99,7 +98,7 @@ impl<B> SendRequest<B> {
9998
///
10099
/// If the associated connection is closed, this returns an Error.
101100
pub async fn ready(&mut self) -> crate::Result<()> {
102-
futures_util::future::poll_fn(|cx| self.poll_ready(cx)).await
101+
std::future::poll_fn(|cx| self.poll_ready(cx)).await
103102
}
104103

105104
/// Checks if the connection is currently ready to send a request.

src/proto/h1/conn.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ use std::future::Future;
44
use std::io;
55
use std::marker::{PhantomData, Unpin};
66
use std::pin::Pin;
7-
use std::task::{Context, Poll};
7+
use std::task::{ready, Context, Poll};
88
#[cfg(feature = "server")]
99
use std::time::{Duration, Instant};
1010

1111
use crate::rt::{Read, Write};
1212
use bytes::{Buf, Bytes};
13-
use futures_util::ready;
1413
use http::header::{HeaderValue, CONNECTION, TE};
1514
use http::{HeaderMap, Method, Version};
1615
use http_body::Frame;
@@ -1174,7 +1173,7 @@ mod tests {
11741173
.unwrap();
11751174

11761175
b.iter(|| {
1177-
rt.block_on(futures_util::future::poll_fn(|cx| {
1176+
rt.block_on(std::future::poll_fn(|cx| {
11781177
match conn.poll_read_head(cx) {
11791178
Poll::Ready(Some(Ok(x))) => {
11801179
::test::black_box(&x);

src/proto/h1/decode.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
use std::error::Error as StdError;
22
use std::fmt;
33
use std::io;
4-
use std::task::{Context, Poll};
4+
use std::task::{ready, Context, Poll};
55

66
use bytes::{BufMut, Bytes, BytesMut};
7-
use futures_util::ready;
87
use http::{HeaderMap, HeaderName, HeaderValue};
98
use http_body::Frame;
109

@@ -244,7 +243,7 @@ impl Decoder {
244243

245244
#[cfg(test)]
246245
async fn decode_fut<R: MemRead>(&mut self, body: &mut R) -> Result<Frame<Bytes>, io::Error> {
247-
futures_util::future::poll_fn(move |cx| self.decode(cx, body)).await
246+
std::future::poll_fn(move |cx| self.decode(cx, body)).await
248247
}
249248
}
250249

@@ -746,7 +745,7 @@ mod tests {
746745
let mut ext_cnt = 0;
747746
let mut trailers_cnt = 0;
748747
loop {
749-
let result = futures_util::future::poll_fn(|cx| {
748+
let result = std::future::poll_fn(|cx| {
750749
state.step(
751750
cx,
752751
rdr,
@@ -776,7 +775,7 @@ mod tests {
776775
let mut ext_cnt = 0;
777776
let mut trailers_cnt = 0;
778777
loop {
779-
let result = futures_util::future::poll_fn(|cx| {
778+
let result = std::future::poll_fn(|cx| {
780779
state.step(
781780
cx,
782781
rdr,

src/proto/h1/dispatch.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ use std::{
33
future::Future,
44
marker::Unpin,
55
pin::Pin,
6-
task::{Context, Poll},
6+
task::{ready, Context, Poll},
77
};
88

99
use crate::rt::{Read, Write};
1010
use bytes::{Buf, Bytes};
11-
use futures_util::ready;
1211
use http::Request;
1312

1413
use super::{Http1Transaction, Wants};

src/proto/h1/io.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ use std::cmp;
22
use std::fmt;
33
use std::io::{self, IoSlice};
44
use std::pin::Pin;
5-
use std::task::{Context, Poll};
5+
use std::task::{ready, Context, Poll};
66

77
use crate::rt::{Read, ReadBuf, Write};
88
use bytes::{Buf, BufMut, Bytes, BytesMut};
9-
use futures_util::ready;
109

1110
use super::{Http1Transaction, ParseContext, ParsedMessage};
1211
use crate::common::buf::BufList;
@@ -325,7 +324,7 @@ where
325324

326325
#[cfg(test)]
327326
fn flush(&mut self) -> impl std::future::Future<Output = io::Result<()>> + '_ {
328-
futures_util::future::poll_fn(move |cx| self.poll_flush(cx))
327+
std::future::poll_fn(move |cx| self.poll_flush(cx))
329328
}
330329
}
331330

@@ -668,7 +667,7 @@ mod tests {
668667
// // First, let's just check that the Mock would normally return an
669668
// // error on an unexpected write, even if the buffer is empty...
670669
// let mut mock = Mock::new().build();
671-
// futures_util::future::poll_fn(|cx| {
670+
// std::future::poll_fn(|cx| {
672671
// Pin::new(&mut mock).poll_write_buf(cx, &mut Cursor::new(&[]))
673672
// })
674673
// .await
@@ -700,7 +699,7 @@ mod tests {
700699

701700
// We expect a `parse` to be not ready, and so can't await it directly.
702701
// Rather, this `poll_fn` will wrap the `Poll` result.
703-
futures_util::future::poll_fn(|cx| {
702+
std::future::poll_fn(|cx| {
704703
let parse_ctx = ParseContext {
705704
cached_headers: &mut None,
706705
req_method: &mut None,

src/proto/h2/client.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::{
33
future::Future,
44
marker::PhantomData,
55
pin::Pin,
6-
task::{Context, Poll},
6+
task::{ready, Context, Poll},
77
time::Duration,
88
};
99

@@ -12,7 +12,6 @@ use bytes::Bytes;
1212
use futures_channel::mpsc::{Receiver, Sender};
1313
use futures_channel::{mpsc, oneshot};
1414
use futures_util::future::{Either, FusedFuture, FutureExt as _};
15-
use futures_util::ready;
1615
use futures_util::stream::{StreamExt as _, StreamFuture};
1716
use h2::client::{Builder, Connection, SendRequest};
1817
use h2::SendStream;

src/proto/h2/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ use std::future::Future;
33
use std::io::{Cursor, IoSlice};
44
use std::mem;
55
use std::pin::Pin;
6-
use std::task::{Context, Poll};
6+
use std::task::{ready, Context, Poll};
77

88
use bytes::{Buf, Bytes};
9-
use futures_util::ready;
109
use h2::{Reason, RecvStream, SendStream};
1110
use http::header::{HeaderName, CONNECTION, TE, TRANSFER_ENCODING, UPGRADE};
1211
use http::HeaderMap;

src/proto/h2/server.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
use std::error::Error as StdError;
22
use std::future::Future;
33
use std::pin::Pin;
4-
use std::task::{Context, Poll};
4+
use std::task::{ready, Context, Poll};
55
use std::time::Duration;
66

77
use bytes::Bytes;
8-
use futures_util::ready;
98
use h2::server::{Connection, Handshake, SendResponse};
109
use h2::{Reason, RecvStream};
1110
use http::{Method, Request};

src/server/conn/http1.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@ use std::fmt;
55
use std::future::Future;
66
use std::pin::Pin;
77
use std::sync::Arc;
8-
use std::task::{Context, Poll};
8+
use std::task::{ready, Context, Poll};
99
use std::time::Duration;
1010

1111
use crate::rt::{Read, Write};
1212
use crate::upgrade::Upgraded;
1313
use bytes::Bytes;
14-
use futures_util::ready;
1514

1615
use crate::body::{Body, Incoming as IncomingBody};
1716
use crate::proto;
@@ -179,7 +178,7 @@ where
179178
/// This errors if the underlying connection protocol is not HTTP/1.
180179
pub fn without_shutdown(self) -> impl Future<Output = crate::Result<Parts<I, S>>> {
181180
let mut zelf = Some(self);
182-
futures_util::future::poll_fn(move |cx| {
181+
std::future::poll_fn(move |cx| {
183182
ready!(zelf.as_mut().unwrap().conn.poll_without_shutdown(cx))?;
184183
Poll::Ready(Ok(zelf.take().unwrap().into_parts()))
185184
})

src/server/conn/http2.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@ use std::fmt;
55
use std::future::Future;
66
use std::pin::Pin;
77
use std::sync::Arc;
8-
use std::task::{Context, Poll};
8+
use std::task::{ready, Context, Poll};
99
use std::time::Duration;
1010

1111
use crate::rt::{Read, Write};
12-
use futures_util::ready;
1312
use pin_project_lite::pin_project;
1413

1514
use crate::body::{Body, Incoming as IncomingBody};

tests/client.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1486,6 +1486,7 @@ test! {
14861486

14871487
mod conn {
14881488
use std::error::Error;
1489+
use std::future::poll_fn;
14891490
use std::io::{self, Read, Write};
14901491
use std::net::{SocketAddr, TcpListener};
14911492
use std::pin::Pin;
@@ -1495,7 +1496,7 @@ mod conn {
14951496

14961497
use bytes::{Buf, Bytes};
14971498
use futures_channel::{mpsc, oneshot};
1498-
use futures_util::future::{self, poll_fn, FutureExt, TryFutureExt};
1499+
use futures_util::future::{self, FutureExt, TryFutureExt};
14991500
use http_body_util::{BodyExt, Empty, Full, StreamBody};
15001501
use hyper::rt::Timer;
15011502
use tokio::io::{AsyncReadExt as _, AsyncWriteExt as _};

0 commit comments

Comments
 (0)