Skip to main content

luaur_bytecode/methods/
bytecode_builder_decompose_import_id.rs

1use crate::records::bytecode_builder::BytecodeBuilder;
2
3impl BytecodeBuilder {
4    pub fn decompose_import_id(ids: u32, id0: &mut i32, id1: &mut i32, id2: &mut i32) -> i32 {
5        let count = (ids >> 30) as i32;
6        *id0 = if count > 0 {
7            (ids >> 20) as i32 & 1023
8        } else {
9            -1
10        };
11        *id1 = if count > 1 {
12            (ids >> 10) as i32 & 1023
13        } else {
14            -1
15        };
16        *id2 = if count > 2 { ids as i32 & 1023 } else { -1 };
17        count
18    }
19}