join_varargs/
join_varargs.rs1use low_luajit::{AmountReturned, LuaState, LuaType};
2
3extern "C-unwind" fn join(mut lua: LuaState) -> AmountReturned {
4 lua.check_type(1, LuaType::Function);
6
7 let top = lua.get_top();
8
9 lua.push_value(1);
11 lua.remove(1);
12 lua.call(0, LuaState::MULTI_RETURN);
13
14 let final_top = lua.get_top();
16 for _ in top..=final_top {
17 lua.insert(1);
18 }
19
20 lua.return_any(final_top)
22}
23
24#[unsafe(no_mangle)]
25extern "C-unwind" fn luaopen_join_varargs(lua: LuaState) -> AmountReturned {
26 lua.return_cfunction(join)
27}