acme_core/events/
event.rs

1/*
2    Appellation: event <module>
3    Contrib: @FL03
4*/
5use core::marker::PhantomData;
6use scsys::Timestamp;
7
8#[derive(Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
9#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10pub struct EventBase<T, K> {
11    pub(crate) data: T,
12    pub(crate) message: Vec<u8>,
13    pub(crate) timestamp: Timestamp,
14    pub(crate) _type: PhantomData<K>,
15}
16
17impl<K, T> EventBase<T, K> {
18    pub fn new(data: T) -> Self {
19        Self {
20            data,
21            message: Vec::new(),
22            timestamp: Timestamp::now(),
23            _type: PhantomData::<K>,
24        }
25    }
26}