Skip to main content

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}