use crate::{Job, Task};
use tokio::sync::mpsc;
type Rx<T> = mpsc::UnboundedReceiver<Job<T, ()>>;
pub struct TaskManager<T: Task>(Rx<T>);
impl<T: Task> TaskManager<T> {
pub(crate) fn new(rx: Rx<T>) -> Self {
Self(rx)
}
pub async fn poll(&mut self) -> Option<Job<T, ()>> {
self.0.recv().await
}
}