use std::time::{SystemTime, UNIX_EPOCH};
use tracing::warn;
pub fn current_timestamp() -> u64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_else(|_| {
warn!("System time is before UNIX epoch, using 0 as timestamp");
std::time::Duration::from_secs(0)
})
.as_secs()
}
pub fn current_timestamp_millis() -> u64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_else(|_| {
warn!("System time is before UNIX epoch, using 0");
std::time::Duration::from_secs(0)
})
.as_millis() as u64
}
pub fn current_timestamp_nanos() -> u64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_else(|_| {
warn!("System time is before UNIX epoch, using 0");
std::time::Duration::from_secs(0)
})
.as_nanos() as u64
}
pub fn current_timestamp_duration() -> std::time::Duration {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_else(|_| {
warn!("System time is before UNIX epoch, using zero duration");
std::time::Duration::from_secs(0)
})
}