pub trait QueueExt {
fn queue_stream<Item, F>(self, f: F) -> QueueStream<Self, Item, F>
where
Self: Sized + Unpin,
F: Fn(Pin<&mut Self>, &mut Context<'_>) -> Poll<Option<Item>>,
{ ... }
fn sender<Item, F, R>(self, f: F) -> Sender<Self, Item, F, R>
where
Self: Sized + Waker,
F: Fn(&mut Self, Item) -> R,
{ ... }
}