dw-models 0.1.0

Rust model for deskwatch server
Documentation
use chrono::{DateTime, Utc};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use serde_json::Value;

#[derive(Serialize, Deserialize, JsonSchema)]
pub struct Key {
    pub key: String,
}

#[derive(Serialize, Deserialize, JsonSchema, Clone, Debug, PartialEq)]
pub struct KeyValue {
    pub key: String,
    pub value: Value,
    pub timestamp: Option<DateTime<Utc>>,
}

impl KeyValue {
    pub fn new<K: Into<String>, V: Into<Value>>(
        key: K,
        value: V,
        timestamp: DateTime<Utc>,
    ) -> KeyValue {
        KeyValue {
            key: key.into(),
            value: value.into(),
            timestamp: Some(timestamp),
        }
    }
}