Add the #oid{} record to differentiate from a formatted hash
This commit is contained in:
@@ -1,12 +1,14 @@
|
|||||||
-module(geef_oid).
|
-module(geef_oid).
|
||||||
|
|
||||||
|
-include("geef_records.hlr").
|
||||||
-export([parse/1, fmt/1]).
|
-export([parse/1, fmt/1]).
|
||||||
|
|
||||||
-spec fmt(binary()) -> binary().
|
-spec fmt(oid()) -> binary().
|
||||||
fmt(Oid) ->
|
fmt(#oid{oid=Oid}) ->
|
||||||
geef:oid_fmt(Oid).
|
geef:oid_fmt(Oid).
|
||||||
|
|
||||||
|
|
||||||
-spec parse(binary()) -> binary().
|
-spec parse(binary()) -> oid().
|
||||||
parse(Sha) ->
|
parse(Sha) ->
|
||||||
geef:oid_parse(Sha).
|
Oid = geef:oid_parse(Sha),
|
||||||
|
#oid{oid=Oid}.
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
-record(ref, {handle, type :: atom()}).
|
-record(ref, {handle, type :: atom()}).
|
||||||
-record(repo, {handle}).
|
-record(repo, {handle}).
|
||||||
-record(odb, {handle}).
|
-record(odb, {handle}).
|
||||||
|
-record(oid, {oid}).
|
||||||
|
|
||||||
-type ref() :: #ref{}.
|
-type ref() :: #ref{}.
|
||||||
-type repo() :: #repo{}.
|
-type repo() :: #repo{}.
|
||||||
-type odb() :: #odb{}.
|
-type odb() :: #odb{}.
|
||||||
|
-type oid() :: #oid{}.
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ resolve(#ref{handle=Handle}) ->
|
|||||||
Other
|
Other
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec target(ref()) -> binary().
|
-spec target(ref()) -> binary() | oid().
|
||||||
target(#ref{handle=Handle}) ->
|
target(#ref{handle=Handle,type=symbolic}) ->
|
||||||
geef:reference_target(Handle).
|
geef:reference_target(Handle);
|
||||||
|
target(#ref{handle=Handle,type=oid}) ->
|
||||||
|
Oid = geef:reference_target(Handle),
|
||||||
|
#oid{oid=Oid}.
|
||||||
|
|||||||
Reference in New Issue
Block a user