How to implement async read and write

Implement async read and write in Rust by marking functions with `async` and using `await` on futures to handle non-blocking I/O.

Use the async keyword on functions and await on futures to implement non-blocking read and write operations.

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())
}

In Cargo.toml, add the trpl dependency to enable these async operations:

[dependencies]
trpl = { path = "../../../packages/trpl" }