#![deny(missing_docs)]
#![deny(warnings)]
#![cfg_attr(feature = "nightly", feature(test))]
#![cfg_attr(feature = "cargo-clippy", feature(tool_lints))]
mod client;
mod ssl;
mod sync;
pub use crate::client::ClientBuilder;
pub use websocket_codec::{Error, Message, MessageCodec, Opcode, Result};
use std::io::{Read, Write};
use tokio_codec::Framed;
use tokio_io::{AsyncRead, AsyncWrite};
pub trait AsyncNetworkStream: AsyncRead + AsyncWrite {}
impl<S> AsyncNetworkStream for S
where
S: AsyncRead + AsyncWrite,
{
}
pub trait NetworkStream: Read + Write {}
impl<S> NetworkStream for S
where
S: Read + Write,
{
}
pub type AsyncClient<S> = Framed<S, MessageCodec>;
pub type Client<S> = sync::Framed<S, MessageCodec>;