pub trait Buffer { type Output: ?Sized; // Required methods fn buffer(&mut self) -> (&Self::Output, &mut usize); fn exhausted(&self) -> bool; }