hal_x86_64/
time.rs

1//! x86 hardware timers and timekeeping functionality.
2pub(crate) mod pit;
3mod tsc;
4pub use self::{
5    pit::{Pit, PitError, PIT},
6    tsc::Rdtsc,
7};
8pub use core::time::Duration;
9
10/// Error indicating that a [`Duration`] was invalid for a particular use.
11#[derive(Copy, Clone, Debug, Eq, PartialEq, thiserror::Error)]
12#[error("invalid duration {duration:?}: {message}")]
13pub struct InvalidDuration {
14    duration: Duration,
15    message: &'static str,
16}
17
18// === impl InvalidDuration ===
19
20impl InvalidDuration {
21    /// Returns the [`Duration`] that was invalid.
22    #[must_use]
23    pub fn duration(self) -> Duration {
24        self.duration
25    }
26
27    #[must_use]
28    pub(crate) fn new(duration: Duration, message: &'static str) -> Self {
29        Self { duration, message }
30    }
31}