nurtex_protocol/types/
experience.rs1use nurtex_codec::VarInt;
2
3use std::io::{self, Cursor, Write};
4
5use nurtex_codec::Buffer;
6
7#[derive(Clone, Copy, Debug, PartialEq)]
9pub struct Experience {
10 pub bar: f32,
11 pub level: i32,
12 pub total: i32,
13}
14
15impl Default for Experience {
16 fn default() -> Self {
17 Self { bar: 0.0, level: 0, total: 0 }
18 }
19}
20
21impl Buffer for Experience {
22 fn read_buf(buffer: &mut Cursor<&[u8]>) -> Option<Self> {
23 Some(Self {
24 bar: f32::read_buf(buffer)?,
25 level: i32::read_varint(buffer)?,
26 total: i32::read_varint(buffer)?,
27 })
28 }
29
30 fn write_buf(&self, buffer: &mut impl Write) -> io::Result<()> {
31 self.bar.write_buf(buffer)?;
32 self.level.write_varint(buffer)?;
33 self.total.write_varint(buffer)?;
34 Ok(())
35 }
36}