pub trait OutputStream<'a>: Stream {
// Required methods
fn queue(&mut self, index: usize) -> Result<()>;
fn dequeue(&mut self) -> Result<usize>;
fn next(
&'a mut self,
) -> Result<(&'a mut Self::Item, &'a mut Metadata), Error>;
}