| use std::thread; |
| use std::time::Duration; |
| |
| fn generate_workout(intensity: u32, random_number: u32) { |
| // ANCHOR: here |
| let expensive_closure = |num| { |
| println!("calculating slowly..."); |
| thread::sleep(Duration::from_secs(2)); |
| num |
| }; |
| // ANCHOR_END: here |
| |
| if intensity < 25 { |
| println!("Today, do {} pushups!", expensive_closure(intensity)); |
| println!("Next, do {} situps!", expensive_closure(intensity)); |
| } else { |
| if random_number == 3 { |
| println!("Take a break today! Remember to stay hydrated!"); |
| } else { |
| println!( |
| "Today, run for {} minutes!", |
| expensive_closure(intensity) |
| ); |
| } |
| } |
| } |
| |
| fn main() { |
| let simulated_user_specified_value = 10; |
| let simulated_random_number = 7; |
| |
| generate_workout(simulated_user_specified_value, simulated_random_number); |
| } |