nurtex_protocol/types/
chat_mode.rs1use nurtex_codec::Buffer;
2use nurtex_codec::types::variable::VarI32;
3
4#[derive(Debug, Clone, PartialEq, PartialOrd)]
6pub enum ChatMode {
7 Enabled,
8 CommandsOnly,
9 Hidden,
10}
11
12impl Buffer for ChatMode {
13 fn read_buf(buffer: &mut std::io::Cursor<&[u8]>) -> Option<Self> {
14 let id = i32::read_var(buffer)?;
15
16 Some(match id {
17 0 => Self::Enabled,
18 1 => Self::CommandsOnly,
19 2 => Self::Hidden,
20 _ => return None,
21 })
22 }
23
24 fn write_buf(&self, buffer: &mut impl std::io::Write) -> std::io::Result<()> {
25 let id = match self {
26 Self::Enabled => 0,
27 Self::CommandsOnly => 1,
28 Self::Hidden => 2,
29 };
30
31 id.write_var(buffer)
32 }
33}