use core::time::Duration;
use super::js::Date;
#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct SystemTime(pub(crate) Duration);
impl SystemTime {
pub const UNIX_EPOCH: Self = Self(Duration::ZERO);
#[must_use]
pub fn now() -> Self {
#[allow(clippy::as_conversions, clippy::cast_possible_truncation)]
let ms = Date::now() as i64;
let ms = ms.try_into().expect("found negative timestamp");
Self(Duration::from_millis(ms))
}
pub fn duration_since(&self, earlier: Self) -> Result<Duration, SystemTimeError> {
self.0.checked_sub(earlier.0).ok_or(SystemTimeError)
}
}
#[derive(Clone, Debug)]
pub struct SystemTimeError;