Mnemonix v0.5.0 Mnemonix.Stores.ETS
A Mnemonix.Store
that uses an ETS table to store state.
iex> {:ok, store} = Mnemonix.Stores.ETS.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
Callback implementation for c:Mnemonix.Store.Behaviours.Map.delete/2
Callback implementation for c:Mnemonix.Store.Behaviours.Map.fetch/2
Callback implementation for c:Mnemonix.Store.Behaviours.Map.put/3
Creates a new ETS table to store state
Starts a new Mnemonix.Store
using the Mnemonix.Stores.ETS
module
Starts a new Mnemonix.Store
using the Mnemonix.Stores.ETS
module
with init
opts
Functions
delete(Mnemonix.Store.t, Mnemonix.key) :: {:ok, Mnemonix.Store.t} | Mnemonix.Store.Behaviour.exception
Callback implementation for c:Mnemonix.Store.Behaviours.Map.delete/2
.
fetch(Mnemonix.Store.t, Mnemonix.key) :: {:ok, Mnemonix.Store.t, {:ok, Mnemonix.value} | :error} | Mnemonix.Store.Behaviour.exception
Callback implementation for c:Mnemonix.Store.Behaviours.Map.fetch/2
.
put(Mnemonix.Store.t, Mnemonix.key, Mnemonix.Store.value) :: {:ok, Mnemonix.Store.t} | Mnemonix.Store.Behaviour.exception
Callback implementation for c:Mnemonix.Store.Behaviours.Map.put/3
.
Creates a new ETS table to store state.
Options
table:
Name of the table to create.Default:
Mnemonix.Stores.ETS.Table
named:
ETS named table optionDefault:
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
Starts a new Mnemonix.Store
using the Mnemonix.Stores.ETS
module.
If you wish to pass configuration options to the module instead,
use start_link/2
with an empty opts
list.
The returned GenServer.server/0
reference can be used as the primary
argument to the Mnemonix
API.
Examples
iex> {:ok, store} = Mnemonix.Stores.ETS.start_link
iex> Mnemonix.put(store, :foo, "bar")
iex> Mnemonix.fetch(store, :foo)
{:ok, "bar"}
iex> Mnemonix.delete(store, :foo)
iex> Mnemonix.fetch(store, :foo)
:error
start_link(Mnemonix.Store.Server.options, GenServer.options) :: GenServer.on_start
Starts a new Mnemonix.Store
using the Mnemonix.Stores.ETS
module
with init
opts.
The returned GenServer.server/0
reference can be used as the primary
argument to the Mnemonix
API.