luaur-compiler 0.1.3

Luau source-to-bytecode compiler (Rust).
Documentation
pub fn compute_cost(model: u64, vars_const: *const bool, var_count: usize) -> i32 {
    let mut cost = (model & 0x7f) as i32;

    // don't apply discounts to what is likely a saturated sum
    if cost == 0x7f {
        return cost;
    }

    // C++ indexes `varsConst[i]` directly; `slice::from_raw_parts(null, 0)` is UB
    // in Rust, so index the raw pointer directly to match C++ (vars_const may be
    // null when var_count == 0).
    let mut i = 0;
    while i < var_count && i < 7 {
        let discount = ((model >> (i * 8 + 8)) & 0x7f) as i32;
        let is_const = unsafe { *vars_const.add(i) };
        cost -= discount * (is_const as i32);
        i += 1;
    }

    cost
}