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 | |