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