use crate::Error;
use derive_more::{AsMut, AsRef, Deref, Display, From, Into};
use serde::{Deserialize, Serialize};
#[derive(
AsMut,
AsRef,
Clone,
Copy,
Debug,
Deref,
Deserialize,
Display,
Eq,
From,
Into,
Ord,
PartialEq,
PartialOrd,
Serialize,
)]
pub struct Unixtime(pub i64);
impl Unixtime {
pub fn now() -> Result<Unixtime, Error> {
Ok(Unixtime(std::time::UNIX_EPOCH.elapsed()?.as_secs() as i64))
}
#[allow(dead_code)]
pub(crate) fn mock() -> Unixtime {
Unixtime(1668572286)
}
}
#[cfg(test)]
mod test {
use super::*;
test_serde! {Unixtime, test_unixtime_serde}
#[test]
fn test_print_now() {
println!("NOW: {}", Unixtime::now().unwrap());
}
}