luaur-vm 0.1.1

The Luau register virtual machine and standard library (Rust).
Documentation
use crate::macros::nvalue::nvalue;
use crate::macros::setnvalue::setnvalue;
use crate::macros::ttisnumber::ttisnumber;
use crate::type_aliases::lua_state::LuaState;
use crate::type_aliases::stk_id::StkId;
use crate::type_aliases::t_value::TValue;
use core::ffi::c_int;

#[allow(non_snake_case)]
pub unsafe fn luau_f_ldexp(
    _l: *mut LuaState,
    res: StkId,
    arg0: *mut TValue,
    nresults: c_int,
    args: StkId,
    nparams: c_int,
) -> c_int {
    if nparams >= 2 && nresults <= 1 && ttisnumber!(arg0) && ttisnumber!(args) {
        let a1 = nvalue!(arg0);
        let a2 = nvalue!(args);
        setnvalue!(res, (a1 * 2f64.powi(a2 as i32)) as f64);
        1
    } else {
        -1
    }
}