1/6

Calling an async fn runs none of its body. It builds a state machine and hands it to you, sitting at state zero:

let fut = build();          // nothing has happened

The body runs only when something polls it. This is the opposite of a JavaScript promise, which begins executing the moment it is created.

That is why an unawaited future is a warning: Future is #[must_use], and dropping one silently means the work you asked for never happened.