pub trait TrapConsume<T> { type Rest; // Required method fn consume(self) -> Result<T, Self::Rest>; }