xash3d_protocol/
server_info.rs1use super::filter::{FilterFlags, Version};
5use super::server::{Region, ServerAdd};
6use super::wrappers::Str;
7
8#[derive(Clone, Debug)]
10pub struct ServerInfo {
11 pub version: Version,
13 pub protocol: u8,
15 pub gamedir: Box<[u8]>,
17 pub map: Box<[u8]>,
19 pub flags: FilterFlags,
21 pub region: Region,
23}
24
25impl ServerInfo {
26 pub fn new(info: &ServerAdd<Str<&[u8]>>) -> Self {
28 Self {
29 version: info.version,
30 protocol: info.protocol,
31 gamedir: info.gamedir.to_vec().into_boxed_slice(),
32 map: info.map.to_vec().into_boxed_slice(),
33 flags: FilterFlags::from(info),
34 region: info.region,
35 }
36 }
37}