1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use std::time::Duration; /// A rate of requests per time period. #[derive(Debug, Copy, Clone)] pub struct Rate { num: u64, per: Duration, } impl Rate { /// Create a new rate. /// /// # Panics /// /// This function panics if `num` or `per` is 0. pub fn new(num: u64, per: Duration) -> Self { assert!(num > 0); assert!(per > Duration::from_millis(0)); Rate { num, per } } pub(crate) fn num(&self) -> u64 { self.num } pub(crate) fn per(&self) -> Duration { self.per } }