luaur_code_gen/functions/read_var_int.rs
1use crate::functions::read::read;
2
3pub unsafe fn read_var_int(data: *const u8, offset: &mut usize) -> u32 {
4 let mut result: u32 = 0;
5 let mut shift: u32 = 0;
6 let mut byte: u8;
7
8 loop {
9 byte = read::<u8>(data, offset);
10 result |= ((byte & 127) as u32) << shift;
11 shift += 7;
12 if (byte & 128) == 0 {
13 break;
14 }
15 }
16
17 result
18}