nurtex_protocol/types/
client_command.rs1use std::io::{self, Cursor, Write};
2
3use nurtex_codec::{Buffer, VarInt};
4
5#[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}