Mnemonics v0.2.1 Mnemonics.Snap View Source
Snapshot of tables.
iex> snap = Mnemonics.Snap.new
%Mnemonics.Snap{versions: %{}, cache: %{}}
iex> snap = Mnemonics.Snap.snap snap, :examples, 1
%Mnemonics.Snap{versions: %{examples: 1}, cache: %{examples: %{}}}
iex> snap[:examples].version
1
iex> get_and_update_in snap[:examples].cache[1], fn value ->
iex> value = value || "example 1"
iex> {value, value}
iex> end
{"example 1", %Mnemonics.Snap{versions: %{examples: 1}, cache: %{examples: %{1 => "example 1"}}}}
Link to this section Summary
Link to this section Types
Link to this type
t()
View Source
t() :: %Mnemonics.Snap{cache: %{optional(atom()) => term()}, versions: %{optional(atom()) => pos_integer()}}
Link to this section Functions
Create a new snap.
iex> Mnemonics.Snap.new
%Mnemonics.Snap{versions: %{}, cache: %{}}
Snap the table with the version.
iex> snap = Mnemonics.Snap.new
iex> Mnemonics.Snap.snap snap, :examples, 1
%Mnemonics.Snap{versions: %{examples: 1}, cache: %{examples: %{}}}
iex> snap = Mnemonics.Snap.new
iex> put_in snap[:examples], %{version: 1}
%Mnemonics.Snap{versions: %{examples: 1}, cache: %{examples: %{}}}