use std::net::SocketAddr;
use serde::{Deserialize, Serialize};
pub const NO_COMPRESSION: &str = "";
pub const GZIP_COMPRESSION: &str = "gzip";
#[derive(Clone, Debug, Deserialize, Serialize)]
pub enum ServerMessage {
Allocation {
id: uuid::Uuid,
allocated_endpoint: String,
assets_root: String,
external_endpoint: SocketAddr,
},
PlayerConnected {
player_id: String,
},
RequestAsset {
key: String,
},
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub enum ServerStreamHeader {
PlayerStreamOpened { player_id: String },
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub enum ClientMessage {
AllocateEndpoint { project_id: String },
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub enum ClientStreamHeader {
OpenPlayerStream { player_id: String },
StoreAsset {
key: String,
length: u32,
compression: String,
},
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct DatagramInfo {
pub player_id: String,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct ProxyStats {
pub allocated_endpoint: String,
pub total_assets_size: u64,
pub total_assets_count: usize,
pub players_count: usize,
}