Simplistic rate limiter.
Examples
# use ;
# use RateLimiter;
#
#
For advanced use cases consider using governor library instead.
Simplistic rate limiter.
# use std::{thread, time::Duration};
# use ratelim::RateLimiter;
#
# fn main() {
// We don't want to overwater plants. Twice a second should be fine?
let mut lim_water_plants = RateLimiter::new(Duration::from_millis(500));
let mut n = 0;
for _ in 0..5 {
lim_water_plants.run(|| {
println!("Watering plants... 🌱🔫");
n += 1;
});
thread::sleep(Duration::from_millis(200));
}
assert_eq!(n, 2);
# }
For advanced use cases consider using governor library instead.