Mnemonix v0.1.0 Mnemonix.ETS.Store

A Mnemonix.Store adapter that uses an ETS table to store state.

iex> {:ok, store} = Mnemonix.ETS.Store.start_link
iex> Mnemonix.put(store, :foo, "bar")
iex> Mnemonix.get(store, :foo)
"bar"
iex> Mnemonix.delete(store, :foo)
iex> Mnemonix.get(store, :foo)
nil

Summary

Functions

Creates a new ETS table to store state

Starts a new Mnemonix.Store using the Elixir.Mnemonix.ETS.Store adapter

Starts a new Mnemonix.Store using the Elixir.Mnemonix.ETS.Store adapter with init opts

Functions

delete(store, key)
delete(store, key) :: {:ok, store}

Callback implementation for Mnemonix.Store.Behaviour.delete/2.

fetch(store, key)
fetch(store, key) :: {:ok, store, {:ok, value} | :error}

Callback implementation for Mnemonix.Store.Behaviour.fetch/2.

init(opts)
init(opts) :: {:ok, state} | {:stop, reason :: any}

Creates a new ETS table to store state.

Options

  • table: Name of the table to create. Default: Elixir.Mnemonix.ETS.Store.Table

  • named: ETS named table option Default: false

    If making a non-public table it’s reccommened to use this option, so that the table name can be used outside of this store.

  • privacy: ETS privacy option - :public | :protected | :private Default: :private

  • heir: ETS heir option - {pid, any} | nil Default: nil

  • transactional: Whether or not to perform transactional reads or writes. Allowed: :reads | :writes | :both | nil Default: nil

  • compressed: Whether or not to compress the values being stored. Default: false

put(store, key, value)
put(store, key, Mnemonix.Store.value) :: {:ok, store}

Callback implementation for Mnemonix.Store.Behaviour.put/3.

start_link(opts \\ [])

Starts a new Mnemonix.Store using the Elixir.Mnemonix.ETS.Store adapter.

If you wish to pass configuration options to the adapter instead, use start_link/2 with an empty opts list.

The returned GenServer.on_start/0 reference can be used in the Mnemonix API.

Examples

iex> {:ok, store} = Elixir.Mnemonix.ETS.Store.start_link
iex> Mnemonix.put(store, :foo, "bar")
iex> Mnemonix.get(store, :foo)
"bar"
iex> Mnemonix.delete(store, :foo)
iex> Mnemonix.get(store, :foo)
nil
start_link(init, opts)

Starts a new Mnemonix.Store using the Elixir.Mnemonix.ETS.Store adapter with init opts.

The returned GenServer.on_start/0 reference can be used in the Mnemonix API.