View Source Lua.Table (Lua v0.0.14)

In Lua, tables are the fundamental datastructure, which are used both as associative arrays (maps), and arrays (lists).

Lua.Table provides some utilities for working with Lua tables when passed back to Elixir.

Summary

Functions

Converts a Lua table into a list. Assumes that the table is correctly ordered.

Converts a Lua table into a map

Converts a Lua table into more "native" feeling lists and maps, deeply traversing any sub-tables.

Functions

Link to this function

as_list(values, opts \\ [])

View Source

Converts a Lua table into a list. Assumes that the table is correctly ordered.

iex> Lua.Table.as_list([{1, "a"}, {2, "b"}, {3, "c"}])
["a", "b", "c"]

To ensure the list is ordered, you can pass the :sort option

iex> Lua.Table.as_list([{2, "b"}, {1, "a"}, {3, "c"}])
["b", "a", "c"]

iex> Lua.Table.as_list([{2, "b"}, {1, "a"}, {3, "c"}], sort: true)
["a", "b", "c"]

Converts a Lua table into a map

iex> Lua.Table.as_map([{"a", 1}, {"b", 2}])
%{"a" => 1, "b" => 2}

Converts a Lua table into more "native" feeling lists and maps, deeply traversing any sub-tables.

It uses the heuristic that maps with integer keys starting as 1 will be auto-cast into lists

iex> Lua.Table.deep_cast([{"a", 1}, {"b", [{1, 3}, {2, 4}]}])
%{"a" => 1, "b" => [3, 4]}