1use std::sync::Mutex;
2
3use lazy_static::lazy_static;
4
5use saito_core::core::io::network_event::NetworkEvent;
6
7#[derive(Debug)]
8pub struct IoEvent {
9 pub event_processor_id: u8,
10 pub event_id: u64,
11 pub event: NetworkEvent,
12}
13
14lazy_static! {
15 static ref EVENT_COUNTER: Mutex<u64> = Mutex::new(0);
16}
17
18impl IoEvent {
19 pub fn new(event: NetworkEvent) -> IoEvent {
20 let mut value = EVENT_COUNTER.lock().unwrap();
21 *value = *value + 1;
22 assert_ne!(*value, 0);
23 IoEvent {
25 event_processor_id: 0,
26 event_id: value.clone(),
27 event,
28 }
29 }
30}