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 queue_sender<Item, F, R>(self, f: F) -> QueueSender<Self, Item, F, R>
where
Self: Sized + Waker,
F: Fn(&mut Self, Action<Item>) -> Reply<R>,
{ ... }
fn queue_channel<Item, F1, R, F2>(
self,
f1: F1,
f2: F2
) -> (QueueSender<QueueStream<Self, Item, F2>, Item, F1, R>, QueueStream<Self, Item, F2>)
where
Self: Sized + Unpin + Clone,
F1: Fn(&mut QueueStream<Self, Item, F2>, Action<Item>) -> Reply<R>,
F2: Fn(Pin<&mut Self>, &mut Context<'_>) -> Poll<Option<Item>> + Clone + Unpin,
{ ... }
}