Crates.io | throttle-timer |
lib.rs | throttle-timer |
version | 1.0.0 |
source | src |
created_at | 2019-11-06 08:43:09.257618 |
updated_at | 2019-11-08 05:11:00.317131 |
description | Throttle events and record event stats with a simple library |
homepage | https://github.com/benjaminmcdonald/rust-throttle_timer |
repository | https://github.com/benjaminmcdonald/rust-throttle_timer |
max_upload_size | |
id | 178538 |
size | 12,828 |
Simple Rust library to throttle events and record event stats
throttle-timer = "1.0.0"
use std::time::Duration;
use throttle_timer::ThrottleTimer;
let mut throttled_fn = ThrottleTimer::new(Duration::from_secs(10_u64), &"throttled_fn");
let mut val = 0_u8;
// timers always run when no previous runs
throttled_fn.run(&mut || val += 1);
for _ in 0..100 {
// timer will not run as 10 secs has not passed
// do run will return false
throttled_fn.run(&mut || val += 1);
}
throttled_fn.print_stats();
// throttled_fn called 0/sec, total calls 1, has been running for 10us
assert_eq!(throttled_fn.total_calls(), &1);
assert_eq!(val, 1_u8);