elseware/src/ship/ship.rs
2019-10-09 22:45:51 -07:00

63 lines
1.4 KiB
Rust

use libpso::PacketParseError;
use crate::common::serverstate::{SendServerPacket, RecvServerPacket, ServerState, OnConnect, ClientId};
use crate::entity::gateway::EntityGateway;
pub const SHIP_PORT: u16 = 12345;
#[derive(Debug)]
pub enum ShipError {
}
#[derive(Debug)]
pub enum RecvShipPacket {
}
impl RecvServerPacket for RecvShipPacket {
fn from_bytes(data: &[u8]) -> Result<RecvShipPacket, PacketParseError> {
Err(PacketParseError::WrongPacketForServerType)
}
}
#[derive(Debug)]
pub enum SendShipPacket {
}
impl SendServerPacket for SendShipPacket {
fn as_bytes(&self) -> Vec<u8> {
Vec::new()
}
}
pub struct ShipServerState<EG: EntityGateway> {
entity_gateway: EG,
}
impl<EG: EntityGateway> ShipServerState<EG> {
pub fn new(entity_gateway: EG) -> ShipServerState<EG> {
ShipServerState {
entity_gateway: entity_gateway
}
}
}
impl<EG: EntityGateway> ServerState for ShipServerState<EG> {
type SendPacket = SendShipPacket;
type RecvPacket = RecvShipPacket;
type PacketError = ShipError;
fn on_connect(&mut self, id: ClientId) -> Vec<OnConnect<Self::SendPacket>> {
Vec::new()
}
fn handle(&mut self, id: ClientId, pkt: &RecvShipPacket)
-> Result<Box<dyn Iterator<Item = (ClientId, SendShipPacket)>>, ShipError> {
Ok(Box::new(Vec::new().into_iter()))
}
}