#![deny(unsafe_op_in_unsafe_fn, missing_docs)]
pub const BACKEND_NAME: &str = env!("TURNLOOP_BACKEND");
pub mod backend;
mod buffer;
mod types;
pub use buffer::*;
pub use types::*;
mod native;
pub use native::*;
mod completion;
mod driver;
mod slots;
mod table;
#[doc(hidden)]
pub mod timer;
pub use completion::*;
pub use driver::Driver;
mod notifier;
mod queue;
mod sync;
pub use notifier::{Notifier, PostError, Poster};
#[cfg(any(
turnloop_backend = "kqueue",
turnloop_backend = "epoll",
turnloop_backend = "iocp",
turnloop_backend = "wasi_p2",
turnloop_backend = "web",
all(turnloop_backend = "wasi_p3", feature = "wasi-p3-experimental")
))]
pub type Loop = Driver<backend::Platform>;
#[cfg(turnloop_backend = "iocp")]
pub use backend::iocp::Detached;
#[cfg(any(turnloop_backend = "kqueue", turnloop_backend = "epoll"))]
pub use backend::unix::Detached;
mod blocking;
pub use blocking::{Cancellation, DnsRequest, Occupancy, PoolConfig, PoolStats, pool_stats};
mod fs;
pub use fs::{
AccessMode, DirEntries, FileMetadata, FileOptions, FileTime, FileType, FsPath, FsRequest,
FsResult, FsTarget, Metadata, RECORD_HEADER, SymlinkKind, TimeChange, WatchEvents, WatchKind,
WatchOptions,
};
mod time;
pub use time::Instant;
mod external_wait;
pub use external_wait::{WaitCondition, WaitResult};
#[cfg(feature = "executor")]
pub mod executor;
#[cfg(feature = "executor")]
pub use executor::{
AsyncIo, Blocking, Close, ExecutorConfig, ExecutorHandle, JoinError, JoinHandle, LocalExecutor,
Sleep,
};
#[cfg(all(test, not(loom)))]
mod portable_tests;