//! Common async utilities used across the crate.
//!
//! The main building blocks here are:
//!
//! - [`ready_future`] – a manually-completable future (`ReadyFuture`) that can be
//! completed, aborted, or timed out from external code.
//! - [`ready_observable`] – a simple observable that allows multiple waiters to be
//! notified when a single event occurs.
//!
//! These types are used internally by the networking primitives and can also be
//! useful in user code for coordinating custom async workflows.