Current section
Files
Jump to
Current section
Files
src/database_ffi.erl
-module(database_ffi).
-export([compare/2, safe_dets_select/2, format_select_pattern/1, format_single_pattern/1]).
compare(A, B) ->
A =:= B.
safe_dets_select(Name, Spec) ->
case dets:select(Name, Spec) of
{error, Reason} -> {error, Reason};
Objects when is_list(Objects) -> {ok, Objects}
end.
format_select_pattern(Tuple) when is_tuple(Tuple) ->
List = erlang:tuple_to_list(Tuple),
{ok, lists:map(fun format_single_pattern/1, List)};
format_select_pattern(_Else) ->
{error, nil}.
format_single_pattern(Fun) when is_function(Fun) ->
{arity, Arity} = erlang:fun_info(Fun, arity),
Args = lists:duplicate(Arity, '_'),
{{'_', erlang:apply(Fun, Args)}, [], ['$_']};
format_single_pattern(Value) ->
{{'_', Value}, [], ['$_']}.