View Source Lua.Table (Lua v0.0.17)
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 a string representing a Lua table literal
Converts a Lua table into more "native" feeling lists and maps, deeply traversing any sub-tables.
Functions
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 a string representing a Lua table literal
iex> Lua.Table.as_string([{"a", 1}, {"b", 2}])
"{a = 1, b = 2}"
iex> Lua.Table.as_string([{1, "foo"}, {2, "bar"}])
~S[{"foo", "bar"}]
Options
:userdata
- A 1-arity function used to format userdata. Defaults tofn _ -> "<userdata>"
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]}