pub trait Serializer {
// Required method
fn serialize<B>(&self, buf: &mut B) -> Result<()>
where Self: Sized,
B: BufMut;
// Provided method
fn serialize_detached(&self) -> Result<Bytes>
where Self: Sized { ... }
}