fn try_flatten(self) -> TryFlatten<Self, Self::Ok>
    where
        Self::Ok: TryFuture<Error = Self::Error>,
        Self: Sized,
    {
        assert_future::<Result<<Self::Ok as TryFuture>::Ok, Self::Error>, _>(TryFlatten::new(self))
    }
Flatten the execution of this future when the successful result of this
future is another future.

This is equivalent to `future.and_then(|x| x)`.
futures-util/src/future/try_future/mod.rs