pub mod handle;
pub mod local;
pub mod queue;
pub mod work_stealing;
pub use handle::SchedulerHandle;
pub use local::{Scheduler, SchedulerConfig};
pub use queue::LocalQueue;
pub use work_stealing::{WorkStealingConfig, WorkStealingHandle, WorkStealingScheduler};
use std::future::Future;
use std::pin::Pin;
pub type BoxFuture<'a, T> = Pin<Box<dyn Future<Output = T> + Send + 'a>>;
pub type TaskId = u64;
#[must_use]
pub fn gen_task_id() -> TaskId {
use std::sync::atomic::{AtomicU64, Ordering};
static COUNTER: AtomicU64 = AtomicU64::new(1);
COUNTER.fetch_add(1, Ordering::Relaxed)
}
pub type RawTask = *const ();