Skip to content

Commit f605139

Browse files
authored
Clean up private modules (#2233)
* Merge into one module per crate. * Rename to __private. * Shortened path to some private items. * Use '=' requirement to futures-macro to avoid breakage due to private API changes.
1 parent ad44100 commit f605139

File tree

13 files changed

+84
-76
lines changed

13 files changed

+84
-76
lines changed

futures-core/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ pub mod task;
3535

3636
// Not public API.
3737
#[doc(hidden)]
38-
pub mod core_reexport {
39-
#[doc(hidden)]
40-
pub use core::*;
38+
pub mod __private {
39+
pub use core::task::Poll;
4140
}

futures-core/src/task/poll.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
#[macro_export]
55
macro_rules! ready {
66
($e:expr $(,)?) => (match $e {
7-
$crate::core_reexport::task::Poll::Ready(t) => t,
8-
$crate::core_reexport::task::Poll::Pending =>
9-
return $crate::core_reexport::task::Poll::Pending,
7+
$crate::__private::Poll::Ready(t) => t,
8+
$crate::__private::Poll::Pending =>
9+
return $crate::__private::Poll::Pending,
1010
})
1111
}

futures-macro/src/join.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,12 @@ pub(crate) fn join(input: TokenStream) -> TokenStream {
6161
let poll_futures = future_names.iter().map(|fut| {
6262
quote! {
6363
__all_done &= __futures_crate::future::Future::poll(
64-
unsafe { __futures_crate::core_reexport::pin::Pin::new_unchecked(&mut #fut) }, __cx).is_ready();
64+
unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }, __cx).is_ready();
6565
}
6666
});
6767
let take_outputs = future_names.iter().map(|fut| {
6868
quote! {
69-
unsafe { __futures_crate::core_reexport::pin::Pin::new_unchecked(&mut #fut) }.take_output().unwrap(),
69+
unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }.take_output().unwrap(),
7070
}
7171
});
7272

@@ -99,17 +99,17 @@ pub(crate) fn try_join(input: TokenStream) -> TokenStream {
9999
let poll_futures = future_names.iter().map(|fut| {
100100
quote! {
101101
if __futures_crate::future::Future::poll(
102-
unsafe { __futures_crate::core_reexport::pin::Pin::new_unchecked(&mut #fut) }, __cx).is_pending()
102+
unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }, __cx).is_pending()
103103
{
104104
__all_done = false;
105-
} else if unsafe { __futures_crate::core_reexport::pin::Pin::new_unchecked(&mut #fut) }.output_mut().unwrap().is_err() {
105+
} else if unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }.output_mut().unwrap().is_err() {
106106
// `.err().unwrap()` rather than `.unwrap_err()` so that we don't introduce
107107
// a `T: Debug` bound.
108108
// Also, for an error type of ! any code after `err().unwrap()` is unreachable.
109109
#[allow(unreachable_code)]
110110
return __futures_crate::task::Poll::Ready(
111-
__futures_crate::core_reexport::result::Result::Err(
112-
unsafe { __futures_crate::core_reexport::pin::Pin::new_unchecked(&mut #fut) }.take_output().unwrap().err().unwrap()
111+
__futures_crate::Err(
112+
unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }.take_output().unwrap().err().unwrap()
113113
)
114114
);
115115
}
@@ -121,7 +121,7 @@ pub(crate) fn try_join(input: TokenStream) -> TokenStream {
121121
// an `E: Debug` bound.
122122
// Also, for an ok type of ! any code after `ok().unwrap()` is unreachable.
123123
#[allow(unreachable_code)]
124-
unsafe { __futures_crate::core_reexport::pin::Pin::new_unchecked(&mut #fut) }.take_output().unwrap().ok().unwrap(),
124+
unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }.take_output().unwrap().ok().unwrap(),
125125
}
126126
});
127127

@@ -134,7 +134,7 @@ pub(crate) fn try_join(input: TokenStream) -> TokenStream {
134134
#( #poll_futures )*
135135
if __all_done {
136136
__futures_crate::task::Poll::Ready(
137-
__futures_crate::core_reexport::result::Result::Ok((
137+
__futures_crate::Ok((
138138
#( #take_outputs )*
139139
))
140140
)

futures-macro/src/select.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -201,20 +201,20 @@ fn select_inner(input: TokenStream, random: bool) -> TokenStream {
201201
quote! {
202202
let mut #variant_name = |__cx: &mut __futures_crate::task::Context<'_>| {
203203
let mut #bound_future_name = unsafe {
204-
::core::pin::Pin::new_unchecked(&mut #bound_future_name)
204+
__futures_crate::Pin::new_unchecked(&mut #bound_future_name)
205205
};
206206
if __futures_crate::future::FusedFuture::is_terminated(&#bound_future_name) {
207-
None
207+
__futures_crate::None
208208
} else {
209-
Some(__futures_crate::future::FutureExt::poll_unpin(
209+
__futures_crate::Some(__futures_crate::future::FutureExt::poll_unpin(
210210
&mut #bound_future_name,
211211
__cx,
212212
).map(#enum_ident::#variant_name))
213213
}
214214
};
215215
let #variant_name: &mut dyn FnMut(
216216
&mut __futures_crate::task::Context<'_>
217-
) -> Option<__futures_crate::task::Poll<_>> = &mut #variant_name;
217+
) -> __futures_crate::Option<__futures_crate::task::Poll<_>> = &mut #variant_name;
218218
}
219219
});
220220

@@ -304,14 +304,14 @@ fn select_inner(input: TokenStream, random: bool) -> TokenStream {
304304
for poller in &mut __select_arr {
305305
let poller: &mut &mut dyn FnMut(
306306
&mut __futures_crate::task::Context<'_>
307-
) -> Option<__futures_crate::task::Poll<_>> = poller;
307+
) -> __futures_crate::Option<__futures_crate::task::Poll<_>> = poller;
308308
match poller(__cx) {
309-
Some(x @ __futures_crate::task::Poll::Ready(_)) =>
309+
__futures_crate::Some(x @ __futures_crate::task::Poll::Ready(_)) =>
310310
return x,
311-
Some(__futures_crate::task::Poll::Pending) => {
311+
__futures_crate::Some(__futures_crate::task::Poll::Pending) => {
312312
__any_polled = true;
313313
}
314-
None => {}
314+
__futures_crate::None => {}
315315
}
316316
}
317317

futures-test/src/assert.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ pub fn assert_is_unpin_stream<S: Stream + Unpin>(_: &mut S) {}
2727
macro_rules! assert_stream_pending {
2828
($stream:expr) => {{
2929
let mut stream = &mut $stream;
30-
$crate::assert::assert_is_unpin_stream(stream);
31-
let stream = $crate::std_reexport::pin::Pin::new(stream);
30+
$crate::__private::assert::assert_is_unpin_stream(stream);
31+
let stream = $crate::__private::Pin::new(stream);
3232
let mut cx = $crate::task::noop_context();
33-
let poll = $crate::futures_core_reexport::stream::Stream::poll_next(
33+
let poll = $crate::__private::stream::Stream::poll_next(
3434
stream, &mut cx,
3535
);
3636
if poll.is_ready() {
@@ -63,17 +63,17 @@ macro_rules! assert_stream_pending {
6363
macro_rules! assert_stream_next {
6464
($stream:expr, $item:expr) => {{
6565
let mut stream = &mut $stream;
66-
$crate::assert::assert_is_unpin_stream(stream);
67-
let stream = $crate::std_reexport::pin::Pin::new(stream);
66+
$crate::__private::assert::assert_is_unpin_stream(stream);
67+
let stream = $crate::__private::Pin::new(stream);
6868
let mut cx = $crate::task::noop_context();
69-
match $crate::futures_core_reexport::stream::Stream::poll_next(stream, &mut cx) {
70-
$crate::futures_core_reexport::task::Poll::Ready(Some(x)) => {
69+
match $crate::__private::stream::Stream::poll_next(stream, &mut cx) {
70+
$crate::__private::task::Poll::Ready($crate::__private::Some(x)) => {
7171
assert_eq!(x, $item);
7272
}
73-
$crate::futures_core_reexport::task::Poll::Ready(None) => {
73+
$crate::__private::task::Poll::Ready($crate::__private::None) => {
7474
panic!("assertion failed: expected stream to provide item but stream is at its end");
7575
}
76-
$crate::futures_core_reexport::task::Poll::Pending => {
76+
$crate::__private::task::Poll::Pending => {
7777
panic!("assertion failed: expected stream to provide item but stream wasn't ready");
7878
}
7979
}
@@ -105,15 +105,15 @@ macro_rules! assert_stream_next {
105105
macro_rules! assert_stream_done {
106106
($stream:expr) => {{
107107
let mut stream = &mut $stream;
108-
$crate::assert::assert_is_unpin_stream(stream);
109-
let stream = $crate::std_reexport::pin::Pin::new(stream);
108+
$crate::__private::assert::assert_is_unpin_stream(stream);
109+
let stream = $crate::__private::Pin::new(stream);
110110
let mut cx = $crate::task::noop_context();
111-
match $crate::futures_core_reexport::stream::Stream::poll_next(stream, &mut cx) {
112-
$crate::futures_core_reexport::task::Poll::Ready(Some(_)) => {
111+
match $crate::__private::stream::Stream::poll_next(stream, &mut cx) {
112+
$crate::__private::task::Poll::Ready($crate::__private::Some(_)) => {
113113
panic!("assertion failed: expected stream to be done but had more elements");
114114
}
115-
$crate::futures_core_reexport::task::Poll::Ready(None) => {}
116-
$crate::futures_core_reexport::task::Poll::Pending => {
115+
$crate::__private::task::Poll::Ready($crate::__private::None) => {}
116+
$crate::__private::task::Poll::Pending => {
117117
panic!("assertion failed: expected stream to be done but was pending");
118118
}
119119
}

futures-test/src/lib.rs

+13-6
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,25 @@
1717
#[cfg(not(feature = "std"))]
1818
compile_error!("`futures-test` must have the `std` feature activated, this is a default-active feature");
1919

20+
// Not public API.
2021
#[doc(hidden)]
2122
#[cfg(feature = "std")]
22-
pub use std as std_reexport;
23+
pub mod __private {
24+
pub use std::{
25+
option::Option::{Some, None},
26+
pin::Pin,
27+
result::Result::{Err, Ok},
28+
};
29+
pub use futures_core::{future, stream, task};
2330

24-
#[doc(hidden)]
25-
#[cfg(feature = "std")]
26-
pub extern crate futures_core as futures_core_reexport;
31+
pub mod assert {
32+
pub use crate::assert::*;
33+
}
34+
}
2735

2836
#[macro_use]
29-
#[doc(hidden)]
3037
#[cfg(feature = "std")]
31-
pub mod assert;
38+
mod assert;
3239

3340
#[cfg(feature = "std")]
3441
pub mod task;

futures-util/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ futures-task = { path = "../futures-task", version = "0.3.6", default-features =
3838
futures-channel = { path = "../futures-channel", version = "0.3.6", default-features = false, features = ["std"], optional = true }
3939
futures-io = { path = "../futures-io", version = "0.3.6", default-features = false, features = ["std"], optional = true }
4040
futures-sink = { path = "../futures-sink", version = "0.3.6", default-features = false, optional = true }
41-
futures-macro = { path = "../futures-macro", version = "0.3.6", default-features = false, optional = true }
41+
futures-macro = { path = "../futures-macro", version = "=0.3.6", default-features = false, optional = true }
4242
proc-macro-hack = { version = "0.5.9", optional = true }
4343
proc-macro-nested = { version = "0.1.2", optional = true }
4444
slab = { version = "0.4.2", optional = true }

futures-util/src/async_await/join_mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ document_join_macro! {
9393
#[macro_export]
9494
macro_rules! join {
9595
($($tokens:tt)*) => {{
96-
use $crate::__reexport as __futures_crate;
96+
use $crate::__private as __futures_crate;
9797
$crate::join_internal! {
9898
$( $tokens )*
9999
}
@@ -103,7 +103,7 @@ document_join_macro! {
103103
#[macro_export]
104104
macro_rules! try_join {
105105
($($tokens:tt)*) => {{
106-
use $crate::__reexport as __futures_crate;
106+
use $crate::__private as __futures_crate;
107107
$crate::try_join_internal! {
108108
$( $tokens )*
109109
}

futures-util/src/async_await/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,37 @@
33
//! This module contains a number of functions and combinators for working
44
//! with `async`/`await` code.
55
6-
use futures_core::future::Future;
7-
use futures_core::stream::Stream;
8-
9-
#[doc(hidden)]
10-
pub use futures_core::future::FusedFuture;
11-
#[doc(hidden)]
12-
pub use futures_core::stream::FusedStream;
6+
use futures_core::future::{Future, FusedFuture};
7+
use futures_core::stream::{Stream, FusedStream};
138

149
#[macro_use]
1510
mod poll;
11+
#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762
1612
pub use self::poll::*;
1713

1814
#[macro_use]
1915
mod pending;
16+
#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762
2017
pub use self::pending::*;
2118

2219
// Primary export is a macro
2320
#[cfg(feature = "async-await-macro")]
2421
mod join_mod;
22+
#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762
2523
#[cfg(feature = "async-await-macro")]
2624
pub use self::join_mod::*;
2725

2826
// Primary export is a macro
2927
#[cfg(feature = "async-await-macro")]
3028
mod select_mod;
29+
#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762
3130
#[cfg(feature = "async-await-macro")]
3231
pub use self::select_mod::*;
3332

3433
#[cfg(feature = "std")]
3534
#[cfg(feature = "async-await-macro")]
3635
mod random;
36+
#[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762
3737
#[cfg(feature = "std")]
3838
#[cfg(feature = "async-await-macro")]
3939
pub use self::random::*;

futures-util/src/async_await/pending.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use futures_core::task::{Context, Poll};
1515
#[macro_export]
1616
macro_rules! pending {
1717
() => {
18-
$crate::async_await::pending_once().await
18+
$crate::__private::async_await::pending_once().await
1919
}
2020
}
2121

futures-util/src/async_await/poll.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use futures_core::task::{Context, Poll};
1212
#[macro_export]
1313
macro_rules! poll {
1414
($x:expr $(,)?) => {
15-
$crate::async_await::poll($x).await
15+
$crate::__private::async_await::poll($x).await
1616
}
1717
}
1818

futures-util/src/async_await/select_mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ document_select_macro! {
322322
#[macro_export]
323323
macro_rules! select {
324324
($($tokens:tt)*) => {{
325-
use $crate::__reexport as __futures_crate;
325+
use $crate::__private as __futures_crate;
326326
$crate::select_internal! {
327327
$( $tokens )*
328328
}
@@ -332,7 +332,7 @@ document_select_macro! {
332332
#[macro_export]
333333
macro_rules! select_biased {
334334
($($tokens:tt)*) => {{
335-
use $crate::__reexport as __futures_crate;
335+
use $crate::__private as __futures_crate;
336336
$crate::select_biased_internal! {
337337
$( $tokens )*
338338
}

0 commit comments

Comments
 (0)