use std::io::{Result, Write};
use std::net::{SocketAddr, TcpStream, ToSocketAddrs};
pub struct Socket {
stream: TcpStream,
}
pub fn connect(addr: SocketAddr) -> Result<Socket> {
Socket::connect(addr)
}
impl Socket {
pub fn connect<A: ToSocketAddrs>(addr: A) -> Result<Self> {
let stream = TcpStream::connect(addr)?;
stream.set_nodelay(true).ok();
Ok(Self {
stream,
})
}
}
impl Write for Socket {
fn write(&mut self, buf: &[u8]) -> Result<usize> {
self.stream.write(buf)
}
fn flush(&mut self) -> Result<()> {
self.stream.flush()
}
}