Add tag-peeling support
This commit is contained in:
@@ -101,6 +101,10 @@ blob_size(_ObjHandle) ->
|
||||
blob_content(_ObjHandle) ->
|
||||
nif_error(?LINE).
|
||||
|
||||
-spec tag_peel(term()) -> {ok, atom(), term()} | {error, term()}.
|
||||
tag_peel(_Tag) ->
|
||||
?NIF_FN.
|
||||
|
||||
-spec library_version() -> {integer, integer, integer}.
|
||||
library_version() ->
|
||||
nif_error(?LINE).
|
||||
|
||||
22
src/geef_tag.erl
Normal file
22
src/geef_tag.erl
Normal file
@@ -0,0 +1,22 @@
|
||||
-module(geef_tag).
|
||||
|
||||
-ifdef(TEST).
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
-endif.
|
||||
|
||||
-export([lookup/2, peel/1]).
|
||||
|
||||
-include("geef_records.hrl").
|
||||
|
||||
-spec lookup(pid(), geef_oid() | iolist()) -> {ok, geef_object()} | {error, term()}.
|
||||
lookup(Repo, Id) ->
|
||||
geef_object:lookup(Repo, Id, tag).
|
||||
|
||||
-spec peel(geef_object()) -> {ok, geef_object()} | {error, term()}.
|
||||
peel(#geef_object{type=tag, handle=Handle}) ->
|
||||
case geef_nif:tag_peel(Handle) of
|
||||
{ok, Type, PeeledHandle} ->
|
||||
{ok, #geef_object{type=Type, handle=PeeledHandle}};
|
||||
Err = {error, _} ->
|
||||
Err
|
||||
end.
|
||||
Reference in New Issue
Block a user