1 //! Tools for working with tasks. 2 3 #![cfg_attr(not(feature = "std"), no_std)] 4 #![warn(missing_debug_implementations, missing_docs, rust_2018_idioms, unreachable_pub)] 5 // It cannot be included in the published code because this lints have false positives in the minimum required version. 6 #![cfg_attr(test, warn(single_use_lifetimes))] 7 #![doc(test( 8 no_crate_inject, 9 attr( 10 deny(warnings, rust_2018_idioms, single_use_lifetimes), 11 allow(dead_code, unused_assignments, unused_variables) 12 ) 13 ))] 14 15 #[cfg(feature = "alloc")] 16 extern crate alloc; 17 18 mod spawn; 19 pub use crate::spawn::{LocalSpawn, Spawn, SpawnError}; 20 21 #[cfg(not(futures_no_atomic_cas))] 22 #[cfg(feature = "alloc")] 23 mod arc_wake; 24 #[cfg(not(futures_no_atomic_cas))] 25 #[cfg(feature = "alloc")] 26 pub use crate::arc_wake::ArcWake; 27 28 #[cfg(not(futures_no_atomic_cas))] 29 #[cfg(feature = "alloc")] 30 mod waker; 31 #[cfg(not(futures_no_atomic_cas))] 32 #[cfg(feature = "alloc")] 33 pub use crate::waker::waker; 34 35 #[cfg(not(futures_no_atomic_cas))] 36 #[cfg(feature = "alloc")] 37 mod waker_ref; 38 #[cfg(not(futures_no_atomic_cas))] 39 #[cfg(feature = "alloc")] 40 pub use crate::waker_ref::{waker_ref, WakerRef}; 41 42 mod future_obj; 43 pub use crate::future_obj::{FutureObj, LocalFutureObj, UnsafeFutureObj}; 44 45 mod noop_waker; 46 pub use crate::noop_waker::noop_waker; 47 pub use crate::noop_waker::noop_waker_ref; 48 49 #[doc(no_inline)] 50 pub use core::task::{Context, Poll, RawWaker, RawWakerVTable, Waker}; 51