pub fn downgrade(&self) -> Option<WeakShared<Fut>> {
        if let Some(inner) = self.inner.as_ref() {
            return Some(WeakShared(Arc::downgrade(inner)));
        }
        None
    }
Creates a new [`WeakShared`] for this [`Shared`].

Returns [`None`] if it has already been polled to completion.
futures-util/src/future/future/shared.rs