//! Dynamic traits for sync or async use depending on the Cargo features used.
//!
//! By default the [AnySyncRead] trait is equivalent to `std::io::Read`.
//!
//! However, if this crate is built with either the `async-with-async-std` or `async-with-tokio` feature enabled then
//! this trait instead becomes `async_std::io::ReadExt` or `tokio::io::AsyncReadExt` respectively.
//!
//! This enables code that is otherwise identical to be re-used.
cfg_if!