myko_rs/
item.rs

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}