join_varargs/
join_varargs.rs1use low_luajit::{AmountReturned, LuaState};
2
3extern "C-unwind" fn join(mut lua: LuaState) -> AmountReturned {
4 if !lua.is_function(1) {
6 lua.type_error(1, c"function");
7 }
8
9 let top = lua.get_top();
10
11 lua.push_value(1);
13 lua.remove(1);
14 lua.call(0, LuaState::MULTI_RETURN);
15
16 let final_top = lua.get_top();
18 for _ in top..=final_top {
19 lua.insert(1);
20 }
21
22 lua.return_any(final_top)
24}
25
26#[unsafe(no_mangle)]
27extern "C-unwind" fn luaopen_join_varargs(lua: LuaState) -> AmountReturned {
28 lua.return_cfunction(join)
29}