pub fn task_fn<'t, T: 't>(f: impl FnOnce() -> T + Send + 't) -> (TaskFn<'t>, JoinTask<'t, T>) {
    let inner = TaskInner::new_fn(f);
    let task = TaskFn {
        task: unsafe { transmute(inner) },
        _marker: PhantomData,
    };
    let join = JoinTask {
        task: unsafe { transmute(inner) },
        _marker: PhantomData,
    };
    (task, join)
}
/// Create a new pair of a `TaskFn` and `JoinTask` from a coroutine
Create a new pair of a `TaskFn` and `JoinTask` from a coroutine
Create a new pair of a ` TaskFn ` and ` JoinTask ` from a coroutine
pub fn task_fn<'t, T: 't>(f: impl FnOnce() -> T + Send + 't) -> (TaskFn<'t>, JoinTask<'t, T>) {
    let inner = TaskInner::new_fn(f);
    let task = TaskFn {
        task: unsafe { transmute(inner) },
        _marker: PhantomData,
    };
    let join = JoinTask {
        task: unsafe { transmute(inner) },
        _marker: PhantomData,
    };
    (task, join)
}
pub fn task_fn < ' t , T : ' t > ( f : impl FnOnce ( ) -> T + Send + ' t ) -> ( TaskFn < ' t > , JoinTask < ' t , T > ) { let inner = TaskInner :: new_fn ( f ) ; let task = TaskFn { task : unsafe { transmute ( inner ) } , _marker : PhantomData , } ; let join = JoinTask { task : unsafe { transmute ( inner ) } , _marker : PhantomData , } ; ( task , join ) }
Create a new pair of a `TaskFn` and `JoinTask` from a coroutine
Create a new pair of a ` TaskFn ` and ` JoinTask ` from a coroutine
f
impl FnOnce() -> T + Send + 't
f
impl FnOnce() -> T + Send + 't