Convert a lua table into a message pack list. */
| 378 | |
| 379 | /* Convert a lua table into a message pack list. */ |
| 380 | void mp_encode_lua_table_as_array(lua_State *L, mp_buf *buf, int level) { |
| 381 | #if LUA_VERSION_NUM < 502 |
| 382 | size_t len = lua_objlen(L,-1), j; |
| 383 | #else |
| 384 | size_t len = lua_rawlen(L,-1), j; |
| 385 | #endif |
| 386 | |
| 387 | mp_encode_array(L,buf,len); |
| 388 | luaL_checkstack(L, 1, "in function mp_encode_lua_table_as_array"); |
| 389 | for (j = 1; j <= len; j++) { |
| 390 | lua_pushnumber(L,j); |
| 391 | lua_gettable(L,-2); |
| 392 | mp_encode_lua_type(L,buf,level+1); |
| 393 | } |
| 394 | } |
| 395 | |
| 396 | /* Convert a lua table into a message pack key-value map. */ |
| 397 | void mp_encode_lua_table_as_map(lua_State *L, mp_buf *buf, int level) { |
no test coverage detected