Refactor reference costructor
This commit is contained in:
@@ -4,6 +4,11 @@
|
|||||||
|
|
||||||
-include("geef_records.hrl").
|
-include("geef_records.hrl").
|
||||||
|
|
||||||
|
-spec new(term()) -> geef_reference().
|
||||||
|
new(Handle) ->
|
||||||
|
{ok, Name} = geef_nif:reference_name(Handle),
|
||||||
|
new(Name, Handle).
|
||||||
|
|
||||||
-spec new(binary(), term()) -> geef_reference().
|
-spec new(binary(), term()) -> geef_reference().
|
||||||
new(Name, Handle) ->
|
new(Name, Handle) ->
|
||||||
Type = geef_nif:reference_type(Handle),
|
Type = geef_nif:reference_type(Handle),
|
||||||
@@ -51,8 +56,7 @@ iterator(Repo) ->
|
|||||||
next(#geef_iterator{type=ref, handle=Handle}) ->
|
next(#geef_iterator{type=ref, handle=Handle}) ->
|
||||||
case geef_nif:reference_next(Handle) of
|
case geef_nif:reference_next(Handle) of
|
||||||
{ok, RefHandle} ->
|
{ok, RefHandle} ->
|
||||||
{ok, Name} = geef_nif:reference_name(RefHandle),
|
{ok, new(RefHandle)};
|
||||||
{ok, new(Name, RefHandle)};
|
|
||||||
Other ->
|
Other ->
|
||||||
Other
|
Other
|
||||||
end.
|
end.
|
||||||
@@ -63,8 +67,7 @@ resolve(Ref = #geef_reference{type=oid}) ->
|
|||||||
resolve(#geef_reference{handle=Handle}) ->
|
resolve(#geef_reference{handle=Handle}) ->
|
||||||
case geef_nif:reference_resolve(Handle) of
|
case geef_nif:reference_resolve(Handle) of
|
||||||
{ok, Ref} ->
|
{ok, Ref} ->
|
||||||
{ok, Name} = geef_nif:reference_name(Ref),
|
{ok, new(Ref)};
|
||||||
{ok, new(Name, Ref)};
|
|
||||||
Other ->
|
Other ->
|
||||||
Other
|
Other
|
||||||
end.
|
end.
|
||||||
@@ -73,8 +76,7 @@ resolve(#geef_reference{handle=Handle}) ->
|
|||||||
dwim(Repo, Name) ->
|
dwim(Repo, Name) ->
|
||||||
case geef_repo:reference_dwim(Repo, Name) of
|
case geef_repo:reference_dwim(Repo, Name) of
|
||||||
{ok, Handle} ->
|
{ok, Handle} ->
|
||||||
{ok, FullName} = geef_nif:reference_name(Handle),
|
{ok, new(Handle)};
|
||||||
{ok, new(FullName, Handle)};
|
|
||||||
Err ->
|
Err ->
|
||||||
Err
|
Err
|
||||||
end.
|
end.
|
||||||
|
|||||||
Reference in New Issue
Block a user