Collect the platform-specific concrete future implementations into mods.
This commit is contained in:
parent
4cb3820a4e
commit
55eaeceec8
1 changed files with 47 additions and 22 deletions
|
|
@ -37,33 +37,58 @@ pub mod time;
|
|||
|
||||
pub use command::Command;
|
||||
pub use executor::Executor;
|
||||
pub use platform::*;
|
||||
pub use runtime::Runtime;
|
||||
pub use subscription::Subscription;
|
||||
|
||||
/// A boxed static future.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
pub type BoxFuture<T> = futures::future::BoxFuture<'static, T>;
|
||||
mod platform {
|
||||
/// A boxed static future.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
pub type BoxFuture<T> = futures::future::BoxFuture<'static, T>;
|
||||
|
||||
/// A boxed static stream.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
pub type BoxStream<T> = futures::stream::BoxStream<'static, T>;
|
||||
|
||||
/// Boxes a stream.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
pub fn boxed_stream<T, S>(stream: S) -> BoxStream<T>
|
||||
where
|
||||
S: futures::Stream<Item = T> + Send + 'static,
|
||||
{
|
||||
futures::stream::StreamExt::boxed(stream)
|
||||
}
|
||||
}
|
||||
|
||||
/// A boxed static future.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
pub type BoxFuture<T> = futures::future::LocalBoxFuture<'static, T>;
|
||||
mod platform {
|
||||
/// A boxed static future.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
pub type BoxFuture<T> = futures::future::LocalBoxFuture<'static, T>;
|
||||
|
||||
/// A boxed static stream.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
pub type BoxStream<T> = futures::stream::BoxStream<'static, T>;
|
||||
/// A boxed static stream.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
pub type BoxStream<T> = futures::stream::LocalBoxStream<'static, T>;
|
||||
|
||||
/// A boxed static stream.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
pub type BoxStream<T> = futures::stream::LocalBoxStream<'static, T>;
|
||||
/// Boxes a stream.
|
||||
///
|
||||
/// - On native platforms, it needs a `Send` requirement.
|
||||
/// - On the Web platform, it does not need a `Send` requirement.
|
||||
pub fn boxed_stream<T, S>(stream: S) -> BoxStream<T>
|
||||
where
|
||||
S: futures::Stream<Item = T> + 'static,
|
||||
{
|
||||
futures::stream::StreamExt::boxed_local(stream)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue