use lazy_static::lazy_static; use std::time::Duration; use time::{OffsetDateTime, UtcOffset}; pub const ONE_SECOND: Duration = Duration::from_secs(1); pub const ONE_MINUTE: Duration = Duration::from_secs(60); pub const FIFTEEN_MINUTES: Duration = Duration::from_secs(60 * 15); lazy_static! { pub static ref MAX_TIMESTAMP: OffsetDateTime = OffsetDateTime::from_unix_timestamp(253_402_300_799).unwrap(); pub static ref EST_OFFSET: UtcOffset = UtcOffset::from_hms(-5, 0, 0).unwrap(); } pub fn last_minute() -> OffsetDateTime { let now_timestamp = OffsetDateTime::now_utc().unix_timestamp(); OffsetDateTime::from_unix_timestamp(now_timestamp - now_timestamp % 60).unwrap() } pub fn duration_until(time: OffsetDateTime) -> Duration { let duration = time - OffsetDateTime::now_utc(); if duration.is_positive() { duration.unsigned_abs() } else { Duration::default() } }