1use partially::Partial;
2use serde::{de::DeserializeOwned, Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct WrappedItem<T> {
7 pub item: T,
8 pub item_type: String,
9}
10
11pub trait WithId {
12 fn id(&self) -> String;
13}
14
15pub trait Eventable<T, PT: Clone>:
16 Partial<Item = PT> + Serialize + DeserializeOwned + Clone + Send + Sync + Sized
17{
18 type T;
19
20 fn id(&self) -> String;
21 fn hash(&self) -> String;
22 fn entity_name(&self) -> String;
23}