Current section
Files
Jump to
Current section
Files
src/multihash_nif.erl
-module(multihash_nif).
-export([digest/2, code/1]).
%% Native library support
-export([load/0]).
-on_load(load/0).
-spec digest(binary(), non_neg_integer()) -> {ok, binary()} | {error, term()}.
digest(_Bin, _Hash) ->
not_loaded(?LINE).
-spec code(binary()) -> {ok, non_neg_integer()} | {error, term()}.
code(_Bin) ->
not_loaded(?LINE).
%% @private
load() ->
erlang:load_nif(filename:join(priv(), "libmultihash"), none).
not_loaded(Line) ->
erlang:nif_error({error, {not_loaded, [{module, ?MODULE}, {line, Line}]}}).
priv() ->
case code:priv_dir(?MODULE) of
{error, _} ->
EbinDir = filename:dirname(code:which(?MODULE)),
AppPath = filename:dirname(EbinDir),
filename:join(AppPath, "priv");
Path ->
Path
end.