std :: async::future
Trait std::Future
trait Future {
void poll(&Context cx);
void drop();
}What a future is. The structural check is by name: a type with methods poll and drop fits, whatever its Output. Executors and combinators bound their future parameters with it, so a struct missing drop() is rejected where it is spawned or combined.