Polycarbohydrate 2ec9c0957e Async updates and reformatting for new exercise
- Renamed/ordered the directories for macros, clippy, and conversions, shifting them all one up in numerical order to fit async as number 21
- Added the 21_async directories in exercises and solutions
- Added async1.rs in the 21_async directory in exercises and solutions
- Added async to the info.toml in rustlings-macros and reordered the rest of the exercises in there as well
- Created an exercise for async1 and its solution
2025-03-07 19:49:35 -05:00

30 lines
719 B
Rust

use tokio::time::{sleep, Duration};
// Change the function signature to be async and return a Future
async fn delayed_hello() -> String {
// Wait for 1 second
sleep(Duration::from_secs(1)).await;
"Hello, world!".to_string()
}
#[tokio::main]
async fn main() {
// You can experiment optionally here
}
#[cfg(test)]
mod tests {
use super::*;
use tokio::time::Duration;
#[tokio::test]
async fn test_delayed_hello() {
let start = std::time::Instant::now();
let result = delayed_hello().await;
let duration = start.elapsed();
assert_eq!(result, "Hello, world!");
assert!(duration >= Duration::from_secs(1));
println!("Test passed!");
}
}