use AsyncVectoredWrite;
use Async;
use ;
use TcpStream as StdTcpStream;
use Arc;
/// `AsyncVectoredWrite` for the write half of a smol TCP connection.
///
/// `smol::net::TcpStream` is internally `Arc<Async<std::net::TcpStream>>` and
/// implements `From<TcpStream> for Arc<Async<std::net::TcpStream>>`, so we
/// convert once at connection setup and store the `Arc<Async<_>>` as the write
/// half. This gives us direct access to `Async::get_ref()` (for the non-
/// blocking `write_vectored` syscall) and `Async::writable()` (for readiness).