wheel-timer2 0.1.2

A timer based on a multi-time wheel structure
Documentation
use std::time::Duration;
use wheel_timer2::{Behave, MultiWheel};

const PRECISION: Duration = Duration::from_secs(1);

fn main() {
    let mut wheel = MultiWheel::new(10, 10, PRECISION);

    let add_handle = wheel.add_handle();

    add_handle
        .add(
            || {
                println!("hello");
            },
            Duration::from_secs(1),
        )
        .unwrap();
    add_handle
        .add(
            || {
                println!("world");
            },
            Duration::from_secs(2),
        )
        .unwrap();
    add_handle
        .add_with_ctx(
            |i: &mut usize| {
                println!("{}s", i);
                *i += 1;
                Behave::Repeat
            },
            Duration::from_secs(1),
            1,
        )
        .unwrap();

    loop {
        wheel.tick();
        std::thread::sleep(PRECISION);
    }
}