1 //! Await 2 //! 3 //! This module contains a number of functions and combinators for working 4 //! with `async`/`await` code. 5 6 use futures_core::future::{Future, FusedFuture}; 7 use futures_core::stream::{Stream, FusedStream}; 8 9 #[macro_use] 10 mod poll; 11 #[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762 12 pub use self::poll::*; 13 14 #[macro_use] 15 mod pending; 16 #[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762 17 pub use self::pending::*; 18 19 // Primary export is a macro 20 #[cfg(feature = "async-await-macro")] 21 mod join_mod; 22 #[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762 23 #[cfg(feature = "async-await-macro")] 24 pub use self::join_mod::*; 25 26 // Primary export is a macro 27 #[cfg(feature = "async-await-macro")] 28 mod select_mod; 29 #[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762 30 #[cfg(feature = "async-await-macro")] 31 pub use self::select_mod::*; 32 33 #[cfg(feature = "std")] 34 #[cfg(feature = "async-await-macro")] 35 mod random; 36 #[allow(unreachable_pub)] // https://github.com/rust-lang/rust/issues/64762 37 #[cfg(feature = "std")] 38 #[cfg(feature = "async-await-macro")] 39 pub use self::random::*; 40 41 #[doc(hidden)] 42 #[inline(always)] assert_unpin<T: Unpin>(_: &T)43pub fn assert_unpin<T: Unpin>(_: &T) {} 44 45 #[doc(hidden)] 46 #[inline(always)] assert_fused_future<T: Future + FusedFuture>(_: &T)47pub fn assert_fused_future<T: Future + FusedFuture>(_: &T) {} 48 49 #[doc(hidden)] 50 #[inline(always)] assert_fused_stream<T: Stream + FusedStream>(_: &T)51pub fn assert_fused_stream<T: Stream + FusedStream>(_: &T) {} 52