]> git.lizzy.rs Git - rust.git/commit - library/core/src/slice/memchr.rs
Rollup merge of #101189 - daxpedda:ready-into-inner, r=joshtriplett
authorDylan DPC <99973273+Dylan-DPC@users.noreply.github.com>
Tue, 4 Oct 2022 10:41:00 +0000 (16:11 +0530)
committerGitHub <noreply@github.com>
Tue, 4 Oct 2022 10:41:00 +0000 (16:11 +0530)
commitc1d400350608d880c4b66744e9905c7847fcf512
tree54636ce76fc3d79b17bc5dd0f126f87b992f6bc9
parentf1112099eba41abadb6f921df7edba70affe92c5
parent5ed178741358db3258d804f332d82e497b7eb11a
Rollup merge of #101189 - daxpedda:ready-into-inner, r=joshtriplett

Implement `Ready::into_inner()`

Tracking issue: #101196.

This implements a method to unwrap the value inside a `Ready` outside an async context.
See https://docs.rs/futures/0.3.24/futures/future/struct.Ready.html#method.into_inner for previous work.

This was discussed in [Zulip beforehand](https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/.60Ready.3A.3Ainto_inner.28.29.60):
> An example I'm hitting right now:
I have a cross-platform library that provides a functions that returns a `Future`. The only reason why it returns a `Future` is because the WASM platform requires it, but the native doesn't, to make a cross-platform API that is equal for all I just return a `Ready` on the native targets.
>
> Now I would like to expose native-only functions that aren't async, that users can use to avoid having to deal with async when they are targeting native. With `into_inner` that's easily solvable now.
>
> I want to point out that some internal restructuring could be used to solve that problem too, but in this case it's not that simple, the library uses internal traits that return the `Future` already and playing around with that would introduce unnecessary `cfg` in a lot more places. So it is really only a quality-of-life feature.