1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use chrono::{DateTime, FixedOffset, Utc};
use serde::{Deserialize, Serialize};

/// Метка времени
///
/// Тип на основе `chrono::DateTime<FixedOffset>`. По-умолчанию создается текущая метка времени.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
pub struct Timestamp(pub DateTime<FixedOffset>);

impl Timestamp {
    pub fn format(&self, fmt: &str) -> String {
        self.0.format(fmt).to_string()
    }
}

/// TODO - вместо Utc использовать местный часовой пояс?
impl Default for Timestamp {
    fn default() -> Self {
        Self(Utc::now().into())
    }
}