use libpso::PacketParseError; use libpso::crypto::PSOCipher; pub enum OnConnect { Packet(S), Cipher((Box, Box)), } pub trait RecvServerPacket: Sized { fn from_bytes(data: &Vec) -> Result; } pub trait SendServerPacket: Sized { fn as_bytes(&self) -> Vec; } pub trait ServerState { type SendPacket: SendServerPacket; type RecvPacket: RecvServerPacket; type PacketError; fn on_connect(&mut self) -> Vec>; fn handle(&mut self, pkt: &Self::RecvPacket) -> Box>; }