Current section
Files
Jump to
Current section
Files
src/aarondb@storage@mnesia.erl
-module(aarondb@storage@mnesia).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/aarondb/storage/mnesia.gleam").
-export([init_mnesia/0, persist_datom/1, persist_batch/1, recover_datoms/0, adapter/0]).
-file("src/aarondb/storage/mnesia.gleam", 6).
-spec init_mnesia() -> nil.
init_mnesia() ->
aarondb_mnesia_ffi:init().
-file("src/aarondb/storage/mnesia.gleam", 9).
-spec persist_datom(aarondb@fact:datom()) -> nil.
persist_datom(Datom) ->
aarondb_mnesia_ffi:persist(Datom).
-file("src/aarondb/storage/mnesia.gleam", 12).
-spec persist_batch(list(aarondb@fact:datom())) -> nil.
persist_batch(Datoms) ->
aarondb_mnesia_ffi:persist_batch(Datoms).
-file("src/aarondb/storage/mnesia.gleam", 33).
-spec map_err({ok, list(aarondb@fact:datom())} | {error, binary()}) -> {ok,
list(aarondb@fact:datom())} |
{error, aarondb@storage:storage_error()}.
map_err(Res) ->
case Res of
{ok, D} ->
{ok, D};
{error, E} ->
{error, {transaction_error, E}}
end.
-file("src/aarondb/storage/mnesia.gleam", 43).
-spec recover_datoms() -> {ok, list(aarondb@fact:datom())} | {error, binary()}.
recover_datoms() ->
aarondb_mnesia_ffi:recover().
-file("src/aarondb/storage/mnesia.gleam", 14).
-spec adapter() -> aarondb@storage:storage_adapter().
adapter() ->
{storage_adapter,
fun(Datoms) ->
aarondb_mnesia_ffi:persist_batch(Datoms),
{ok, nil}
end,
fun(Datoms@1) ->
aarondb_mnesia_ffi:persist_batch(Datoms@1),
{ok, nil}
end,
fun(_) -> _pipe = aarondb_mnesia_ffi:recover(),
map_err(_pipe) end,
fun() -> _pipe@1 = aarondb_mnesia_ffi:recover(),
map_err(_pipe@1) end,
fun(Pattern) -> _pipe@2 = aarondb_mnesia_ffi:select(Pattern),
map_err(_pipe@2) end}.