Function work

Source
pub async fn work<T, W, F, C>(
    context: C,
    starting_items: SegQueue<W>,
    worker: F,
) -> Result<HashMap<W, T>, JoinError>
where W: Debug + Clone + Eq + Hash + Send + Sync + 'static, F: Fn(W, Arc<SegQueue<W>>, Arc<C>) -> Pin<Box<dyn Future<Output = T> + Send + Sync + 'static>> + Send + Sync + 'static, T: Send + Sync + 'static,