#[cfg(feature="__io__")]
mod io {
#[cfg(feature="io_tokio")]
pub(crate) use tokio::io::{AsyncReadExt as AsyncRead, AsyncWriteExt as AsyncWrite};
#[cfg(feature="io_futures")]
pub(crate) use futures_util::io::{AsyncReadExt as AsyncRead, AsyncWriteExt as AsyncWrite};
}
#[cfg(feature="__io__")]
mod sync {
pub(crate) use tokio::sync::RwLock;
}
pub mod message;
#[cfg(feature="__io__")]
pub mod frame;
#[cfg(feature="__io__")]
pub mod websocket;
#[cfg(feature="__io__")]
pub mod connection;
pub use message::{Message, CloseFrame, CloseCode};
#[cfg(feature="__io__")]
pub use {
websocket::*,
connection::{Connection, split::{self, Splitable, ReadHalf, WriteHalf}},
};