use crate::TimeManagerTrait;
use alloc::sync::Arc;
#[derive(Clone, Debug, Default)]
pub struct TimeManagerNoop {}
impl TimeManagerNoop {
pub fn new() -> Self {
Default::default()
}
pub fn new_arc() -> Arc<Self> {
Arc::new(Self {})
}
}
impl TimeManagerTrait for TimeManagerNoop {
fn get_current_timestamp(&self) -> u64 {
0
}
}
#[cfg(feature = "std")]
#[derive(Clone, Debug)]
pub struct TimeManagerChronos {}
#[cfg(feature = "std")]
impl TimeManagerChronos {
pub(crate) fn new() -> Self {
Self {}
}
}
#[cfg(feature = "std")]
impl TimeManagerTrait for TimeManagerChronos {
fn get_current_timestamp(&self) -> u64 {
use chrono::Utc;
let now = Utc::now();
let seconds_since_epoch: i64 = now.timestamp();
seconds_since_epoch as u64
}
}