async fn — syntactic sugar. fn returning Future — explicit.
async fn:
fn returning Future:
1// async fn2async fn get_data() -> String {3 String::from("data")4}56// fn returning Future7use std::future::Future;8use std::pin::Pin;910fn get_data() -> Pin<Box<dyn Future<Output = String> + Send>> {11 Box::pin(async {12 String::from("data")13 })14}
Key: async fn for simplicity, explicit for flexibility.