freya_core/events/
executor.rs

1pub enum EventsChunk {
2    Batch(Vec<EmmitableEvent>),
3    Processed(ProcessedEvents<NodeId, EventName, EmmitableEvent, PlatformEvent>),
4}
5use ragnarok::ProcessedEvents;
6
7use crate::{
8    events::{
9        emittable::EmmitableEvent,
10        name::EventName,
11    },
12    integration::PlatformEvent,
13    node_id::NodeId,
14    runner::Runner,
15};
16
17pub struct EventsExecutorAdapter<'a> {
18    pub runner: &'a mut Runner,
19}
20
21impl ragnarok::EventsExecutor for EventsExecutorAdapter<'_> {
22    type Key = NodeId;
23    type Name = EventName;
24    type Source = PlatformEvent;
25    type Emmitable = EmmitableEvent;
26
27    fn emit_event(&mut self, event: Self::Emmitable) -> bool {
28        // Call the actual event handler
29        self.runner
30            .handle_event(event.node_id, event.name, event.data, event.bubbles)
31    }
32}