gw-rust-programming-tutorial 0.1.0

gw rust test.
Documentation
pub fn fn_closure()
{
    println!("=================chapter 13===================");
    simulated_expensive_calculation(1);
    generate_workout(25,4);

    closure_ref();
}

use std::thread;
use std::time::Duration;

fn simulated_expensive_calculation(intensity: u32) -> u32 {
    println!("calculating slowly...");
    thread::sleep(Duration::from_secs(2));
    intensity
}

fn generate_workout(intensity: u32, random_number: u32) {
    let expensive_closure = |num| {
        println!("calculating slowly...");
        thread::sleep(Duration::from_secs(2));
        num
    };

    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 closure_ref()
{
    let x = vec![1, 2, 3];

    let equal_to_x = |z| z == *x;

    println!("can't use x here: {:?}", x);

    let y = vec![1, 2, 3];

    println!("equal_to_x{}",equal_to_x(y));
}