use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Timestamp {
pub seconds: i64,
pub microseconds: i64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Event {
pub name: String,
#[serde(default)]
pub data: Value,
pub timestamp: Option<Timestamp>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EventMessage {
#[serde(rename = "event")]
pub name: String,
#[serde(default)]
pub data: Value,
pub timestamp: Option<Timestamp>,
}
impl From<EventMessage> for Event {
fn from(msg: EventMessage) -> Self {
Self {
name: msg.name,
data: msg.data,
timestamp: msg.timestamp,
}
}
}