pub trait MonitorAsyncReadWrite {
// Provided methods
fn on_read(&mut self, _size: usize) { ... }
fn on_eof(&mut self) { ... }
fn on_read_err(&mut self, _err: &Error) { ... }
fn on_write(&mut self, _size: usize) { ... }
fn on_flush(&mut self) { ... }
fn on_shutdown(&mut self) { ... }
fn on_write_err(&mut self, _err: &Error) { ... }
}