live_entity/
event.rs

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}