1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use serde::{Deserialize, Serialize};

use chrono::{DateTime, FixedOffset, Utc};

/// Тип "Команда"
///
/// Содержит только метку времени
#[derive(Serialize, Clone, Deserialize, Debug, Copy, PartialEq)]
pub struct Command {
    pub ts: DateTime<FixedOffset>,
}

impl Command {
    pub fn new(ts: Option<DateTime<FixedOffset>>) -> Self {
        let ts = match ts {
            Some(value) => value,
            None => Utc::now().into(),
        };
        Self { ts }
    }
}

impl Default for Command {
    fn default() -> Self {
        Self {
            ts: Utc::now().into(),
        }
    }
}