luaur-bytecode 0.1.3

Luau bytecode format and builder (Rust).
Documentation
use crate::enums::bc_imm_kind::BcImmKind;
use crate::enums::bc_op_kind::BcOpKind;
use crate::records::bc_inst_helper::BcInstHelper;
use luaur_common::macros::luau_assert::LUAU_ASSERT;

impl BcInstHelper<'_> {
    pub fn set_imm_input(&mut self, input_idx: u32, value: i32) {
        if self.get_bc_op(input_idx).kind == BcOpKind::None {
            let imm_op = self.graph.add_imm(BcImmKind::Int);
            self.set_bc_op(input_idx, imm_op);
        }

        let op = self.get_bc_op(input_idx);
        let imm = self.graph.imm_op(op);

        LUAU_ASSERT!(imm.kind == BcImmKind::Int);
        unsafe {
            imm.value.valueInt = value;
        }
    }
}