use std::time::Duration;
pub(crate) const MONOTONIC_DURATIONS: [Duration; 17] = [
Duration::ZERO,
Duration::from_nanos(1),
Duration::from_millis(1),
Duration::from_secs(1),
Duration::from_secs(i16::MAX as u64 - 1),
Duration::from_secs(i16::MAX as u64),
Duration::from_secs(i16::MAX as u64 + 1),
Duration::from_secs(i32::MAX as u64 - 1),
Duration::from_secs(i32::MAX as u64),
Duration::from_secs(i32::MAX as u64 + 1),
Duration::from_secs(i64::MAX as u64 - 1),
Duration::from_secs(i64::MAX as u64),
Duration::from_secs(i64::MAX as u64 + 1),
Duration::from_secs(u64::MAX - 1),
Duration::from_secs(u64::MAX),
Duration::new(u64::MAX, 1_000_000),
Duration::MAX,
];
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn basic_durations_properties() {
assert_eq!(Duration::ZERO, *MONOTONIC_DURATIONS.first().unwrap());
assert_eq!(Duration::MAX, *MONOTONIC_DURATIONS.last().unwrap());
let mut last = MONOTONIC_DURATIONS[0];
for next in MONOTONIC_DURATIONS {
assert!(last <= next);
last = next;
}
}
}