Use the async keyword before a closure definition to make it non-blocking and capable of using .await inside its body.
use trpl::Html;
async fn page_title(url: &str) -> Option<String> {
let response_text = trpl::get(url).await.text().await;
Html::parse(&response_text)
.select_first("title")
.map(|title| title.inner_html())
}
Note: While the source shows async fn (async functions), true async closures require the async_closure feature or a library like async-trait to capture variables and return Futures directly, as standard closures cannot yet be marked async in stable Rust.