unsafe fn output(&self) -> &Fut::Output {
        match unsafe { &*self.future_or_output.get() } {
            FutureOrOutput::Output(item) => item,
            FutureOrOutput::Future(_) => unreachable!(),
        }
    }
Safety: callers must first ensure that `self.inner.state`
is `COMPLETE`
futures-util/src/future/future/shared.rs