getArgs method

List getArgs(
  1. Pointer<lua_State> L
)

Extract arguments from Lua stack into a Dart List

Implementation

List<dynamic> getArgs(Pointer<lua_State> L) {
  final argc = bindings.lua_gettop(L);
  final args = <dynamic>[];

  for (var i = 1; i <= argc; i++) {
    if (bindings.lua_isstring(L, i) != 0) {
      final strPtr = bindings.lua_tolstring(L, i, nullptr);
      args.add(strPtr.cast<Utf8>().toDartString());
    } else if (bindings.lua_isinteger(L, i) != 0) {
      args.add(bindings.lua_tointegerx(L, i, nullptr));
    } else if (bindings.lua_isnumber(L, i) != 0) {
      args.add(bindings.lua_tonumberx(L, i, nullptr));
    } else {
      args.add(null); // unsupported type for now
    }
  }

  return args;
}