Organize modules
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
23
src/utils/time.rs
Normal file
23
src/utils/time.rs
Normal file
@@ -0,0 +1,23 @@
|
||||
use std::time::Duration;
|
||||
use time::OffsetDateTime;
|
||||
|
||||
pub const ONE_MINUTE: Duration = Duration::from_secs(60);
|
||||
|
||||
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 next_minute() -> OffsetDateTime {
|
||||
last_minute() + ONE_MINUTE
|
||||
}
|
||||
|
||||
pub fn duration_until(time: OffsetDateTime) -> Duration {
|
||||
let duration = time - OffsetDateTime::now_utc();
|
||||
|
||||
if duration.is_positive() {
|
||||
duration.unsigned_abs()
|
||||
} else {
|
||||
Duration::default()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user