Remove some Unpin requirements on Futures#1384
Conversation
|
This is ready for review! I ended up cheating a bit by using There's a breaking change: since the |
|
Note that I removed all the |
Do you have upgrade, transport or i/o types in mind which must not be moved and where our |
Anything that uses |
Opening as a draft.
The goal is to remove all
Unpinrequirements on futures on traits such as*UpgradeorTransport.All the
T::Dial: Unpin/T::Listener: Unpin/T::ListenerUpgrade: Unpinrequirements still remain to be cleaned up.This is surprisingly hard and my progress has stalled when chaining multiple futures is involved.
I've used unsafe code for
transport::and_then, but that should ideally be avoided unless no other solution is found.If someone wants to take over this work, let me know.