// *** before: ***
// значение-фьючерс собиралось из готовых комбинаторов
let task = futures::future::ok::<_, Error>(2).map(|x| x * 2);
// *** in version 1.39: ***
// асинхронный блок - это выражение, дающее фьючерс
let task = async {
let x = fetch_number().await?;
Ok::<_, Error>(x * 2)
};
// async move забирает захваченные значения себе
let name = String::from("prod");
let named = async move {
println!("{}", name);
};