Skip to main content

nurtex_protocol/types/
client_command.rs

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