use std::time::{SystemTime, UNIX_EPOCH};
#[inline]
pub fn now_unix_millis() -> u64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.map(|d| d.as_millis() as u64)
.unwrap_or(0)
}
#[inline]
pub fn now_unix_nanos() -> u128 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.map(|d| d.as_nanos())
.unwrap_or(0)
}
#[inline]
pub fn now_unix_secs() -> u64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.map(|d| d.as_secs())
.unwrap_or(0)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn now_returns_positive_values() {
let ms = now_unix_millis();
let ns = now_unix_nanos();
let s = now_unix_secs();
assert!(ms > 1_700_000_000_000, "ms must be after 2023");
assert!(ns > 1_700_000_000_000_000_000, "ns must be after 2023");
assert!(s > 1_700_000_000, "s must be after 2023");
}
}