pub trait Write { // Required method fn write(&mut self, buf: &[u8]) -> Result<usize>; // Provided method fn write_all(&mut self, buf: &[u8]) -> Result<()> { ... } }