pub trait BlockingQueue { type Item; // Required methods fn push(&self, item: Self::Item) -> Result<()>; fn pop(&self) -> Result<Self::Item>; }