ets v0.8.1 ETS View Source

ETS, an Elixir wrapper for Erlang's :ets module.

See ETS.Set for information on creating and managing Sets, and ETS.Bag for information on creating and managing Bags.

See ETS.KeyValueSet for an abstraction which provides standard key/value interaction with Sets.

What type of ETS table should I use?

Set

If you need your key column to be unique, then you should use a Set. If you just want a simple key/value store, then use an ETS.KeyValueSet, but if you want to store full tuple records, use an ETS.Set. If you want your records ordered by key value, which adds some performance overhead on insertion, set ordered: true when creating the Set (defaults to false).

Bag

If you do not need your key column to be unique, then you should use an ETS.Bag, and if you want to prevent exact duplicate records from being inserted, which adds some performance overhead on insertion, set duplicate: false when creating the Bag (defaults to true).

Link to this section Summary

Functions

Returns list of current :ets tables, each wrapped as either ETS.Set or ETS.Bag.

Same as all/1 but unwraps or raises on :error.

Link to this section Types

Link to this type

comp_match_spec()

View Source
comp_match_spec() :: :ets.comp_match_spec()
Link to this type

end_of_table()

View Source
end_of_table() :: :"$end_of_table"
Link to this type

match_pattern()

View Source
match_pattern() :: :ets.match_pattern()
Link to this type

table_identifier()

View Source
table_identifier() :: table_name() | table_reference()
Link to this type

table_name()

View Source
table_name() :: atom()
Link to this type

table_reference()

View Source
table_reference() :: :ets.tid()

Link to this section Functions

Link to this function

all()

View Source
all() :: {:ok, [table_identifier()]} | {:error, any()}

Returns list of current :ets tables, each wrapped as either ETS.Set or ETS.Bag.

NOTE: ETS.Bag is not yet implemented. This list returns only :set and :ordered_set tables, both wrapped as ETS.Set.

Examples

iex> {:ok, all} = ETS.all()
iex> x = length(all)
iex> ETS.Set.new!()
iex> {:ok, all} = ETS.all()
iex> length(all) == x + 1
true

Same as all/1 but unwraps or raises on :error.