#![warn(missing_docs)]
#![warn(unreachable_pub)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![expect(unsafe_op_in_unsafe_fn)]
#![allow(unsafe_code)]
#![allow(clippy::unwrap_used)]
#![allow(clippy::cast_possible_wrap)]
#![allow(clippy::cast_possible_truncation)]
#![allow(clippy::cast_sign_loss)]
#![allow(clippy::indexing_slicing)]
#![allow(clippy::doc_markdown)]
#![allow(clippy::ptr_arg)]
#![allow(clippy::std_instead_of_core)]
#![allow(clippy::manual_is_power_of_two)]
#![allow(clippy::uninlined_format_args)]
#![allow(clippy::used_underscore_binding)]
#![allow(clippy::deref_by_slicing)]
#![allow(clippy::redundant_closure)]
#![allow(clippy::borrow_as_ptr)]
#![allow(clippy::ref_as_ptr)]
#![allow(clippy::ptr_as_ptr)]
pub mod channel;
pub mod driver;
pub mod io;
pub mod runtime;
pub mod scheduler;
pub mod select;
pub mod task;
pub mod time;
pub use channel::{Receiver, RecvError, SendError, Sender, bounded, unbounded};
pub use driver::{Driver, DriverConfig, DriverConfigBuilder, DriverFactory, DriverType};
pub use runtime::{Runtime, RuntimeBuilder, RuntimeConfig};
pub use scheduler::{
Scheduler, SchedulerConfig, SchedulerHandle, WorkStealingConfig, WorkStealingHandle,
WorkStealingScheduler, gen_task_id,
};
pub use select::{
SelectMultiple, SelectMultipleOutput, SelectTwo, SelectTwoOutput, select_multiple, select_two,
};
pub use task::{JoinError, JoinHandle, spawn};
pub use time::{Duration, Instant, sleep, sleep_until};