pub trait ConnectionController {
// Required methods
fn local_addr(&self) -> Result<SocketAddr>;
fn peer_addr(&self) -> Result<SocketAddr>;
fn set_read_timeout(&self, t: Option<Duration>) -> Result<()>;
fn set_write_timeout(&self, t: Option<Duration>) -> Result<()>;
fn shutdown(&self, t: Shutdown) -> Result<()>;
}