#[allow(dead_code)]
enum Time {
Millisecond(u8),
Second(u8),
Minute(u8),
Hour(u8)
}
#[allow(dead_code)]
fn set_interval(callback: fn() -> (), time: Time) -> () {
let duration = match time {
Time::Millisecond(value) => Duration::from_millis(value as u64),
Time::Second(value) => Duration::from_secs(value as u64),
Time::Minute(value) => Duration::from_secs(value as u64 * 60),
Time::Hour(value) => Duration::from_secs(value as u64 * 60 * 60)
};
callback();
loop {
sleep(duration);
callback()
}
}
fn main() {
set_interval(|| {
println!("Hello World after every 1 second")
}, Time::Second(1))
}