From 7916ba6b9113ae6ef2082c8b2c00c8b82fc61860 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Sun, 14 Feb 2021 05:31:41 +0900 Subject: [PATCH] Move type/trait aliases to futures-util --- futures-core/src/future.rs | 50 ---------------- futures-core/src/lib.rs | 4 +- futures-core/src/stream.rs | 48 --------------- futures-util/src/compat/compat03as01.rs | 2 +- futures-util/src/future/future/mod.rs | 2 +- futures-util/src/future/mod.rs | 59 ++++++++++++++++++- futures-util/src/future/select_ok.rs | 3 +- .../src/future/try_future/into_future.rs | 2 +- futures-util/src/future/try_future/mod.rs | 4 +- .../src/future/try_future/try_flatten.rs | 4 +- .../src/future/try_future/try_flatten_err.rs | 2 +- futures-util/src/future/try_join.rs | 3 +- futures-util/src/future/try_maybe_done.rs | 3 +- futures-util/src/future/try_select.rs | 3 +- futures-util/src/sink/mod.rs | 5 +- futures-util/src/sink/send_all.rs | 5 +- futures-util/src/stream/mod.rs | 55 ++++++++++++++++- futures-util/src/stream/stream/mod.rs | 16 ++--- .../src/stream/try_stream/and_then.rs | 4 +- .../src/stream/try_stream/into_async_read.rs | 3 +- .../src/stream/try_stream/into_stream.rs | 2 +- futures-util/src/stream/try_stream/mod.rs | 11 ++-- futures-util/src/stream/try_stream/or_else.rs | 4 +- .../stream/try_stream/try_buffer_unordered.rs | 6 +- .../src/stream/try_stream/try_buffered.rs | 6 +- .../src/stream/try_stream/try_collect.rs | 4 +- .../src/stream/try_stream/try_concat.rs | 4 +- .../src/stream/try_stream/try_filter.rs | 2 +- .../src/stream/try_stream/try_filter_map.rs | 4 +- .../src/stream/try_stream/try_flatten.rs | 2 +- .../src/stream/try_stream/try_fold.rs | 4 +- .../src/stream/try_stream/try_for_each.rs | 4 +- .../try_stream/try_for_each_concurrent.rs | 5 +- .../src/stream/try_stream/try_next.rs | 5 +- .../src/stream/try_stream/try_skip_while.rs | 4 +- .../src/stream/try_stream/try_take_while.rs | 4 +- .../src/stream/try_stream/try_unfold.rs | 5 +- futures/src/lib.rs | 8 +-- 38 files changed, 172 insertions(+), 189 deletions(-) diff --git a/futures-core/src/future.rs b/futures-core/src/future.rs index d9327c01e5..9d18e8998a 100644 --- a/futures-core/src/future.rs +++ b/futures-core/src/future.rs @@ -2,20 +2,10 @@ use core::ops::DerefMut; use core::pin::Pin; -use core::task::{Context, Poll}; #[doc(no_inline)] pub use core::future::Future; -/// An owned dynamically typed [`Future`] for use in cases where you can't -/// statically type your result or need to add some indirection. -#[cfg(feature = "alloc")] -pub type BoxFuture<'a, T> = Pin + Send + 'a>>; - -/// `BoxFuture`, but without the `Send` requirement. -#[cfg(feature = "alloc")] -pub type LocalBoxFuture<'a, T> = Pin + 'a>>; - /// A future which tracks whether or not the underlying future /// should no longer be polled. /// @@ -45,46 +35,6 @@ where } } -mod private_try_future { - use super::Future; - - pub trait Sealed {} - - impl Sealed for F where F: ?Sized + Future> {} -} - -/// A convenience for futures that return `Result` values that includes -/// a variety of adapters tailored to such futures. -pub trait TryFuture: Future + private_try_future::Sealed { - /// The type of successful values yielded by this future - type Ok; - - /// The type of failures yielded by this future - type Error; - - /// Poll this `TryFuture` as if it were a `Future`. - /// - /// This method is a stopgap for a compiler limitation that prevents us from - /// directly inheriting from the `Future` trait; in the future it won't be - /// needed. - fn try_poll( - self: Pin<&mut Self>, - cx: &mut Context<'_>, - ) -> Poll>; -} - -impl TryFuture for F - where F: ?Sized + Future> -{ - type Ok = T; - type Error = E; - - #[inline] - fn try_poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { - self.poll(cx) - } -} - #[cfg(feature = "alloc")] mod if_alloc { use alloc::boxed::Box; diff --git a/futures-core/src/lib.rs b/futures-core/src/lib.rs index ec14adba22..04fbfa5a5e 100644 --- a/futures-core/src/lib.rs +++ b/futures-core/src/lib.rs @@ -17,10 +17,10 @@ compile_error!("The `cfg-target-has-atomic` feature requires the `unstable` feat extern crate alloc; pub mod future; -#[doc(hidden)] pub use self::future::{Future, FusedFuture, TryFuture}; +#[doc(hidden)] pub use self::future::{Future, FusedFuture}; pub mod stream; -#[doc(hidden)] pub use self::stream::{Stream, FusedStream, TryStream}; +#[doc(hidden)] pub use self::stream::{Stream, FusedStream}; #[macro_use] pub mod task; diff --git a/futures-core/src/stream.rs b/futures-core/src/stream.rs index 4a13e3bd7d..0c056152ea 100644 --- a/futures-core/src/stream.rs +++ b/futures-core/src/stream.rs @@ -4,15 +4,6 @@ use core::ops::DerefMut; use core::pin::Pin; use core::task::{Context, Poll}; -/// An owned dynamically typed [`Stream`] for use in cases where you can't -/// statically type your result or need to add some indirection. -#[cfg(feature = "alloc")] -pub type BoxStream<'a, T> = Pin + Send + 'a>>; - -/// `BoxStream`, but without the `Send` requirement. -#[cfg(feature = "alloc")] -pub type LocalBoxStream<'a, T> = Pin + 'a>>; - /// A stream of values produced asynchronously. /// /// If `Future` is an asynchronous version of `T`, then `Stream Sealed for S where S: ?Sized + Stream> {} -} - -/// A convenience for streams that return `Result` values that includes -/// a variety of adapters tailored to such futures. -pub trait TryStream: Stream + private_try_stream::Sealed { - /// The type of successful values yielded by this future - type Ok; - - /// The type of failures yielded by this future - type Error; - - /// Poll this `TryStream` as if it were a `Stream`. - /// - /// This method is a stopgap for a compiler limitation that prevents us from - /// directly inheriting from the `Stream` trait; in the future it won't be - /// needed. - fn try_poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) - -> Poll>>; -} - -impl TryStream for S - where S: ?Sized + Stream> -{ - type Ok = T; - type Error = E; - - fn try_poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) - -> Poll>> - { - self.poll_next(cx) - } -} - #[cfg(feature = "alloc")] mod if_alloc { use alloc::boxed::Box; diff --git a/futures-util/src/compat/compat03as01.rs b/futures-util/src/compat/compat03as01.rs index 3f1eebbf1d..57ced6ea67 100644 --- a/futures-util/src/compat/compat03as01.rs +++ b/futures-util/src/compat/compat03as01.rs @@ -6,7 +6,7 @@ use futures_01::{ use futures_01::{ AsyncSink as AsyncSink01, Sink as Sink01, StartSend as StartSend01, }; -use futures_core::{ +use crate::{ task::{RawWaker, RawWakerVTable}, future::TryFuture as TryFuture03, stream::TryStream as TryStream03, diff --git a/futures-util/src/future/future/mod.rs b/futures-util/src/future/future/mod.rs index c11d108207..220dabfb76 100644 --- a/futures-util/src/future/future/mod.rs +++ b/futures-util/src/future/future/mod.rs @@ -12,7 +12,7 @@ use crate::future::{assert_future, Either}; use crate::never::Never; use crate::stream::assert_stream; #[cfg(feature = "alloc")] -use futures_core::future::{BoxFuture, LocalBoxFuture}; +use crate::future::{BoxFuture, LocalBoxFuture}; use futures_core::{ future::Future, stream::Stream, diff --git a/futures-util/src/future/mod.rs b/futures-util/src/future/mod.rs index 84e457c2f5..4bd9383359 100644 --- a/futures-util/src/future/mod.rs +++ b/futures-util/src/future/mod.rs @@ -9,14 +9,67 @@ //! from a closure that defines its return value, and [`ready`](ready()), //! which constructs a future with an immediate defined value. +use core::pin::Pin; +use futures_core::task::{Poll, Context}; +#[cfg(feature = "alloc")] +use alloc::boxed::Box; + #[doc(no_inline)] pub use core::future::Future; -#[cfg(feature = "alloc")] -pub use futures_core::future::{BoxFuture, LocalBoxFuture}; -pub use futures_core::future::{FusedFuture, TryFuture}; +pub use futures_core::future::FusedFuture; pub use futures_task::{FutureObj, LocalFutureObj, UnsafeFutureObj}; +/// An owned dynamically typed [`Future`] for use in cases where you can't +/// statically type your result or need to add some indirection. +#[cfg(feature = "alloc")] +pub type BoxFuture<'a, T> = Pin + Send + 'a>>; + +/// `BoxFuture`, but without the `Send` requirement. +#[cfg(feature = "alloc")] +pub type LocalBoxFuture<'a, T> = Pin + 'a>>; + + +mod private_try_future { + use super::Future; + + pub trait Sealed {} + + impl Sealed for F where F: ?Sized + Future> {} +} + +/// A convenience for futures that return `Result` values that includes +/// a variety of adapters tailored to such futures. +pub trait TryFuture: Future + private_try_future::Sealed { + /// The type of successful values yielded by this future + type Ok; + + /// The type of failures yielded by this future + type Error; + + /// Poll this `TryFuture` as if it were a `Future`. + /// + /// This method is a stopgap for a compiler limitation that prevents us from + /// directly inheriting from the `Future` trait; in the future it won't be + /// needed. + fn try_poll( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + ) -> Poll>; +} + +impl TryFuture for F + where F: ?Sized + Future> +{ + type Ok = T; + type Error = E; + + #[inline] + fn try_poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + self.poll(cx) + } +} + // Extension traits and combinators #[allow(clippy::module_inception)] mod future; diff --git a/futures-util/src/future/select_ok.rs b/futures-util/src/future/select_ok.rs index 52d393c28e..f6d050c05b 100644 --- a/futures-util/src/future/select_ok.rs +++ b/futures-util/src/future/select_ok.rs @@ -1,10 +1,9 @@ use super::assert_future; -use crate::future::TryFutureExt; +use crate::future::{Future, TryFuture, TryFutureExt}; use core::iter::FromIterator; use core::mem; use core::pin::Pin; use alloc::vec::Vec; -use futures_core::future::{Future, TryFuture}; use futures_core::task::{Context, Poll}; /// Future for the [`select_ok`] function. diff --git a/futures-util/src/future/try_future/into_future.rs b/futures-util/src/future/try_future/into_future.rs index e88d603c0f..a0fe6333cc 100644 --- a/futures-util/src/future/try_future/into_future.rs +++ b/futures-util/src/future/try_future/into_future.rs @@ -1,5 +1,5 @@ +use crate::future::{FusedFuture, Future, TryFuture}; use core::pin::Pin; -use futures_core::future::{FusedFuture, Future, TryFuture}; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures-util/src/future/try_future/mod.rs b/futures-util/src/future/try_future/mod.rs index 40158074a1..5c264c9e2d 100644 --- a/futures-util/src/future/try_future/mod.rs +++ b/futures-util/src/future/try_future/mod.rs @@ -5,12 +5,12 @@ #[cfg(feature = "compat")] use crate::compat::Compat; -use core::pin::Pin; -use futures_core::{ +use crate::{ future::TryFuture, stream::TryStream, task::{Context, Poll}, }; +use core::pin::Pin; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/future/try_future/try_flatten.rs b/futures-util/src/future/try_future/try_flatten.rs index 5241b2750d..08ae45c9f5 100644 --- a/futures-util/src/future/try_future/try_flatten.rs +++ b/futures-util/src/future/try_future/try_flatten.rs @@ -1,7 +1,7 @@ +use crate::future::{FusedFuture, Future, TryFuture}; +use crate::stream::{FusedStream, Stream, TryStream}; use core::pin::Pin; -use futures_core::future::{FusedFuture, Future, TryFuture}; use futures_core::ready; -use futures_core::stream::{FusedStream, Stream, TryStream}; #[cfg(feature = "sink")] use futures_sink::Sink; use futures_core::task::{Context, Poll}; diff --git a/futures-util/src/future/try_future/try_flatten_err.rs b/futures-util/src/future/try_future/try_flatten_err.rs index 2e67f1104e..08e3fb7bd6 100644 --- a/futures-util/src/future/try_future/try_flatten_err.rs +++ b/futures-util/src/future/try_future/try_flatten_err.rs @@ -1,5 +1,5 @@ +use crate::future::{FusedFuture, Future, TryFuture}; use core::pin::Pin; -use futures_core::future::{FusedFuture, Future, TryFuture}; use futures_core::ready; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures-util/src/future/try_join.rs b/futures-util/src/future/try_join.rs index de32ce3ef4..a5fa567b1a 100644 --- a/futures-util/src/future/try_join.rs +++ b/futures-util/src/future/try_join.rs @@ -1,9 +1,8 @@ #![allow(non_snake_case)] -use crate::future::{assert_future, try_maybe_done, TryMaybeDone}; +use crate::future::{assert_future, try_maybe_done, Future, TryFuture, TryMaybeDone}; use core::fmt; use core::pin::Pin; -use futures_core::future::{Future, TryFuture}; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures-util/src/future/try_maybe_done.rs b/futures-util/src/future/try_maybe_done.rs index dfd290065d..17f9fd32dc 100644 --- a/futures-util/src/future/try_maybe_done.rs +++ b/futures-util/src/future/try_maybe_done.rs @@ -1,9 +1,8 @@ //! Definition of the TryMaybeDone combinator -use super::assert_future; +use crate::future::{assert_future, FusedFuture, Future, TryFuture}; use core::mem; use core::pin::Pin; -use futures_core::future::{FusedFuture, Future, TryFuture}; use futures_core::ready; use futures_core::task::{Context, Poll}; diff --git a/futures-util/src/future/try_select.rs b/futures-util/src/future/try_select.rs index b26eed35f0..467ab71dfa 100644 --- a/futures-util/src/future/try_select.rs +++ b/futures-util/src/future/try_select.rs @@ -1,7 +1,6 @@ +use crate::future::{Either, Future, TryFuture, TryFutureExt}; use core::pin::Pin; -use futures_core::future::{Future, TryFuture}; use futures_core::task::{Context, Poll}; -use crate::future::{Either, TryFutureExt}; /// Future for the [`try_select()`] function. #[must_use = "futures do nothing unless you `.await` or poll them"] diff --git a/futures-util/src/sink/mod.rs b/futures-util/src/sink/mod.rs index e5b515b64a..6b62eaea3f 100644 --- a/futures-util/src/sink/mod.rs +++ b/futures-util/src/sink/mod.rs @@ -6,10 +6,9 @@ //! - The [`SinkExt`] trait, which provides adapters for chaining and composing //! sinks. -use crate::future::{assert_future, Either}; +use crate::future::{assert_future, Either, Future}; +use crate::stream::{Stream, TryStream}; use core::pin::Pin; -use futures_core::future::Future; -use futures_core::stream::{Stream, TryStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "compat")] diff --git a/futures-util/src/sink/send_all.rs b/futures-util/src/sink/send_all.rs index 6a33459be0..cc3172254c 100644 --- a/futures-util/src/sink/send_all.rs +++ b/futures-util/src/sink/send_all.rs @@ -1,9 +1,8 @@ -use crate::stream::{StreamExt, TryStreamExt, Fuse}; +use crate::future::Future; +use crate::stream::{Fuse, Stream, StreamExt, TryStream, TryStreamExt}; use core::fmt; use core::pin::Pin; -use futures_core::future::Future; use futures_core::ready; -use futures_core::stream::{TryStream, Stream}; use futures_core::task::{Context, Poll}; use futures_sink::Sink; diff --git a/futures-util/src/stream/mod.rs b/futures-util/src/stream/mod.rs index f3b2baa408..1210d192c1 100644 --- a/futures-util/src/stream/mod.rs +++ b/futures-util/src/stream/mod.rs @@ -9,9 +9,60 @@ //! - Top-level stream constructors like [`iter`](iter()) which creates a //! stream from an iterator. +use core::pin::Pin; +use futures_core::task::{Poll, Context}; #[cfg(feature = "alloc")] -pub use futures_core::stream::{BoxStream, LocalBoxStream}; -pub use futures_core::stream::{FusedStream, Stream, TryStream}; +use alloc::boxed::Box; + +pub use futures_core::stream::{FusedStream, Stream}; + +/// An owned dynamically typed [`Stream`] for use in cases where you can't +/// statically type your result or need to add some indirection. +#[cfg(feature = "alloc")] +pub type BoxStream<'a, T> = Pin + Send + 'a>>; + +/// `BoxStream`, but without the `Send` requirement. +#[cfg(feature = "alloc")] +pub type LocalBoxStream<'a, T> = Pin + 'a>>; + +mod private_try_stream { + use super::Stream; + + pub trait Sealed {} + + impl Sealed for S where S: ?Sized + Stream> {} +} + +/// A convenience for streams that return `Result` values that includes +/// a variety of adapters tailored to such futures. +pub trait TryStream: Stream + private_try_stream::Sealed { + /// The type of successful values yielded by this future + type Ok; + + /// The type of failures yielded by this future + type Error; + + /// Poll this `TryStream` as if it were a `Stream`. + /// + /// This method is a stopgap for a compiler limitation that prevents us from + /// directly inheriting from the `Stream` trait; in the future it won't be + /// needed. + fn try_poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) + -> Poll>>; +} + +impl TryStream for S + where S: ?Sized + Stream> +{ + type Ok = T; + type Error = E; + + fn try_poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) + -> Poll>> + { + self.poll_next(cx) + } +} // Extension traits and combinators diff --git a/futures-util/src/stream/stream/mod.rs b/futures-util/src/stream/stream/mod.rs index 081b71d175..0c65c5a798 100644 --- a/futures-util/src/stream/stream/mod.rs +++ b/futures-util/src/stream/stream/mod.rs @@ -3,22 +3,16 @@ //! This module contains a number of functions for working with `Stream`s, //! including the `StreamExt` trait which adds methods to `Stream` types. -use crate::future::{assert_future, Either}; -use crate::stream::assert_stream; +use crate::future::{assert_future, Either, Future}; +use crate::stream::{assert_stream, BoxStream, FusedStream, Stream, LocalBoxStream}; +#[cfg(feature = "sink")] +use crate::stream::TryStream; #[cfg(feature = "alloc")] use alloc::boxed::Box; #[cfg(feature = "alloc")] use alloc::vec::Vec; use core::pin::Pin; -#[cfg(feature = "sink")] -use futures_core::stream::TryStream; -#[cfg(feature = "alloc")] -use futures_core::stream::{BoxStream, LocalBoxStream}; -use futures_core::{ - future::Future, - stream::{FusedStream, Stream}, - task::{Context, Poll}, -}; +use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/and_then.rs b/futures-util/src/stream/try_stream/and_then.rs index b18564649a..81c25e8020 100644 --- a/futures-util/src/stream/try_stream/and_then.rs +++ b/futures-util/src/stream/try_stream/and_then.rs @@ -1,8 +1,8 @@ +use crate::future::TryFuture; +use crate::stream::{Stream, TryStream, FusedStream}; use core::fmt; use core::pin::Pin; -use futures_core::future::TryFuture; use futures_core::ready; -use futures_core::stream::{Stream, TryStream, FusedStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/into_async_read.rs b/futures-util/src/stream/try_stream/into_async_read.rs index 197c10502d..fba63731ad 100644 --- a/futures-util/src/stream/try_stream/into_async_read.rs +++ b/futures-util/src/stream/try_stream/into_async_read.rs @@ -1,7 +1,6 @@ -use crate::stream::TryStreamExt; +use crate::stream::{TryStream, TryStreamExt}; use core::pin::Pin; use futures_core::ready; -use futures_core::stream::TryStream; use futures_core::task::{Context, Poll}; use futures_io::{AsyncRead, AsyncWrite, AsyncBufRead}; use std::cmp; diff --git a/futures-util/src/stream/try_stream/into_stream.rs b/futures-util/src/stream/try_stream/into_stream.rs index 89bc3ef177..05bcd118f7 100644 --- a/futures-util/src/stream/try_stream/into_stream.rs +++ b/futures-util/src/stream/try_stream/into_stream.rs @@ -1,5 +1,5 @@ +use crate::stream::{FusedStream, Stream, TryStream}; use core::pin::Pin; -use futures_core::stream::{FusedStream, Stream, TryStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/mod.rs b/futures-util/src/stream/try_stream/mod.rs index b7353d908a..bc851bb034 100644 --- a/futures-util/src/stream/try_stream/mod.rs +++ b/futures-util/src/stream/try_stream/mod.rs @@ -5,18 +5,15 @@ #[cfg(feature = "compat")] use crate::compat::Compat; -use core::pin::Pin; -use futures_core::{ - future::{Future, TryFuture}, - stream::TryStream, +use crate::{ + future::{assert_future, Future, TryFuture}, + stream::{assert_stream, Map, Inspect, TryStream}, task::{Context, Poll}, }; use crate::fns::{ InspectOkFn, inspect_ok_fn, InspectErrFn, inspect_err_fn, MapErrFn, map_err_fn, IntoFn, into_fn, MapOkFn, map_ok_fn, }; -use crate::future::assert_future; -use crate::stream::{Map, Inspect}; -use crate::stream::assert_stream; +use core::pin::Pin; mod and_then; #[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/57411 diff --git a/futures-util/src/stream/try_stream/or_else.rs b/futures-util/src/stream/try_stream/or_else.rs index 999123a437..9c0af155c5 100644 --- a/futures-util/src/stream/try_stream/or_else.rs +++ b/futures-util/src/stream/try_stream/or_else.rs @@ -1,8 +1,8 @@ +use crate::future::TryFuture; +use crate::stream::{Stream, TryStream, FusedStream}; use core::fmt; use core::pin::Pin; -use futures_core::future::TryFuture; use futures_core::ready; -use futures_core::stream::{Stream, TryStream, FusedStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/try_buffer_unordered.rs b/futures-util/src/stream/try_stream/try_buffer_unordered.rs index 71c6fc7e26..f57af37d68 100644 --- a/futures-util/src/stream/try_stream/try_buffer_unordered.rs +++ b/futures-util/src/stream/try_stream/try_buffer_unordered.rs @@ -1,7 +1,5 @@ -use crate::stream::{Fuse, FuturesUnordered, StreamExt, IntoStream}; -use crate::future::{IntoFuture, TryFutureExt}; -use futures_core::future::TryFuture; -use futures_core::stream::{Stream, TryStream}; +use crate::stream::{Fuse, FuturesUnordered, Stream, StreamExt, IntoStream, TryStream}; +use crate::future::{IntoFuture, TryFuture, TryFutureExt}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/try_buffered.rs b/futures-util/src/stream/try_stream/try_buffered.rs index ff7e8447f9..8787da88bd 100644 --- a/futures-util/src/stream/try_stream/try_buffered.rs +++ b/futures-util/src/stream/try_stream/try_buffered.rs @@ -1,7 +1,5 @@ -use crate::stream::{Fuse, FuturesOrdered, StreamExt, IntoStream}; -use crate::future::{IntoFuture, TryFutureExt}; -use futures_core::future::TryFuture; -use futures_core::stream::{Stream, TryStream}; +use crate::stream::{Fuse, FuturesOrdered, Stream, StreamExt, IntoStream, TryStream}; +use crate::future::{IntoFuture, TryFuture, TryFutureExt}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/try_collect.rs b/futures-util/src/stream/try_stream/try_collect.rs index 387de9703b..cfa5104767 100644 --- a/futures-util/src/stream/try_stream/try_collect.rs +++ b/futures-util/src/stream/try_stream/try_collect.rs @@ -1,8 +1,8 @@ +use crate::future::{FusedFuture, Future}; +use crate::stream::{FusedStream, TryStream}; use core::mem; use core::pin::Pin; -use futures_core::future::{FusedFuture, Future}; use futures_core::ready; -use futures_core::stream::{FusedStream, TryStream}; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures-util/src/stream/try_stream/try_concat.rs b/futures-util/src/stream/try_stream/try_concat.rs index 2451332448..66c69d834b 100644 --- a/futures-util/src/stream/try_stream/try_concat.rs +++ b/futures-util/src/stream/try_stream/try_concat.rs @@ -1,7 +1,7 @@ +use crate::stream::TryStream; +use crate::future::Future; use core::pin::Pin; -use futures_core::future::Future; use futures_core::ready; -use futures_core::stream::TryStream; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures-util/src/stream/try_stream/try_filter.rs b/futures-util/src/stream/try_stream/try_filter.rs index eacefd20db..cf7d3df961 100644 --- a/futures-util/src/stream/try_stream/try_filter.rs +++ b/futures-util/src/stream/try_stream/try_filter.rs @@ -1,8 +1,8 @@ +use crate::stream::{Stream, TryStream, FusedStream}; use core::fmt; use core::pin::Pin; use futures_core::future::Future; use futures_core::ready; -use futures_core::stream::{Stream, TryStream, FusedStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/try_filter_map.rs b/futures-util/src/stream/try_stream/try_filter_map.rs index 335649bfc9..9776115972 100644 --- a/futures-util/src/stream/try_stream/try_filter_map.rs +++ b/futures-util/src/stream/try_stream/try_filter_map.rs @@ -1,8 +1,8 @@ +use crate::future::{TryFuture}; +use crate::stream::{Stream, TryStream, FusedStream}; use core::fmt; use core::pin::Pin; -use futures_core::future::{TryFuture}; use futures_core::ready; -use futures_core::stream::{Stream, TryStream, FusedStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/try_flatten.rs b/futures-util/src/stream/try_stream/try_flatten.rs index 4fc04a07bb..d482361179 100644 --- a/futures-util/src/stream/try_stream/try_flatten.rs +++ b/futures-util/src/stream/try_stream/try_flatten.rs @@ -1,6 +1,6 @@ +use crate::stream::{FusedStream, Stream, TryStream}; use core::pin::Pin; use futures_core::ready; -use futures_core::stream::{FusedStream, Stream, TryStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/try_fold.rs b/futures-util/src/stream/try_stream/try_fold.rs index 1d41e4bc2b..475fd61146 100644 --- a/futures-util/src/stream/try_stream/try_fold.rs +++ b/futures-util/src/stream/try_stream/try_fold.rs @@ -1,8 +1,8 @@ +use crate::future::{FusedFuture, Future, TryFuture}; +use crate::stream::TryStream; use core::fmt; use core::pin::Pin; -use futures_core::future::{FusedFuture, Future, TryFuture}; use futures_core::ready; -use futures_core::stream::TryStream; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures-util/src/stream/try_stream/try_for_each.rs b/futures-util/src/stream/try_stream/try_for_each.rs index 0a814ae86c..d66b1c3b38 100644 --- a/futures-util/src/stream/try_stream/try_for_each.rs +++ b/futures-util/src/stream/try_stream/try_for_each.rs @@ -1,8 +1,8 @@ +use crate::future::{Future, TryFuture}; +use crate::stream::TryStream; use core::fmt; use core::pin::Pin; -use futures_core::future::{Future, TryFuture}; use futures_core::ready; -use futures_core::stream::TryStream; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures-util/src/stream/try_stream/try_for_each_concurrent.rs b/futures-util/src/stream/try_stream/try_for_each_concurrent.rs index d2f4b0fed2..f2f42f38c1 100644 --- a/futures-util/src/stream/try_stream/try_for_each_concurrent.rs +++ b/futures-util/src/stream/try_stream/try_for_each_concurrent.rs @@ -1,10 +1,9 @@ -use crate::stream::{FuturesUnordered, StreamExt}; +use crate::future::{FusedFuture, Future}; +use crate::stream::{FuturesUnordered, StreamExt, TryStream}; use core::fmt; use core::mem; use core::pin::Pin; use core::num::NonZeroUsize; -use futures_core::future::{FusedFuture, Future}; -use futures_core::stream::TryStream; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures-util/src/stream/try_stream/try_next.rs b/futures-util/src/stream/try_stream/try_next.rs index 1bc00fbc2d..0a992055bd 100644 --- a/futures-util/src/stream/try_stream/try_next.rs +++ b/futures-util/src/stream/try_stream/try_next.rs @@ -1,7 +1,6 @@ -use crate::stream::TryStreamExt; +use crate::future::{FusedFuture, Future}; +use crate::stream::{FusedStream, TryStream, TryStreamExt}; use core::pin::Pin; -use futures_core::future::{FusedFuture, Future}; -use futures_core::stream::{FusedStream, TryStream}; use futures_core::task::{Context, Poll}; /// Future for the [`try_next`](super::TryStreamExt::try_next) method. diff --git a/futures-util/src/stream/try_stream/try_skip_while.rs b/futures-util/src/stream/try_stream/try_skip_while.rs index 0603b10f85..e13c436392 100644 --- a/futures-util/src/stream/try_stream/try_skip_while.rs +++ b/futures-util/src/stream/try_stream/try_skip_while.rs @@ -1,8 +1,8 @@ +use crate::future::TryFuture; +use crate::stream::{Stream, TryStream, FusedStream}; use core::fmt; use core::pin::Pin; -use futures_core::future::TryFuture; use futures_core::ready; -use futures_core::stream::{Stream, TryStream, FusedStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/try_take_while.rs b/futures-util/src/stream/try_stream/try_take_while.rs index 624157290c..53d42fb237 100644 --- a/futures-util/src/stream/try_stream/try_take_while.rs +++ b/futures-util/src/stream/try_stream/try_take_while.rs @@ -1,8 +1,8 @@ +use crate::future::TryFuture; +use crate::stream::{FusedStream, Stream, TryStream}; use core::fmt; use core::pin::Pin; -use futures_core::future::TryFuture; use futures_core::ready; -use futures_core::stream::{FusedStream, Stream, TryStream}; use futures_core::task::{Context, Poll}; #[cfg(feature = "sink")] use futures_sink::Sink; diff --git a/futures-util/src/stream/try_stream/try_unfold.rs b/futures-util/src/stream/try_stream/try_unfold.rs index 258c18e461..01aea1ce88 100644 --- a/futures-util/src/stream/try_stream/try_unfold.rs +++ b/futures-util/src/stream/try_stream/try_unfold.rs @@ -1,9 +1,8 @@ -use super::assert_stream; +use crate::future::TryFuture; +use crate::stream::{assert_stream, Stream}; use core::fmt; use core::pin::Pin; -use futures_core::future::TryFuture; use futures_core::ready; -use futures_core::stream::Stream; use futures_core::task::{Context, Poll}; use pin_project_lite::pin_project; diff --git a/futures/src/lib.rs b/futures/src/lib.rs index de29ace218..d2122e70ae 100644 --- a/futures/src/lib.rs +++ b/futures/src/lib.rs @@ -101,14 +101,14 @@ compile_error!("The `bilock` feature requires the `unstable` feature as an expli compile_error!("The `read-initializer` feature requires the `unstable` feature as an explicit opt-in to unstable features"); #[doc(hidden)] -pub use futures_core::future::{Future, TryFuture}; +pub use futures_core::future::Future; #[doc(hidden)] -pub use futures_util::future::{FutureExt, TryFutureExt}; +pub use futures_util::future::{FutureExt, TryFuture, TryFutureExt}; #[doc(hidden)] -pub use futures_core::stream::{Stream, TryStream}; +pub use futures_core::stream::Stream; #[doc(hidden)] -pub use futures_util::stream::{StreamExt, TryStreamExt}; +pub use futures_util::stream::{StreamExt, TryStream, TryStreamExt}; #[doc(hidden)] pub use futures_sink::Sink;