1
2
3
4
5
6
7
8
9
10
11
pub trait Event: Send + Sync {
    type Value;
}

pub enum EventState<V> {
    Continue,
    Stop,
    Return(V),
}

pub type EventResult<E> = miette::Result<EventState<<E as Event>::Value>>;