Files
ojrc/rc_multiplayer/src/traits.rs
T

24 lines
863 B
Rust

pub type UserData = crate::user::User;
pub type PacketData = crate::handler::EventData;
#[async_trait::async_trait]
pub trait EventCodeHandler: Send + Sync {
async fn handle(&self, data: &bytes::Bytes, peer: &std::sync::Arc<literustlib_server::Connection<PacketData>>, user: &UserData, sender: &std::sync::Arc<literustlib_server::DataSender<PacketData>>);
}
pub trait EventCode: EventCodeHandler {
const CODE: i16;
}
#[async_trait::async_trait]
pub trait RobotMotionHandler: Send + Sync {
async fn handle(&self, data: &bytes::Bytes, user: &UserData);
}
#[async_trait::async_trait]
pub trait DisconnectHandler: Send + Sync {
async fn handle(&self, peer: &std::sync::Arc<literustlib_server::Connection<PacketData>>, user: &UserData);
}
pub trait Broadcastable: byteserde::ser_heap::ByteSerializeHeap + core::any::Any + Send + Sync + 'static {}