Skip to main content

nurtex_protocol/types/
client_command.rs

1use nurtex_codec::Buffer;
2use nurtex_codec::types::variable::VarI32;
3
4/// Команда клиента
5#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
6pub enum ClientCommand {
7  PerformRespawn,
8  RequestStats,
9}
10
11impl Buffer for ClientCommand {
12  fn read_buf(buffer: &mut std::io::Cursor<&[u8]>) -> Option<Self> {
13    let id = i32::read_var(buffer)?;
14
15    match id {
16      0 => Some(Self::PerformRespawn),
17      1 => Some(Self::RequestStats),
18      _ => None,
19    }
20  }
21
22  fn write_buf(&self, buffer: &mut impl std::io::Write) -> std::io::Result<()> {
23    let id = match self {
24      Self::PerformRespawn => 0,
25      Self::RequestStats => 1,
26    };
27
28    id.write_var(buffer)?;
29
30    Ok(())
31  }
32}