pub trait AxonObject {
fn axon_object_type() -> u32;
}
pub trait AxonVariant {
fn axon_variant_type() -> u32;
}
pub trait AxonEvent {
fn axon_event_type() -> u32;
}
pub enum AxonReceiveEvent {
None,
AddClient {
client_id: u64,
},
RemoveClient {
client_id: u64,
},
Invoke {
client_id: u64,
id: u64,
t: u32,
v: Vec<u8>,
},
}
pub trait IAxonContext {
fn spawn(&mut self, id: u64, t: u32);
fn despawn(&mut self, id: u64);
fn change(&mut self, id: u64, t: u32, v: &[u8]);
fn invoke(&mut self, client_id: u64, id: u64, t: u32, v: &[u8]);
fn broadcast(&mut self, id: u64, t: u32, v: &[u8]);
fn update(&mut self, delta_time: std::time::Duration);
fn receive_event(&mut self, events: &mut Vec<AxonReceiveEvent>);
fn flush(&mut self);
}