1use crate::{Entity, Singleton, SingletonEntity};
2
3#[derive(Debug, Clone)]
4pub enum Event<E: Entity> {
5 Create(E),
6 Update { id: E::ID, update: E::Update },
7 Delete(E::ID),
8}
9
10#[derive(Clone, Debug)]
11pub enum SingletonEvent<S: Singleton> {
12 Create(S),
13 Update(S::Update),
14 Delete
15}
16
17impl<S: Singleton> From<Event<SingletonEntity<S>>> for SingletonEvent<S> {
18 fn from(value: Event<SingletonEntity<S>>) -> Self {
19 match value {
20 Event::Create(e) => Self::Create(e.0),
21 Event::Update { id: _, update } => Self::Update(update.0),
22 Event::Delete(_) => Self::Delete
23 }
24 }
25}