rust async block
async move { ... }:
async:
The async keyword is used to define an asynchronous context. Code within this block can perform asynchronous operations using .await.
The block will return a Future, which represents a value that might not be available yet.
move:
The move keyword is used to take ownership of the variables captured from the surrounding environment. This is necessary because the asynchronous block might outlive the scope in which it was created, and borrowing variables could lead to lifetime issues.
By moving the variables, you ensure that the asynchronous block has its own copies, allowing it to safely run in parallel.
copy してんのか