1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use naia_serde::{BitReader, BitWrite, Serde, UnsignedVariableInteger};
pub fn write<S: BitWrite, T: Into<i128>>(writer: &mut S, message_count: T) {
let mut message_count_i128: i128 = message_count.into();
let has_messages: bool = message_count_i128 > 0;
has_messages.ser(writer);
if has_messages {
message_count_i128 -= 1;
let serde_count = UnsignedVariableInteger::<3>::new(message_count_i128);
serde_count.ser(writer);
}
}
pub fn read(reader: &mut BitReader) -> u16 {
let has_messages = bool::de(reader).unwrap();
if has_messages {
let serde_count = UnsignedVariableInteger::<3>::de(reader).unwrap();
let mut message_count = serde_count.get() as u16;
message_count += 1;
message_count
} else {
0
}
}