unsafe fn wake(ptr: *const ()) {
        let boxed_future_ptr_ptr = Box::from_raw(ptr as *mut FuturePtr);
        let future_ptr: FuturePtr = *boxed_future_ptr_ptr;
        let boxed_future = Box::from_raw(future_ptr);
        let mut pinned_future = Pin::new_unchecked(&mut *future_ptr);
        if pinned_future
            .as_mut()
            .poll(&mut Context::from_waker(&waker::waker(ptr)))
            .is_pending()
        {
            Box::into_raw(boxed_future_ptr_ptr);
            Box::into_raw(boxed_future);
        }
    }
// Our waker will be called only if one of the response callbacks is triggered.
// Then, the waker will restore the future from the pointer we passed into the
// waker inside the `kickstart` method and poll the future again. If the future
// is pending, we leave it on the heap. If it's ready, we deallocate the
// pointer.
Our waker will be called only if one of the response callbacks is triggered.
Then, the waker will restore the future from the pointer we passed into the
waker inside the `kickstart` method and poll the future again. If the future
is pending, we leave it on the heap. If it's ready, we deallocate the
pointer.
Our waker will be called only if one of the response callbacks is triggered . Then the waker will restore the future from the pointer we passed into the waker inside the ` kickstart ` method and poll the future again . If the future is pending we leave it on the heap . If it ' s ready we deallocate the pointer .
unsafe fn wake(ptr: *const ()) {
        let boxed_future_ptr_ptr = Box::from_raw(ptr as *mut FuturePtr);
        let future_ptr: FuturePtr = *boxed_future_ptr_ptr;
        let boxed_future = Box::from_raw(future_ptr);
        let mut pinned_future = Pin::new_unchecked(&mut *future_ptr);
        if pinned_future
            .as_mut()
            .poll(&mut Context::from_waker(&waker::waker(ptr)))
            .is_pending()
        {
            Box::into_raw(boxed_future_ptr_ptr);
            Box::into_raw(boxed_future);
        }
    }
unsafe fn wake ( ptr : * const ( ) ) { let boxed_future_ptr_ptr = Box :: from_raw ( ptr as * mut FuturePtr ) ; let future_ptr : FuturePtr = * boxed_future_ptr_ptr ; let boxed_future = Box :: from_raw ( future_ptr ) ; let mut pinned_future = Pin :: new_unchecked ( & mut * future_ptr ) ; if pinned_future . as_mut ( ) . poll ( & mut Context :: from_waker ( & waker :: waker ( ptr ) ) ) . is_pending ( ) { Box :: into_raw ( boxed_future_ptr_ptr ) ; Box :: into_raw ( boxed_future ) ; } }
Our waker will be called only if one of the response callbacks is triggered.
Our waker will be called only if one of the response callbacks is triggered .
ptr
*const ()