View Source ETS (ets v0.9.0)

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

What type of ETS table should I use?

set

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

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

Specs

comp_match_spec() :: :ets.comp_match_spec()

Specs

Specs

end_of_table() :: :"$end_of_table"

Specs

match_pattern() :: :ets.match_pattern()

Specs

match_spec() :: :ets.match_spec()

Specs

table_identifier() :: table_name() | table_reference()

Specs

table_name() :: atom()

Specs

table_reference() :: :ets.tid()

Link to this section Functions

Specs

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

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

Specs

all!() :: [table_identifier()]

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