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