Current section
Files
Jump to
Current section
Files
src/aarondb@storage.erl
-module(aarondb@storage).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/aarondb/storage.gleam").
-export([insert/2, append/2, read_all/1, query_datoms/2, ephemeral/0]).
-export_type([storage_error/0, storage_adapter/0]).
-type storage_error() :: {storage_error, binary()} |
{transaction_error, binary()} |
not_found_error.
-type storage_adapter() :: {storage_adapter,
fun((list(aarondb@fact:datom())) -> {ok, nil} | {error, storage_error()}),
fun((list(aarondb@fact:datom())) -> {ok, nil} | {error, storage_error()}),
fun((binary()) -> {ok, list(aarondb@fact:datom())} |
{error, storage_error()}),
fun(() -> {ok, list(aarondb@fact:datom())} | {error, storage_error()}),
fun(({aarondb@shared@ast:part(), binary(), aarondb@shared@ast:part()}) -> {ok,
list(aarondb@fact:datom())} |
{error, storage_error()})}.
-file("src/aarondb/storage.gleam", 20).
-spec insert(storage_adapter(), list(aarondb@fact:datom())) -> {ok, nil} |
{error, storage_error()}.
insert(Adapter, Datoms) ->
(erlang:element(2, Adapter))(Datoms).
-file("src/aarondb/storage.gleam", 27).
-spec append(storage_adapter(), list(aarondb@fact:datom())) -> {ok, nil} |
{error, storage_error()}.
append(Adapter, Datoms) ->
(erlang:element(3, Adapter))(Datoms).
-file("src/aarondb/storage.gleam", 34).
-spec read_all(storage_adapter()) -> {ok, list(aarondb@fact:datom())} |
{error, storage_error()}.
read_all(Adapter) ->
(erlang:element(5, Adapter))().
-file("src/aarondb/storage.gleam", 40).
-spec query_datoms(
storage_adapter(),
{aarondb@shared@ast:part(), binary(), aarondb@shared@ast:part()}
) -> {ok, list(aarondb@fact:datom())} | {error, storage_error()}.
query_datoms(Adapter, Pattern) ->
(erlang:element(6, Adapter))(Pattern).
-file("src/aarondb/storage.gleam", 47).
-spec ephemeral() -> storage_adapter().
ephemeral() ->
{storage_adapter,
fun(_) -> {ok, nil} end,
fun(_) -> {ok, nil} end,
fun(_) -> {ok, []} end,
fun() -> {ok, []} end,
fun(_) -> {ok, []} end}.